From c15648d12efb14fca9cb185ea68e8a5915b99911 Mon Sep 17 00:00:00 2001 From: divyeshio <79130336+divyeshio@users.noreply.github.com> Date: Mon, 19 Oct 2026 00:44:20 +0530 Subject: [PATCH 1/2] refactor(schema)!: make the nested tool schema the single schema The flat and nested tool definitions were two parallel models of the same data, so every feature had to be implemented twice or pick a side. They are collapsed into one canonical schema (types/tool.ts, utils/tool.ts), republished as specification/tool.json. Defects found and fixed while exercising the result: - The JsonOutput diff view was unreachable: diffLines returned null above 2000 lines and every shipped tool exceeds that, so the diff silently never rendered. It now trims the shared head and tail before comparing, so a small edit to a large file still diffs exactly, and collapses long unchanged runs into a gap. - Exclusion groups were modelled but never enforced, so a mutually exclusive pair such as cdncheck -cdn -cloud could be emitted together. The renderer disables the ruled-out controls and the generated command omits them. - The command tree matched only a command local name while its results showed the full invocation path, so searching for a nested command did not find it. It also stretched the page with a long tree; it now scrolls itself, and the whole row toggles a branch instead of leaving an inert gutter and a chevron that never turned. - Installation sources within one method are tabbed, and a source is no longer labelled twice with the same name. - Prerendered docs pages rendered nothing after hydration, because the page component came from a cache the loader fills and the client never re-runs for a prerendered route. The static HTML now survives, verified with JS disabled. - A tool that is not published now raises a not-found rather than an error boundary, and the copy-page action no longer falls back to a path that could only copy a placeholder. BREAKING CHANGE: /specification/flat.json and /specification/nested.json are replaced by /specification/tool.json, and the registry blocks no longer ship the flat types and utilities. --- .../skills/commandly-tool-generation/SKILL.md | 59 +- .../references/examples.md | 250 +- .../references/schema.md | 123 +- .../references/validation.md | 37 +- .agents/skills/skill-creator/SKILL.md | 4 +- .../vercel-composition-patterns/AGENTS.md | 16 +- .../vercel-composition-patterns/README.md | 8 +- .../rules/state-context-interface.md | 4 +- .../rules/state-decouple-implementation.md | 2 +- .../rules/state-lift-state.md | 2 +- .github/agents/Explore.agent.md | 2 +- README.md | 11 +- bun.lock | 1728 +- mcp/README.md | 26 +- mcp/index.ts | 2 +- package.json | 125 +- public/r/command-tree.json | 37 + public/r/generated-command.json | 31 +- public/r/installation.json | 36 + public/r/json-output.json | 55 +- public/r/registry.json | 199 +- public/r/tool-renderer.json | 42 +- public/r/ui.json | 84 +- public/specification/nested.json | 401 - public/specification/{flat.json => tool.json} | 179 +- public/tools-collection/asnmap.json | 155 +- public/tools-collection/cdncheck.json | 217 +- public/tools-collection/curl.json | 3320 +- public/tools-collection/dnsx.json | 402 +- public/tools-collection/dotnet.json | 8256 +++++ public/tools-collection/ffmpeg.json | 10164 ++++++ public/tools-collection/ffuf.json | 409 +- public/tools-collection/git.json | 29176 ++++++++++++++++ public/tools-collection/gospider.json | 280 +- public/tools-collection/httpx.json | 1325 +- public/tools-collection/katana.json | 905 +- public/tools-collection/mapcidr.json | 248 +- public/tools-collection/naabu.json | 588 +- public/tools-collection/notify.json | 158 +- public/tools-collection/nuclei.json | 1668 +- public/tools-collection/shuffledns.json | 254 +- public/tools-collection/subfinder.json | 330 +- public/tools-collection/urlfinder.json | 296 +- public/tools-collection/yt-dlp.json | 285 +- public/tools.json | 62 +- registry.json | 199 +- .../commandly/__tests__/command-tree.test.tsx | 170 + .../__tests__/generated-command.test.tsx | 582 +- .../commandly/__tests__/installation.test.tsx | 125 + .../commandly/__tests__/json-output.test.tsx | 160 +- .../commandly/__tests__/json-tree.test.tsx | 196 + .../commandly/__tests__/tool-fixer.test.ts | 55 +- .../__tests__/tool-renderer.test.tsx | 230 +- .../__tests__/tool-validation.test.ts | 149 +- registry/commandly/command-tree.tsx | 232 + registry/commandly/generated-command.tsx | 114 +- registry/commandly/installation.tsx | 168 + registry/commandly/json-output.tsx | 203 +- registry/commandly/json-tree.tsx | 675 + registry/commandly/tool-renderer.tsx | 266 +- registry/commandly/types/nested.ts | 116 - registry/commandly/types/renderer.ts | 8 +- registry/commandly/types/{flat.ts => tool.ts} | 82 +- registry/commandly/utils/clipboard.ts | 5 + registry/commandly/utils/diff.ts | 140 + registry/commandly/utils/flat.ts | 287 - registry/commandly/utils/generate-command.ts | 119 + registry/commandly/utils/json-tree.ts | 124 + registry/commandly/utils/nested.ts | 91 - registry/commandly/utils/tool-file.ts | 144 + registry/commandly/utils/tool-validation.ts | 157 +- registry/commandly/utils/tool.ts | 288 + scripts/generate-specification.ts | 17 +- scripts/generate-tools-json.ts | 2 +- scripts/validate-tool-collection.ts | 8 +- .../ai-chat/ai-chat-message-mapping.ts | 2 +- src/components/ai-chat/diff-view.tsx | 62 +- src/components/ai-chat/tool-rules.ts | 28 +- src/components/ai-elements/context.tsx | 4 +- .../docs/demos/command-tree-demo.tsx | 18 + .../docs/demos/generated-command-demo.tsx | 60 +- src/components/docs/demos/index.ts | 12 + .../docs/demos/installation-demo.tsx | 10 + .../docs/demos/json-output-demo.tsx | 52 +- src/components/docs/demos/sample-tool.ts | 189 + .../docs/demos/tool-renderer-demo.tsx | 93 +- src/components/docs/docs-copy-page.tsx | 100 +- src/components/docs/nav.ts | 10 +- src/components/tool-card.tsx | 2 +- src/components/tool-editor/ai-chat-store.ts | 4 +- src/components/tool-editor/ai-chat.tsx | 54 +- src/components/tool-editor/command-tree.tsx | 129 +- .../tool-editor/dialogs/command-dialog.tsx | 59 +- .../dialogs/exclusion-groups-dialog.tsx | 36 +- .../dialogs/parameter-details-dialog.tsx | 164 +- .../dialogs/tool-details-dialog.tsx | 128 +- src/components/tool-editor/help-menu.tsx | 61 +- src/components/tool-editor/parameter-list.tsx | 97 +- src/components/tool-editor/preview-tabs.tsx | 4 +- src/components/tool-editor/prompt.ts | 29 +- .../tool-editor/tool-editor.context.tsx | 379 +- src/components/tool-editor/tool-editor.tsx | 73 +- src/components/tool-editor/tools.ts | 8 +- src/lib/api/docs.api.ts | 27 - src/lib/api/tools.api.ts | 11 +- src/lib/types.ts | 4 +- src/lib/utils.ts | 145 - src/routeTree.gen.ts | 44 +- src/router.tsx | 26 +- src/routes/__root.tsx | 9 +- src/routes/docs/$componentName.tsx | 59 +- .../docs/__collection__/command-tree.mdx | 71 + .../docs/__collection__/generated-command.mdx | 56 +- .../docs/__collection__/installation.mdx | 83 + .../docs/__collection__/json-output.mdx | 45 +- .../__collection__/specification-examples.mdx | 303 +- .../__collection__/specification-intro.mdx | 23 +- .../__collection__/specification-nested.mdx | 88 - .../__collection__/specification-schema.mdx | 124 +- .../docs/__collection__/tool-renderer.mdx | 46 +- src/routes/docs/__collection__/ui.mdx | 37 +- src/routes/docs/index.tsx | 2 + src/routes/docs/route.tsx | 59 +- src/routes/index.tsx | 218 +- src/routes/tools/$toolName/edit.tsx | 4 +- src/routes/tools/$toolName/index.tsx | 313 +- src/routes/tools/index.tsx | 12 +- tests/docs/docs-copy-page.test.tsx | 35 +- tests/docs/docs-nav.test.ts | 31 + tests/lib/tools.api.test.ts | 48 + tests/test-utils.ts | 30 +- .../ai-chat-message-mapping.test.ts | 2 +- tests/tool-editor/command-tree.test.tsx | 401 +- .../dialogs/command-dialog.test.tsx | 119 +- .../parameter-details-dialog-enum.test.tsx | 182 + .../parameter-details-dialog.harness.tsx | 65 + .../dialogs/parameter-details-dialog.test.tsx | 487 +- tests/tool-editor/help-menu.test.tsx | 262 +- tests/tool-editor/parameter-list.test.tsx | 379 +- tests/tool-editor/preview-tabs.test.tsx | 4 +- tests/tool-editor/tool-editor.test.tsx | 6 +- tests/tool-editor/tools.test.ts | 4 +- 142 files changed, 61867 insertions(+), 10937 deletions(-) create mode 100644 public/r/command-tree.json create mode 100644 public/r/installation.json delete mode 100644 public/specification/nested.json rename public/specification/{flat.json => tool.json} (74%) create mode 100644 public/tools-collection/dotnet.json create mode 100644 public/tools-collection/ffmpeg.json create mode 100644 public/tools-collection/git.json create mode 100644 registry/commandly/__tests__/command-tree.test.tsx create mode 100644 registry/commandly/__tests__/installation.test.tsx create mode 100644 registry/commandly/__tests__/json-tree.test.tsx create mode 100644 registry/commandly/command-tree.tsx create mode 100644 registry/commandly/installation.tsx create mode 100644 registry/commandly/json-tree.tsx delete mode 100644 registry/commandly/types/nested.ts rename registry/commandly/types/{flat.ts => tool.ts} (68%) create mode 100644 registry/commandly/utils/clipboard.ts create mode 100644 registry/commandly/utils/diff.ts delete mode 100644 registry/commandly/utils/flat.ts create mode 100644 registry/commandly/utils/generate-command.ts create mode 100644 registry/commandly/utils/json-tree.ts delete mode 100644 registry/commandly/utils/nested.ts create mode 100644 registry/commandly/utils/tool-file.ts create mode 100644 registry/commandly/utils/tool.ts create mode 100644 src/components/docs/demos/command-tree-demo.tsx create mode 100644 src/components/docs/demos/installation-demo.tsx create mode 100644 src/components/docs/demos/sample-tool.ts delete mode 100644 src/lib/api/docs.api.ts create mode 100644 src/routes/docs/__collection__/command-tree.mdx create mode 100644 src/routes/docs/__collection__/installation.mdx delete mode 100644 src/routes/docs/__collection__/specification-nested.mdx create mode 100644 tests/docs/docs-nav.test.ts create mode 100644 tests/lib/tools.api.test.ts create mode 100644 tests/tool-editor/dialogs/parameter-details-dialog-enum.test.tsx create mode 100644 tests/tool-editor/dialogs/parameter-details-dialog.harness.tsx diff --git a/.agents/skills/commandly-tool-generation/SKILL.md b/.agents/skills/commandly-tool-generation/SKILL.md index 440db58..59235e8 100644 --- a/.agents/skills/commandly-tool-generation/SKILL.md +++ b/.agents/skills/commandly-tool-generation/SKILL.md @@ -1,11 +1,11 @@ --- name: commandly-tool-generation -description: Generate, parse, and edit Commandly CLI tool definitions in the flat JSON schema format. Use when working with Commandly tool JSON files, converting CLI help text to Commandly format, creating tool definitions from scratch, or modifying existing tool definitions. Triggers on tasks like "generate a tool for X", "parse this help text", "add a parameter to this tool", or "create a Commandly JSON for Y". +description: Generate, parse, and edit Commandly CLI tool definitions in the Commandly JSON schema format. Use when working with Commandly tool JSON files, converting CLI help text to Commandly format, creating tool definitions from scratch, or modifying existing tool definitions. Triggers on tasks like "generate a tool for X", "parse this help text", "add a parameter to this tool", or "create a Commandly JSON for Y". --- # Commandly Tool Generation -Generate and edit CLI tool definitions in the Commandly flat JSON schema format. +Generate and edit CLI tool definitions in the Commandly JSON schema format. ## Modes @@ -18,11 +18,11 @@ Generate and edit CLI tool definitions in the Commandly flat JSON schema format. ### Parsing Help Text 1. Identify the tool name and any description/version info → populate `binaryName`, `displayName`, optional `interactive`, and `info`. -2. Identify commands and subcommands → `commands[]` array with `key`, `name`, optional `parentCommandKey`. If the tool has no subcommands, leave `commands` as an empty array `[]`. -3. Map each flag/option/argument to a parameter → `parameters[]` array. -4. If commands exist, assign `commandKey` to non-global parameters. If no commands exist, parameters are **root parameters** — omit both `commandKey` and `isGlobal`. -5. Output pure JSON — no code fences, no comments. -6. Identify options which can take pre-defined values and create `Enum` parameters with `enum.values[]`. Note: "e.g." in help text does not necessarily mean the values are free-form — cross-check with documentation to determine if the full value set is known and fixed before using `Enum`. +2. Identify commands and subcommands → `commands[]` array with `key`, `displayName`, `aliases`, and `interactive` when the command prompts for input. Nest subcommands inside the command they belong to via that command's own `commands[]`. If the tool has no subcommands, leave `commands` as an empty array `[]`. +3. Map each flag/option/argument to a parameter → nest it inside the command that accepts it. `key` is the full flag, dashes included; short names go in `aliases`. +4. Parameters belong to exactly one command. Use `Tool.parameters` only for flags the tool accepts before any command is chosen, and add `recursive: true` to the ones that are inherited by the whole tree. A parameter on a command that its subcommands also accept uses `recursive: true` too. +5. Output pure JSON - no code fences, no comments. +6. Identify options which can take pre-defined values and create `Enum` parameters with `enum.values[]`. Note: "e.g." in help text does not necessarily mean the values are free-form - cross-check with documentation to determine if the full value set is known and fixed before using `Enum`. ### Editing Existing Tool @@ -33,36 +33,39 @@ Generate and edit CLI tool definitions in the Commandly flat JSON schema format. ### Creating from Scratch 1. Use the CLI binary as `binaryName` (lowercase, hyphenated where appropriate) and a display-friendly `displayName`. -2. If the tool has subcommands, add them to `commands[]`. If it has no subcommands, use `commands: []`. +2. If the tool has subcommands, nest each one inside its parent command's `commands[]` array. If it has no subcommands, use `commands: []`. Add `aliases` when a command has alternate spellings and `interactive: true` when it prompts for user input. 3. Map all known parameters following the type rules below. ## Parameter Type Rules -| CLI pattern | `parameterType` | `dataType` | Notes | -| ---------------------------- | --------------- | ----------------- | -------------------------------------- | -| `--verbose`, `-v` (no value) | `Flag` | `Boolean` | | -| `--output ` | `Option` | `String` | Add `longFlag`, optionally `shortFlag` | -| `--count ` | `Option` | `Number` | | -| `--format ` | `Option` | `Enum` | Use `enum.values[]` | -| `` | `Argument` | `String`/`Number` | Set `position` (zero-based) | +| CLI pattern | `parameterType` | `dataType` | Notes | +| ---------------------------- | --------------- | ----------------- | ---------------------------------------- | +| `--verbose`, `-v` (no value) | `Flag` | `Boolean` | | +| `--output ` | `Option` | `String` | `key: "--output"`, add `aliases: ["-o"]` | +| `--count ` | `Option` | `Number` | | +| `--format ` | `Option` | `Enum` | Use `enum.values[]` | +| `` | `Argument` | `String`/`Number` | Set `position` (zero-based) | -- **Short flag**: single dash + letter (e.g. `-o`). Include only if present. -- **Long flag**: double dash + word (e.g. `--output`). Preserve exact prefix. -- Do not invent extra alias fields. Use `shortFlag` and `longFlag` only; if the CLI exposes more variants than the schema supports, keep the canonical forms and mention the edge case in `description` only when it materially affects usage. +- **Key is the full flag**: `key` holds the complete flag, dashes included (`--output`, `-list`). Nothing is derived or prefixed at render time. +- **Aliases are short names and other spellings**: `aliases` holds everything that is _not_ the full flag, e.g. `["-o"]`. +- Preserve the exact prefix the CLI uses. `curl` really does use `--output`, while `httpx` uses `-list`. There is no tool-level flag prefix setting - write the flag as the tool spells it. +- Do not add `shortFlag`, `longFlag`, `flagPrefix`, or any other alias field - `key` and `aliases` are the only fields. +- `Argument` parameters have no dashes in their key and have no `aliases`. ## Key Rules -1. Every `key` must be unique across the entire `parameters[]` array. It should be meaningful and derived from the parameter name or description. -2. When `commands` is non-empty: non-global parameters **must** have `commandKey`, global parameters **must** have `isGlobal: true` and no `commandKey`. -3. When `commands` is empty: parameters are **root parameters** — they must **not** have `commandKey` or `isGlobal`. Do not create a dummy command matching the tool name. -4. Parameter `name` should be user-friendly title case (e.g. `--output-file` → `"Output File"`). Command `name` should match the actual CLI token used in the command path. +1. Every `key` must be unique among its own command's parameters. For flags and options it is the full flag, dashes included; for arguments it is a plain positional name. +2. Nest each parameter inside the command that accepts it - a parameter's location defines its scope. Keys only need to be unique among their own command's parameters, so the same flag may appear on sibling commands. +3. Parameters with no command are the tool's own flags, accepted before a command is chosen. Add `recursive: true` to any of them that should also be inherited by every command. +4. Parameter `displayName` should be user-friendly title case (e.g. `--output-file` → `"Output File"`), keeping well-known initialisms upper case (`--ip-version` → `"IP Version"`, `--aws-sigv4` → `"AWS SigV4"`). Command `displayName` should match the actual CLI token used in the command path. 5. Descriptions in sentence case, trimmed. -6. Do not add `defaultValue` — it does not exist in the schema. -7. Do not add empty arrays/objects for optional properties (`validations`, `dependencies`, `exclusionGroups`, `metadata`, `enum`, `metadata.tags`). -8. Tool description/version live under `info: { description, version, url }` — never at top level. `version` is optional in the schema, but when you include it, use the current release string without a leading `v` unless the upstream project uses a non-semver date or custom release format. -9. Positional argument `position` is zero-based. -10. Persisted tool JSON files should include `$schema: "https://commandly.divyeshio.in/specification/flat.json"`. The validation script can auto-fix this when missing. -11. Output is pure JSON — no backticks, no trailing commas, proper indentation. +6. Do not add `defaultValue` - it does not exist in the schema. +7. Do not add empty arrays/objects for optional properties (`validations`, `dependencies`, `exclusionGroups`, `metadata`, `enum`, `metadata.tags`, `installation.sources`, `aliases`). A flag with no short name simply omits `aliases`. +8. Tool description/version live under `info: { description, version, url }` - never at top level. `version` is optional in the schema, but when you include it, use the current release string without a leading `v` unless the upstream project uses a non-semver date or custom release format. +9. Populate `installation.sources` only from the tool's official documentation. Each source needs `key`, `method`, and `command`; add `manager` for `package_manager`, and `url`, `os`, or `note` when the docs provide them. Omit the field entirely when the install method is not documented. +10. Positional argument `position` is zero-based. +11. Persisted tool JSON files should include `$schema: "https://commandly.divyeshio.in/specification/tool.json"`. The validation script can auto-fix this when missing. +12. Output is pure JSON - no backticks, no trailing commas, proper indentation. ## Schema Reference diff --git a/.agents/skills/commandly-tool-generation/references/examples.md b/.agents/skills/commandly-tool-generation/references/examples.md index adfecdd..3d17ecf 100644 --- a/.agents/skills/commandly-tool-generation/references/examples.md +++ b/.agents/skills/commandly-tool-generation/references/examples.md @@ -2,11 +2,11 @@ ## 1. Simple tool with no subcommands (curl) -Demonstrates: root parameters (no commands, no `commandKey`), Flag / Option / Argument parameter types, `keyValueSeparator`. +Demonstrates: a tool with no commands, Flag / Option / Argument parameter types, `keyValueSeparator`. ```json { - "$schema": "https://commandly.divyeshio.in/specification/flat.json", + "$schema": "https://commandly.divyeshio.in/specification/tool.json", "binaryName": "curl", "displayName": "Curl", "info": { @@ -17,7 +17,7 @@ Demonstrates: root parameters (no commands, no `commandKey`), Flag / Option / Ar "parameters": [ { "key": "target", - "name": "Target", + "displayName": "Target", "description": "URL to download.", "parameterType": "Argument", "dataType": "String", @@ -26,34 +26,31 @@ Demonstrates: root parameters (no commands, no `commandKey`), Flag / Option / Ar "sortOrder": 5 }, { - "key": "output", - "name": "Output", + "key": "--output", + "displayName": "Output", "description": "Write to file instead of stdout.", "parameterType": "Option", "dataType": "String", - "shortFlag": "-o", - "longFlag": "--output", + "aliases": ["-o"], "keyValueSeparator": " ", "sortOrder": 4 }, { - "key": "location", - "name": "Location", + "key": "--location", + "displayName": "Location", "description": "Follow redirects.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-L", - "longFlag": "--location", + "aliases": ["-L"], "sortOrder": 1 }, { - "key": "silent", - "name": "Silent", + "key": "--silent", + "displayName": "Silent", "description": "Silent mode.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-s", - "longFlag": "--silent", + "aliases": ["-s"], "sortOrder": 2 } ] @@ -66,14 +63,13 @@ Demonstrates: `dataType: "Enum"`, `enum.values[]`, `isRepeatable`. ```json { - "key": "ip-version", - "name": "Ip Version", + "key": "--ip-version", + "displayName": "IP Version", "description": "IP version to scan of hostname (4,6) - (default 4).", "parameterType": "Option", "dataType": "Enum", "isRepeatable": true, - "shortFlag": "-iv", - "longFlag": "--ip-version", + "aliases": ["-iv"], "enum": { "values": [ { @@ -98,73 +94,119 @@ Demonstrates: `dataType: "Enum"`, `enum.values[]`, `isRepeatable`. ## 3. Multi-command tool (git-style) -Demonstrates: multiple commands, command-scoped parameters, global parameters. +Demonstrates: multiple commands, each owning its parameters, a nested subcommand, and a tool-level recursive parameter that applies to every command. ```json { - "$schema": "https://commandly.divyeshio.in/specification/flat.json", + "$schema": "https://commandly.divyeshio.in/specification/tool.json", "binaryName": "git", "displayName": "Git", "info": { "description": "Git is a free and open source distributed version control system.", "url": "https://git-scm.com/" }, - "commands": [ - { - "key": "commit", - "name": "commit", - "description": "Record changes to the repository.", - "sortOrder": 1 - }, - { - "key": "push", - "name": "push", - "description": "Update remote refs.", - "sortOrder": 2 - } - ], "parameters": [ { - "key": "verbose", - "name": "Verbose", + "key": "--verbose", + "displayName": "Verbose", "description": "Be more verbose.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-v", - "longFlag": "--verbose", - "isGlobal": true - }, + "aliases": ["-v"], + "recursive": true + } + ], + "commands": [ { - "key": "commit-message", - "name": "Message", - "description": "Use the given message as the commit message.", - "parameterType": "Option", - "dataType": "String", - "shortFlag": "-m", - "longFlag": "--message", - "keyValueSeparator": " ", - "isRequired": true, - "commandKey": "commit" + "key": "commit", + "displayName": "commit", + "description": "Record changes to the repository.", + "sortOrder": 1, + "parameters": [ + { + "key": "--message", + "displayName": "Message", + "description": "Use the given message as the commit message.", + "parameterType": "Option", + "dataType": "String", + "aliases": ["-m"], + "keyValueSeparator": " ", + "isRequired": true + }, + { + "key": "--all", + "displayName": "All", + "description": "Stage all tracked modified/deleted files.", + "parameterType": "Flag", + "dataType": "Boolean", + "aliases": ["-a"] + } + ] }, { - "key": "commit-all", - "name": "All", - "description": "Stage all tracked modified/deleted files.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-a", - "longFlag": "--all", - "commandKey": "commit" + "key": "push", + "displayName": "push", + "description": "Update remote refs.", + "sortOrder": 2, + "parameters": [ + { + "key": "--force", + "displayName": "Force", + "description": "Force update refs.", + "parameterType": "Flag", + "dataType": "Boolean", + "aliases": ["-f"] + } + ] }, { - "key": "push-force", - "name": "Force", - "description": "Force update refs.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-f", - "longFlag": "--force", - "commandKey": "push" + "key": "remote", + "displayName": "remote", + "description": "Manage the set of tracked repositories.", + "sortOrder": 3, + "commands": [ + { + "key": "remote-add", + "displayName": "add", + "description": "Add a remote named for the repository.", + "parameters": [ + { + "key": "name", + "displayName": "Name", + "description": "Name of the remote.", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "isRequired": true + }, + { + "key": "url", + "displayName": "URL", + "description": "URL of the remote repository.", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "isRequired": true + } + ] + }, + { + "key": "remote-remove", + "displayName": "remove", + "description": "Remove the remote named .", + "parameters": [ + { + "key": "name", + "displayName": "Name", + "description": "Name of the remote to remove.", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "isRequired": true + } + ] + } + ] } ] } @@ -175,37 +217,45 @@ Demonstrates: multiple commands, command-scoped parameters, global parameters. Demonstrates: `validations[]`, `dependencies[]`. ```json -{ - "key": "port", - "name": "Port", - "description": "Port number to connect to.", - "parameterType": "Option", - "dataType": "Number", - "shortFlag": "-p", - "longFlag": "--port", - "keyValueSeparator": " ", - "commandKey": "connect", - "validations": [ - { - "key": "port-min", - "validationType": "min_value", - "validationValue": "1", - "errorMessage": "Port must be at least 1." - }, - { - "key": "port-max", - "validationType": "max_value", - "validationValue": "65535", - "errorMessage": "Port must not exceed 65535." - } - ], - "dependencies": [ - { - "key": "port-requires-host", - "parameterKey": "port", - "dependsOnParameterKey": "host", - "dependencyType": "requires" - } - ] -} +[ + { + "key": "--host", + "displayName": "Host", + "description": "Host to connect to.", + "parameterType": "Option", + "dataType": "String", + "aliases": ["-h"] + }, + { + "key": "--port", + "displayName": "Port", + "description": "Port number to connect to.", + "parameterType": "Option", + "dataType": "Number", + "aliases": ["-p"], + "keyValueSeparator": " ", + "validations": [ + { + "key": "port-min", + "validationType": "min_value", + "validationValue": "1", + "errorMessage": "Port must be at least 1." + }, + { + "key": "port-max", + "validationType": "max_value", + "validationValue": "65535", + "errorMessage": "Port must not exceed 65535." + } + ], + "dependencies": [ + { + "key": "port-requires-host", + "parameterKey": "--port", + "dependsOnParameterKey": "--host", + "dependencyType": "requires" + } + ] + } +] ``` diff --git a/.agents/skills/commandly-tool-generation/references/schema.md b/.agents/skills/commandly-tool-generation/references/schema.md index 833b8c9..9e20dfa 100644 --- a/.agents/skills/commandly-tool-generation/references/schema.md +++ b/.agents/skills/commandly-tool-generation/references/schema.md @@ -1,4 +1,4 @@ -# Commandly Flat Schema Reference +# Commandly Schema Reference ## Tool (root) @@ -8,6 +8,7 @@ | `displayName` | string | ✓ | Human-friendly title (e.g. `"Curl"`) | | `interactive` | boolean | | True if invoking the root tool opens a prompt | | `info` | ToolInfo | | Description, version, URL | +| `installation` | Installation | | Structured installation sources | | `commands` | Command[] | ✓ | Can be empty for tools with no subcommands | | `parameters` | Parameter[] | ✓ | Can be empty array | | `exclusionGroups` | ExclusionGroup[] | | Omit if unused | @@ -23,39 +24,41 @@ ## Command -| Field | Type | Required | Notes | -| ------------------ | ------- | -------- | -------------------------------------------- | -| `key` | string | ✓ | Unique identifier, e.g. `"curl"` or `"scan"` | -| `name` | string | ✓ | Display name | -| `parentCommandKey` | string | | For subcommands; key of parent | -| `description` | string | | | -| `interactive` | boolean | | True if command opens interactive session | -| `sortOrder` | number | | Display order | +| Field | Type | Required | Notes | +| ----------------- | ---------------- | -------- | -------------------------------------------- | +| `key` | string | ✓ | Unique identifier, e.g. `"curl"` or `"scan"` | +| `displayName` | string | ✓ | Display name | +| `description` | string | | | +| `aliases` | string[] | | Alternate spellings of the command token | +| `interactive` | boolean | | True if command opens interactive session | +| `sortOrder` | number | | Display order | +| `parameters` | Parameter[] | | Parameters the command accepts | +| `exclusionGroups` | ExclusionGroup[] | | Groups among this command's parameters | +| `commands` | Command[] | | Subcommands nested beneath this command | ## Parameter -| Field | Type | Required | Notes | -| ------------------- | --------------------- | -------- | --------------------------------------------------------------------------------------------------------- | -| `key` | string | ✓ | Unique across all parameters | -| `name` | string | ✓ | User-friendly title case | -| `parameterType` | ParameterType | ✓ | `"Flag"` \| `"Option"` \| `"Argument"` | -| `dataType` | ParameterDataType | ✓ | `"Boolean"` \| `"String"` \| `"Number"` \| `"Enum"` | -| `commandKey` | string | | Required when commands exist and not global; omit for root parameters (no commands) and global parameters | -| `description` | string | | Sentence case | -| `group` | string | | Visual grouping label | -| `isRequired` | boolean | | | -| `isRepeatable` | boolean | | True if flag can appear multiple times | -| `isGlobal` | boolean | | True if applies to all commands; must not be set when commands is empty | -| `shortFlag` | string | | e.g. `"-o"`. Omit if none. | -| `longFlag` | string | | e.g. `"--output"`. Preserve exact prefix. | -| `position` | number | | Zero-based; only for `Argument` type | -| `sortOrder` | number | | Display order | -| `arraySeparator` | string | | For array-valued options | -| `keyValueSeparator` | string | | `" "` or `"="` | -| `enum` | ParameterEnumValues | | Required when `dataType` is `"Enum"` | -| `validations` | ParameterValidation[] | | Omit if unused | -| `dependencies` | ParameterDependency[] | | Omit if unused | -| `metadata` | ParameterMetadata | | Contains `tags[]` | +| Field | Type | Required | Notes | +| --------------- | ----------------- | -------- | ------------------------------------------------------------------------------------- | +| `key` | string | ✓ | Unique among its command's parameters; the full flag including dashes | +| `displayName` | string | ✓ | User-friendly title case | +| `parameterType` | ParameterType | ✓ | `"Flag"` \| `"Option"` \| `"Argument"` | +| `dataType` | ParameterDataType | ✓ | `"Boolean"` \| `"String"` \| `"Number"` \| `"Enum"` | +| `description` | string | | Sentence case | +| `group` | string | | Visual grouping label | +| `isRequired` | boolean | | | +| `isRepeatable` | boolean | | True if flag can appear multiple times | +| `aliases` | string[] | | Short names and other spellings, e.g. `["-o"]`. The full flag lives in `key` | +| `recursive` | boolean | | True if the parameter is also usable from the subcommands of its command, recursively | + +| `position` | number | | Zero-based; only for `Argument` type | +| `sortOrder` | number | | Display order | +| `arraySeparator` | string | | For array-valued options | +| `keyValueSeparator` | string | | `" "` or `"="` | +| `enum` | ParameterEnumValues | | Required when `dataType` is `"Enum"` | +| `validations` | ParameterValidation[] | | Omit if unused | +| `dependencies` | ParameterDependency[] | | Omit if unused | +| `metadata` | ParameterMetadata | | Contains `tags[]` | ## ParameterEnumValues @@ -96,8 +99,8 @@ Valid `validationType` values: `"min_length"`, `"max_length"`, `"min_value"`, `" ```json { "key": "output-requires-format", - "parameterKey": "output", - "dependsOnParameterKey": "format", + "parameterKey": "--output", + "dependsOnParameterKey": "--format", "dependencyType": "requires", "conditionValue": "json" } @@ -107,22 +110,68 @@ Valid `dependencyType` values: `"requires"`, `"conflicts_with"` ## ExclusionGroup +Declared inside the command that owns the parameters, or on the tool for its own parameters. + ```json { "key": "mode-group", - "commandKey": "scan", - "name": "Mode", + "displayName": "Mode", "exclusionType": "mutual_exclusive", - "parameterKeys": ["fast-mode", "deep-mode"] + "parameterKeys": ["--fast-mode", "--deep-mode"] } ``` Valid `exclusionType` values: `"mutual_exclusive"`, `"required_one_of"` +## Installation + +```json +{ + "installation": { + "sources": [ + { + "key": "go-install", + "method": "package_manager", + "manager": "go", + "command": "go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest", + "url": "https://docs.projectdiscovery.io/opensource/httpx/install" + }, + { + "key": "brew", + "method": "package_manager", + "manager": "brew", + "command": "brew install httpx", + "os": ["linux", "macos"] + }, + { + "key": "release-binary", + "method": "binary", + "command": "https://github.com/projectdiscovery/httpx/releases", + "note": "Download the latest binary for your OS and unzip it." + } + ] + } +} +``` + +### InstallationSource + +| Field | Type | Required | Notes | +| --------- | ------------------ | -------- | ----------------------------------------------------------- | +| `key` | string | ✓ | Unique identifier within the tool | +| `method` | InstallationMethod | ✓ | `package_manager` \| `binary` \| `docker` \| `script` | +| `manager` | string | | Only for `package_manager`, e.g. `brew`, `go`, `npm`, `pip` | +| `command` | string | ✓ | The command that installs the tool | +| `url` | string | | Documentation URL for this method | +| `os` | string[] | | `linux` \| `macos` \| `windows`. Omit when unrestricted | +| `note` | string | | Prerequisites or platform notes | + +Only transcribe commands that the tool's official documentation actually shows. + ## $schema Tool JSON files stored in `tools-collection` should include this top-level field. The validation script can inject it automatically: ```json -"$schema": "https://commandly.divyeshio.in/specification/flat.json" +"$schema": "https://commandly.divyeshio.in/specification/tool.json" ``` diff --git a/.agents/skills/commandly-tool-generation/references/validation.md b/.agents/skills/commandly-tool-generation/references/validation.md index 1374517..f671c94 100644 --- a/.agents/skills/commandly-tool-generation/references/validation.md +++ b/.agents/skills/commandly-tool-generation/references/validation.md @@ -2,25 +2,25 @@ ## Validation Script -Use `scripts/validate-tool-collection.ts` to validate tool JSON files against the flat schema. +Use `scripts/validate-tool-collection.ts` to validate tool JSON files against the schema. ### Usage ```bash -bun scripts/validate-tool-collection.ts tools-collection/.json +bun scripts/validate-tool-collection.ts public/tools-collection/.json ``` Multiple files at once: ```bash -bun scripts/validate-tool-collection.ts tools-collection/*.json +bun scripts/validate-tool-collection.ts public/tools-collection/*.json ``` ### What the script does 1. Reads each `.json` file passed as a CLI argument. -2. Parses the JSON — fails with a clear message on syntax errors. -3. Validates against `public/specification/flat.json` using AJV. +2. Parses the JSON - fails with a clear message on syntax errors. +3. Validates against `public/specification/tool.json` using AJV. 4. Checks that `binaryName` matches the filename (e.g. `curl.json` must have `"binaryName": "curl"`). 5. Runs repo-specific validation from `registry/commandly/utils/tool-validation.ts`. 6. Runs `fixTool(tool, { addSchema: true, removeMetadata: true })`. @@ -30,25 +30,23 @@ bun scripts/validate-tool-collection.ts tools-collection/*.json ### Common errors and fixes -| Error | Fix | -| --------------------------------------------------------------------------------- | ------------------------------------------------------------------ | -| `"name" field (... ) does not match filename (...)` | Set `"binaryName"` to the bare filename without extension | -| Schema validation: `/ must have required property 'key'` | Every command and parameter needs a `key` field | -| Schema validation: `/ must have required property 'parameterType'` | Set `parameterType` to `"Flag"`, `"Option"`, or `"Argument"` | -| Schema validation: `/ must have required property 'dataType'` | Set `dataType` to `"Boolean"`, `"String"`, `"Number"`, or `"Enum"` | -| `Parameter "..." must have commandKey or isGlobal when commands exist` | Add `commandKey`, or mark the parameter as `isGlobal: true` | -| `Parameter "..." must not have commandKey or isGlobal when there are no commands` | Remove `commandKey` and `isGlobal` for root parameters | -| Invalid JSON | Fix syntax (trailing commas, missing quotes, etc.) | +| Error | Fix | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `"binaryName" field (... ) does not match filename (...)` | Set `"binaryName"` to the bare filename without extension | +| Schema validation: `/ must have required property 'key'` | Every command and parameter needs a `key` field | +| Schema validation: `/ must have required property 'parameterType'` | Set `parameterType` to `"Flag"`, `"Option"`, or `"Argument"` | +| Schema validation: `/ must have required property 'dataType'` | Set `dataType` to `"Boolean"`, `"String"`, `"Number"`, or `"Enum"` | +| `Duplicate parameter key "..."` | Keys must be unique among their own command's parameters | +| Invalid JSON | Fix syntax (trailing commas, missing quotes, etc.) | ### `fixTool` behaviour -`fixTool` (from `registry/commandly/utils/flat.ts`) currently: +`fixTool` (from `registry/commandly/utils/tool-file.ts`) currently: -- Injects `"$schema": "https://commandly.divyeshio.in/specification/flat.json"` at the top level. +- Injects `"$schema": "https://commandly.divyeshio.in/specification/tool.json"` at the top level. - Strips `metadata` from parameters when validation runs with `removeMetadata: true`. - Removes top-level `metadata` when validation runs with `removeMetadata: true`. - Removes empty `exclusionGroups`. -- Moves legacy top-level `description` and `version` into `info`. - Removes redundant default values such as `false` booleans and the default option separator of a single space. The script auto-applies this transform and writes back the file if needed, so generated JSON can omit `$schema` during drafting, but committed files should end up with it after validation. @@ -58,14 +56,15 @@ The script auto-applies this transform and writes back the file if needed, so ge ```ts import { readFileSync } from "fs"; import { resolve } from "path"; -import Ajv from "ajv"; + import { validateTool, hasErrors, formatValidationErrors, } from "@/components/commandly/utils/tool-validation"; +import Ajv from "ajv"; -const schema = JSON.parse(readFileSync(resolve("public/specification/flat.json"), "utf-8")); +const schema = JSON.parse(readFileSync(resolve("public/specification/tool.json"), "utf-8")); const ajv = new Ajv({ allErrors: true }); const validate = ajv.compile(schema); diff --git a/.agents/skills/skill-creator/SKILL.md b/.agents/skills/skill-creator/SKILL.md index af816a9..1402073 100644 --- a/.agents/skills/skill-creator/SKILL.md +++ b/.agents/skills/skill-creator/SKILL.md @@ -12,7 +12,7 @@ This skill provides guidance for creating effective skills. Skills are modular, self-contained packages that extend Claude's capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific -domains or tasks—they transform Claude from a general-purpose agent into a specialized agent +domains or tasks-they transform Claude from a general-purpose agent into a specialized agent equipped with procedural knowledge that no model can fully possess. ### What Skills Provide @@ -88,7 +88,7 @@ Documentation and reference material intended to be loaded as needed into contex - **Use cases**: Database schemas, API documentation, domain knowledge, company policies, detailed workflow guides - **Benefits**: Keeps SKILL.md lean, loaded only when Claude determines it's needed - **Best practice**: If files are large (>10k words), include grep search patterns in SKILL.md -- **Avoid duplication**: Information should live in either SKILL.md or references files, not both. Prefer references files for detailed information unless it's truly core to the skill—this keeps SKILL.md lean while making information discoverable without hogging the context window. Keep only essential procedural instructions and workflow guidance in SKILL.md; move detailed reference material, schemas, and examples to references files. +- **Avoid duplication**: Information should live in either SKILL.md or references files, not both. Prefer references files for detailed information unless it's truly core to the skill-this keeps SKILL.md lean while making information discoverable without hogging the context window. Keep only essential procedural instructions and workflow guidance in SKILL.md; move detailed reference material, schemas, and examples to references files. ##### Assets (`assets/`) diff --git a/.agents/skills/vercel-composition-patterns/AGENTS.md b/.agents/skills/vercel-composition-patterns/AGENTS.md index a52f9d5..62245dd 100644 --- a/.agents/skills/vercel-composition-patterns/AGENTS.md +++ b/.agents/skills/vercel-composition-patterns/AGENTS.md @@ -20,17 +20,17 @@ Composition patterns for building flexible, maintainable React components. Avoid ## Table of Contents -1. [Component Architecture](#1-component-architecture) — **HIGH** +1. [Component Architecture](#1-component-architecture) - **HIGH** - 1.1 [Avoid Boolean Prop Proliferation](#11-avoid-boolean-prop-proliferation) - 1.2 [Use Compound Components](#12-use-compound-components) -2. [State Management](#2-state-management) — **MEDIUM** +2. [State Management](#2-state-management) - **MEDIUM** - 2.1 [Decouple State Management from UI](#21-decouple-state-management-from-ui) - 2.2 [Define Generic Context Interfaces for Dependency Injection](#22-define-generic-context-interfaces-for-dependency-injection) - 2.3 [Lift State into Provider Components](#23-lift-state-into-provider-components) -3. [Implementation Patterns](#3-implementation-patterns) — **MEDIUM** +3. [Implementation Patterns](#3-implementation-patterns) - **MEDIUM** - 3.1 [Create Explicit Component Variants](#31-create-explicit-component-variants) - 3.2 [Prefer Composing Children Over Render Props](#32-prefer-composing-children-over-render-props) -4. [React 19 APIs](#4-react-19-apis) — **MEDIUM** +4. [React 19 APIs](#4-react-19-apis) - **MEDIUM** - 4.1 [React 19 API Changes](#41-react-19-api-changes) --- @@ -260,7 +260,7 @@ composed components. The provider component should be the only place that knows how state is managed. -UI components consume the context interface—they don't know if state comes from +UI components consume the context interface-they don't know if state comes from useState, Zustand, or a server sync. @@ -377,7 +377,7 @@ Define a **generic interface** for your component context with three parts: `state`, `actions`, and `meta`. This interface is a contract that any provider -can implement—enabling the same UI components to work with completely different +can implement-enabling the same UI components to work with completely different state implementations. @@ -559,7 +559,7 @@ function MessagePreview() { } ``` -The provider boundary is what matters—not the visual nesting. Components that +The provider boundary is what matters-not the visual nesting. Components that need shared state don't have to be inside the `Composer.Frame`. They just need @@ -700,7 +700,7 @@ UI itself. **Key insight:** Components that need shared state don't have to be visually -nested inside each other—they just need to be within the same provider. +nested inside each other-they just need to be within the same provider. --- diff --git a/.agents/skills/vercel-composition-patterns/README.md b/.agents/skills/vercel-composition-patterns/README.md index 01f359b..8c52f84 100644 --- a/.agents/skills/vercel-composition-patterns/README.md +++ b/.agents/skills/vercel-composition-patterns/README.md @@ -36,11 +36,11 @@ lifting state, and composing internals. ## Core Principles -1. **Composition over configuration** — Instead of adding props, let consumers +1. **Composition over configuration** - Instead of adding props, let consumers compose -2. **Lift your state** — State in providers, not trapped in components -3. **Compose your internals** — Subcomponents access context, not props -4. **Explicit variants** — Create ThreadComposer, EditComposer, not Composer +2. **Lift your state** - State in providers, not trapped in components +3. **Compose your internals** - Subcomponents access context, not props +4. **Explicit variants** - Create ThreadComposer, EditComposer, not Composer with isThread ## Creating a New Rule diff --git a/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md b/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md index 9610308..b5c2db3 100644 --- a/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md +++ b/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md @@ -9,7 +9,7 @@ tags: composition, context, state, typescript, dependency-injection Define a **generic interface** for your component context with three parts: `state`, `actions`, and `meta`. This interface is a contract that any provider -can implement—enabling the same UI components to work with completely different +can implement-enabling the same UI components to work with completely different state implementations. **Core principle:** Lift state, compose internals, make state @@ -142,7 +142,7 @@ function ChannelProvider({ channelId, children }: Props) { **Custom UI outside the component can access state and actions:** -The provider boundary is what matters—not the visual nesting. Components that +The provider boundary is what matters-not the visual nesting. Components that need shared state don't have to be inside the `Composer.Frame`. They just need to be within the provider. diff --git a/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md b/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md index b91a8fd..5626e98 100644 --- a/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +++ b/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md @@ -8,7 +8,7 @@ tags: composition, state, architecture ## Decouple State Management from UI The provider component should be the only place that knows how state is managed. -UI components consume the context interface—they don't know if state comes from +UI components consume the context interface-they don't know if state comes from useState, Zustand, or a server sync. **Incorrect (UI coupled to state implementation):** diff --git a/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md b/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md index 2222b68..5ca3b82 100644 --- a/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md +++ b/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md @@ -122,4 +122,4 @@ component, it can still access the composer's state and actions from outside the UI itself. **Key insight:** Components that need shared state don't have to be visually -nested inside each other—they just need to be within the same provider. +nested inside each other-they just need to be within the same provider. diff --git a/.github/agents/Explore.agent.md b/.github/agents/Explore.agent.md index e98c585..f7e006c 100644 --- a/.github/agents/Explore.agent.md +++ b/.github/agents/Explore.agent.md @@ -24,7 +24,7 @@ You are an exploration agent specialized in rapid codebase analysis and answerin Adapt search strategy based on the requested thoroughness level. -**Bias for speed** — return findings as quickly as possible: +**Bias for speed** - return findings as quickly as possible: - Parallelize independent tool calls (multiple greps, multiple reads) - Stop searching once you have sufficient context diff --git a/README.md b/README.md index 7f6533e..e727567 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

CLI -> JSON -> UI. Browse tool definitions, edit command schemas, and generate runnable CLI commands from a visual interface.

- +

Features • Contribute • @@ -23,7 +23,7 @@ - Parameters - Tool Renderer - Specify Dependencies and Validations -- JSON Output - Nested, Flat. +- JSON Output - Generate Help Menu - Generate Command - Saved Commands @@ -33,8 +33,9 @@ ## Specification -- [Flat](https://commandly.divyeshio.in/docs/specification-schema) -- [Nested](https://commandly.divyeshio.in/docs/specification-nested) +- [Specification](https://commandly.divyeshio.in/docs/specification-intro) +- [Schema](https://commandly.divyeshio.in/docs/specification-schema) +- [Examples](https://commandly.divyeshio.in/docs/specification-examples) ## 🎯 Motivation @@ -51,7 +52,7 @@ Development - Please read the [contributing guide](/CONTRIBUTING.md). For adding new tools: 1. Create or edit a tool in the browser -2. Copy the **Flat** JSON output +2. Copy the JSON output 3. Raise a PR with the JSON file in `tools-collection` ## 📜 License diff --git a/bun.lock b/bun.lock index 709916b..cccd8ff 100644 --- a/bun.lock +++ b/bun.lock @@ -1,223 +1,207 @@ { - "lockfileVersion": 1, + "lockfileVersion": 3, "configVersion": 1, "workspaces": { "": { "name": "commandly", "dependencies": { - "@ai-sdk/anthropic": "^3.0.85", - "@ai-sdk/google": "^3.0.83", - "@ai-sdk/groq": "^3.0.42", - "@ai-sdk/mistral": "^3.0.40", - "@ai-sdk/openai": "^4.0.2", - "@ai-sdk/react": "3.0.210", - "@ai-sdk/xai": "^3.0.96", - "@base-ui/react": "^1.6.0", + "@ai-sdk/anthropic": "^4.0.78", + "@ai-sdk/google": "^4.0.93", + "@ai-sdk/groq": "^4.0.59", + "@ai-sdk/mistral": "^4.0.62", + "@ai-sdk/openai": "4.0.91", + "@ai-sdk/react": "4.0.140", + "@ai-sdk/xai": "^5.0.20", + "@base-ui/react": "^1.9.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", - "@modelcontextprotocol/sdk": "^1.29.0", - "@openrouter/ai-sdk-provider": "^2.10.0", - "@radix-ui/react-hover-card": "^1.1.17", - "@radix-ui/react-label": "^2.1.10", - "@radix-ui/react-select": "^2.3.1", - "@radix-ui/react-slot": "^1.3.0", - "@tailwindcss/postcss": "^4.3.1", - "@tailwindcss/vite": "^4.3.1", - "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-query": "^5.101.2", - "@tanstack/react-router": "1.170.16", - "@tanstack/react-router-with-query": "1.130.17", - "@tanstack/react-start": "^1.168.26", - "ai": "^6.0.208", + "@modelcontextprotocol/sdk": "^1.32.1", + "@openrouter/ai-sdk-provider": "^3.1.0", + "@radix-ui/react-hover-card": "^1.2.0", + "@radix-ui/react-label": "^2.1.17", + "@radix-ui/react-select": "^2.4.0", + "@radix-ui/react-slot": "^1.5.0", + "@tailwindcss/postcss": "^4.3.3", + "@tailwindcss/vite": "^4.3.3", + "@tanstack/react-pacer": "^0.24.1", + "@tanstack/react-router": "1.170.42", + "@tanstack/react-start": "^1.168.61", + "@tanstack/router-core": "1.171.35", + "ai": "^7.0.137", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.4.0", - "jsonpath-plus": "^10.4.0", - "lucide-react": "^1.22.0", - "motion": "^12.42.0", + "jsonpath-plus": "^11.2.0", + "lucide-react": "^1.55.0", + "motion": "^14.1.0", "next-themes": "^0.4.6", - "nuqs": "^2.8.9", - "radix-ui": "^1.6.0", - "react": "^19.2.7", - "react-day-picker": "^10.0.1", - "react-dom": "^19.2.7", - "sonner": "^2.0.7", - "streamdown": "^2.5.0", - "tailwind-merge": "^3.6.0", - "tailwindcss": "^4.3.1", + "nuqs": "^2.10.2", + "radix-ui": "^1.8.0", + "react": "^19.3.0", + "react-day-picker": "^10.0.2", + "react-dom": "^19.3.0", + "sonner": "^2.0.8", + "streamdown": "^2.7.0", + "tailwind-merge": "^3.7.0", + "tailwindcss": "^4.3.3", "tailwindcss-animate": "^1.0.7", "tokenlens": "^1.3.1", "tw-animate-css": "^1.4.0", "use-stick-to-bottom": "^1.1.6", - "zod": "^4.4.3", + "zod": "^4.6.6", }, "devDependencies": { "@mdx-js/rollup": "^3.1.1", - "@tanstack/react-query-devtools": "^5.101.2", - "@tanstack/react-router-devtools": "1.167.0", - "@tanstack/router-plugin": "1.168.18", - "@testing-library/jest-dom": "^6.9.1", - "@testing-library/react": "^16.3.2", - "@testing-library/user-event": "^14.6.1", - "@types/bun": "^1.3.14", + "@tanstack/router-plugin": "1.168.43", + "@testing-library/jest-dom": "^7.0.1", + "@testing-library/react": "^16.3.3", + "@testing-library/user-event": "^14.6.7", + "@types/bun": "^1.4.3", "@types/jest": "^30.0.0", "@types/json-schema": "^7.0.15", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", - "@typescript/native-preview": "^7.0.0-dev.20260504.1", - "@vitejs/plugin-react": "^6.0.3", - "@vitest/coverage-v8": "4.1.9", + "@types/react": "^19.3.0", + "@types/react-dom": "^19.3.0", + "@typescript/native-preview": "^7.0.0-dev.20260707.2", + "@vitejs/plugin-react": "^6.1.2", + "@vitest/coverage-v8": "5.0.4", "ajv": "^8.20.0", "fake-indexeddb": "^6.2.5", - "jsdom": "^29.1.1", - "oxfmt": "^0.56.0", - "oxlint": "^1.71.0", - "oxlint-tsgolint": "^0.23.0", - "rehype-pretty-code": "^0.14.3", + "jsdom": "^30.1.2", + "oxfmt": "^0.72.0", + "oxlint": "^1.87.0", + "oxlint-tsgolint": "^7.0.2004", + "rehype-pretty-code": "^0.14.5", "remark-gfm": "^4.0.1", - "shadcn": "^4.12.0", - "shiki": "^4.3.0", - "typescript": "^6.0.3", - "typescript-json-schema": "^0.67.4", - "vite": "^8.1.0", - "vitest": "^4.1.9", - "vitest-browser-react": "^2.2.0", + "shadcn": "^4.21.4", + "shiki": "^4.5.0", + "typescript": "^7.0.2", + "typescript-json-schema": "^0.68.0", + "vite": "^8.3.4", + "vitest": "^5.0.4", + "vitest-browser-react": "^2.3.0", }, }, }, + "overrides": { + "@modelcontextprotocol/sdk": { + "zod": "^4.4.3", + }, + }, "packages": { - "@adobe/css-tools": ["@adobe/css-tools@4.4.4", "", {}, "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg=="], - - "@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.85", "", { "dependencies": { "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-fNeDB644l5wbRNQU0FnI+F7UTtOenMnPtACfMPUJaS2zJfuBlseEa1TMg+otHkETZgaJB+6Na51NQEv0+m7czw=="], - - "@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.133", "", { "dependencies": { "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30", "@vercel/oidc": "3.2.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Ebs+7iS9zUgJu5B0RlxM2JmDWzq79Cpd6YdiqcCzB5qFdpfQJPUDiXutqlQP89F2XGjOdDeidulBTXUdXWzOxw=="], - - "@ai-sdk/google": ["@ai-sdk/google@3.0.83", "", { "dependencies": { "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Pz7aCX0dy+5x+r4K/37HbLZNaPtPL4q2NduzJW64VffLv5sI9Nb478wAd7PlH2r2asiypJsz/Jerf9draTciUA=="], + "@adobe/css-tools": ["@adobe/css-tools@4.5.0", "", {}, "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q=="], - "@ai-sdk/groq": ["@ai-sdk/groq@3.0.42", "", { "dependencies": { "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-3qJSxYTSxCLIxArQSP5hvaRmo4DkqNrFatDzyosCTSCqzWBGP7Xu3zeYzf+HkGuY0gxI9f6C2aHoUXvUmTqEkA=="], + "@ai-sdk/anthropic": ["@ai-sdk/anthropic@4.0.78", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-lVMxa9tLM5WoB72bqxjzWEWQlCwtBTo1L3yIKxAefowWATd+1YKohrINey6wTn8gtGEqyYm79z4DUGJBYauUFw=="], - "@ai-sdk/mistral": ["@ai-sdk/mistral@3.0.40", "", { "dependencies": { "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-HzCV9jFsb04kpL/N+G7SCjFKJA0Q33p4Hc+1quYGGD8Ta37Pe5bzk9AjxaS8OYd//jmcny16yKhJ+e+h+P0AJg=="], + "@ai-sdk/gateway": ["@ai-sdk/gateway@4.0.110", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58", "@vercel/oidc": "3.2.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-5IwnOR6v7KC+D9eddUqsCobXl/FbLUVb2LaQc/uyuQdpP3/n9s0YLc9zl4/W3IS/R2pjHrqUfCzEAeOu7bFLoQ=="], - "@ai-sdk/openai": ["@ai-sdk/openai@4.0.2", "", { "dependencies": { "@ai-sdk/provider": "4.0.0", "@ai-sdk/provider-utils": "5.0.1" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-/oxY+VpWgTrmqCOho1AD/jF5ZaHizkAEsrEVBhIHEzxSHpbJI0Ws8VSpfJPPBeTF7Ebz6eaNGOvKm2RzN5EcdQ=="], + "@ai-sdk/google": ["@ai-sdk/google@4.0.93", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-hubOUxbG2W7oD3acdCxxnrQ84NlnLqfzcHe9uWMmwkglHxq/rwsbjloPhvebeQlcQ2G0gaX+akDF1Ddm/fNAnQ=="], - "@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.51", "", { "dependencies": { "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-A6qfyaVs4lxmRxRux6U3ViOa8mMbsSd0OaHghpei2MpiBT6791J4zFH5MN7kaW1tLfQ246rSC2DVTMOavsycjQ=="], + "@ai-sdk/groq": ["@ai-sdk/groq@4.0.59", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-+UP4GI5xZxfnUTqnTgGmER41IFPmHsAsTSTctsoM9iCeTv64com6z3DHKTWUCEfhkO+kfQ6GY34gqyFkfy5xCw=="], - "@ai-sdk/provider": ["@ai-sdk/provider@3.0.10", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw=="], + "@ai-sdk/mcp": ["@ai-sdk/mcp@2.0.73", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58", "cross-spawn": "^7.0.6", "pkce-challenge": "^5.0.1" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-k616Rv9WSVbr6fuB5otPztkULqi66dmR+RyH8GlOvVhOqQ1of8ePuHaoO79X+UHXCOABKHtrueLUSwiv+lj6yg=="], - "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.30", "", { "dependencies": { "@ai-sdk/provider": "3.0.10", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.8" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-VO7I+vPffqI5sMnPoUq5DCSqKIgQIk/naJWRdQVpz2ma2zoprC/lqiJiUEl2s6DfvTD76TbhD3q39ROjlA6rGw=="], + "@ai-sdk/mistral": ["@ai-sdk/mistral@4.0.62", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-I0Wm4VMBckhVG++KFFhXqX8UGzYfh4L+1obwXJ1JX2AE1NAW6DFKYebVT2slMWPt80RV3erM6scYkwwwFc2d3A=="], - "@ai-sdk/react": ["@ai-sdk/react@3.0.210", "", { "dependencies": { "@ai-sdk/provider-utils": "4.0.30", "ai": "6.0.208", "swr": "^2.2.5", "throttleit": "2.1.0" }, "peerDependencies": { "react": "^18 || ~19.0.1 || ~19.1.2 || ^19.2.1" } }, "sha512-VprBlyc8yvwlpIdcIICL307vRncXrLlmcRTY/7JR5ND9+LvUcxJU16yW6prClFahqEWVza8Vr8P4Bgk5ZBtp4A=="], + "@ai-sdk/openai": ["@ai-sdk/openai@4.0.91", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Nk382R6us0GNxI1cGJUXMryz1XHpyrmC3K/Rmqdx9tIsqAlc7UtuO/hC9dd31F41w8uzoS362HJSDXgAI7zKbA=="], - "@ai-sdk/xai": ["@ai-sdk/xai@3.0.96", "", { "dependencies": { "@ai-sdk/openai-compatible": "2.0.51", "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-a24jD29cQ3YocP7B4NUvNTb9s5CYR1ao2yU/QncT7QDwwOp4x/lq+6W+BdXGf1VucG7A0dx9jtyIOm6PE4JPyg=="], + "@ai-sdk/provider": ["@ai-sdk/provider@4.0.26", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-BZ443uBEq6HuMA+Z4b7Hpm65GpZSo7pWqnYqpf/7tAO3C48JbtvAhOE2JnODFj+jodsZzfRHkAyQb64xuD2tZQ=="], - "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@5.0.58", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@standard-schema/spec": "^1.1.0", "@workflow/serde": "4.1.0", "eventsource-parser": "^3.0.8", "undici": "^7.29.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-iXSwKR/7LpHzAlyrUl+bTinwzmZ3Nmup1viwPisM5Gn5cogRdIG4rV9w1ZDuKFcrXyu/AeVs42E1CX/0aNwrfQ=="], - "@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="], + "@ai-sdk/react": ["@ai-sdk/react@4.0.140", "", { "dependencies": { "@ai-sdk/mcp": "2.0.73", "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58", "ai": "7.0.137", "swr": "^2.4.1", "throttleit": "2.1.0" }, "peerDependencies": { "react": "^18 || ~19.0.1 || ~19.1.2 || ^19.2.1" } }, "sha512-ED/Q6VpWmo5kCwR4wNbyJbJSZ+3f/wcmTf/1gGtXYzM9KT3R+9X0Fuzb057ofb3wxobuDJykfB09iE+17xQAsw=="], - "@asamuzakjp/css-color": ["@asamuzakjp/css-color@5.1.11", "", { "dependencies": { "@asamuzakjp/generational-cache": "^1.0.1", "@csstools/css-calc": "^3.2.0", "@csstools/css-color-parser": "^4.1.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg=="], + "@ai-sdk/xai": ["@ai-sdk/xai@5.0.20", "", { "dependencies": { "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-rFyfg0QU3vB9aYJNsvjk7RpcleR9JwlaAynoakGnhqTKmvWGQcRrkkUXADqt1Qnkt5TYTYkgQDoSv85PcL9CbQ=="], - "@asamuzakjp/dom-selector": ["@asamuzakjp/dom-selector@7.1.1", "", { "dependencies": { "@asamuzakjp/generational-cache": "^1.0.1", "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1" } }, "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ=="], + "@alloc/quick-lru": ["@alloc/quick-lru@5.3.0", "", {}, "sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA=="], - "@asamuzakjp/generational-cache": ["@asamuzakjp/generational-cache@1.0.1", "", {}, "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg=="], + "@asamuzakjp/css-color": ["@asamuzakjp/css-color@7.1.5", "", { "dependencies": { "@csstools/css-calc": "^3.4.3", "@csstools/css-color-parser": "^4.2.6", "@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-tokenizer": "^4.0.2", "lru-cache": "^11.5.3" } }, "sha512-jCpAvj8apa7SKHZYogk0rbXB3Kb0hLFrpkWF+Ap+vBA5rirItnpv9NKyAyEuDuFizvl0qwnj6JWR70RGJ0rOlw=="], - "@asamuzakjp/nwsapi": ["@asamuzakjp/nwsapi@2.3.9", "", {}, "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q=="], + "@asamuzakjp/dom-selector": ["@asamuzakjp/dom-selector@9.2.4", "", { "dependencies": { "bidi-js": "^1.1.0", "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", "lru-cache": "^11.5.3" } }, "sha512-YnVzxDxLaqL0t7Q4wfcgHZjg55Wm6y5EaO7Bhu3q9J7wq/8iw3PhsnWiOQhYekx4VexnbkgWpTT6n+QIV7kczw=="], - "@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="], + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], - "@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="], + "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], - "@babel/core": ["@babel/core@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "@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" } }, "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA=="], + "@babel/core": ["@babel/core@7.29.7", "", { "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" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], - "@babel/generator": ["@babel/generator@7.29.1", "", { "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw=="], + "@babel/generator": ["@babel/generator@7.29.8", "", { "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" } }, "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg=="], - "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="], + "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" } }, "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw=="], - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.28.6", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA=="], + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "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" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], - "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.6", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow=="], + "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.29.7", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.29.7", "@babel/helper-member-expression-to-functions": "^7.29.7", "@babel/helper-optimise-call-expression": "^7.29.7", "@babel/helper-replace-supers": "^7.29.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", "@babel/traverse": "^7.29.7", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg=="], - "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], + "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], - "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.28.5", "", { "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" } }, "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg=="], + "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg=="], - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.28.6", "", { "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw=="], + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.6", "", { "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA=="], + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], - "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="], + "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" } }, "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong=="], - "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.28.6", "", {}, "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug=="], + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.29.7", "", {}, "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw=="], - "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.28.6", "", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg=="], + "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.29.7", "", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.29.7", "@babel/helper-optimise-call-expression": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ=="], - "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="], + "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ=="], - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], - "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], - "@babel/helpers": ["@babel/helpers@7.29.2", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.29.0" } }, "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw=="], + "@babel/helpers": ["@babel/helpers@7.29.10", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.8" } }, "sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg=="], - "@babel/parser": ["@babel/parser@7.29.2", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA=="], + "@babel/parser": ["@babel/parser@7.29.9", "", { "dependencies": { "@babel/types": "^7.29.8" }, "bin": "./bin/babel-parser.js" }, "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA=="], - "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w=="], + "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A=="], - "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A=="], + "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA=="], - "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.28.6", "", { "dependencies": { "@babel/helper-module-transforms": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA=="], + "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.29.7", "", { "dependencies": { "@babel/helper-module-transforms": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ=="], - "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw=="], + "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.29.9", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.29.7", "@babel/helper-create-class-features-plugin": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", "@babel/plugin-syntax-typescript": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-FFwIwzU+7SCOuxxV4YtJql6T9981ZVTm+FHO5GhVsRqCTdy0WwrEZh3l42ARpXruJUDGOptdduHW6Zr7pNPLNg=="], - "@babel/preset-typescript": ["@babel/preset-typescript@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g=="], + "@babel/preset-typescript": ["@babel/preset-typescript@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "@babel/plugin-syntax-jsx": "^7.29.7", "@babel/plugin-transform-modules-commonjs": "^7.29.7", "@babel/plugin-transform-typescript": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ=="], - "@babel/runtime": ["@babel/runtime@7.29.2", "", {}, "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g=="], + "@babel/runtime": ["@babel/runtime@7.29.10", "", {}, "sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA=="], - "@babel/template": ["@babel/template@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ=="], + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], - "@babel/traverse": ["@babel/traverse@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/types": "^7.29.0", "debug": "^4.3.1" } }, "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA=="], + "@babel/traverse": ["@babel/traverse@7.29.10", "", { "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" } }, "sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ=="], - "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], + "@babel/types": ["@babel/types@7.29.8", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg=="], - "@base-ui/react": ["@base-ui/react@1.6.0", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@base-ui/utils": "0.3.1", "@floating-ui/react-dom": "^2.1.8", "@floating-ui/utils": "^0.2.11", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@date-fns/tz": "^1.2.0", "@types/react": "^17 || ^18 || ^19", "date-fns": "^4.0.0", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@date-fns/tz", "@types/react", "date-fns"] }, "sha512-/jzjTWJYXhRFO45Bev9lc3cHbmjzCMpUqbMZ2AgKy/z25mY9B6shGSNcXcjQar9n5doM0KYW1W8fcFv2jZBuMw=="], + "@base-ui/react": ["@base-ui/react@1.9.0", "", { "dependencies": { "@babel/runtime": "^7.29.7 || ^8.0.0", "@base-ui/utils": "0.5.0", "@floating-ui/react-dom": "^2.1.9", "@floating-ui/utils": "^0.2.12", "use-sync-external-store": "^1.7.0" }, "peerDependencies": { "@date-fns/tz": "^1.2.0", "@types/react": "^17 || ^18 || ^19", "date-fns": "^4.0.0", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@date-fns/tz", "@types/react", "date-fns"] }, "sha512-S8CSYosASBKtpL8SWUfS78rFElfLijiCgA7oHOK22jCJ95FULsYyKwBNFOgudt0RA+/7yNc7F81bOvQnRgbBiQ=="], - "@base-ui/utils": ["@base-ui/utils@0.3.1", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@floating-ui/utils": "^0.2.11", "reselect": "^5.2.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@types/react": "^17 || ^18 || ^19", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-gFFiltORVmW/N6IILTGxizP3PBpVpysqML1ALY5Vk0mH+7faVkCknOU31goYHN5Aoek2dkjxva1XOD2Ce9WuIg=="], + "@base-ui/utils": ["@base-ui/utils@0.5.0", "", { "dependencies": { "@babel/runtime": "^7.29.7 || ^8.0.0", "@floating-ui/utils": "^0.2.12", "reselect": "^5.3.0", "use-sync-external-store": "^1.7.0" }, "peerDependencies": { "@types/react": "^17 || ^18 || ^19", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-dYGGcEttjkYiMoa5nHm8vLaJ2UcuTWxo3BFAwOYXeRg/q7UVVvA6cacEIXEs3FgBfK1CGtW1ptElqs7wsx+t9A=="], "@bcoe/v8-coverage": ["@bcoe/v8-coverage@1.0.2", "", {}, "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA=="], - "@braintree/sanitize-url": ["@braintree/sanitize-url@7.1.2", "", {}, "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA=="], - - "@bramus/specificity": ["@bramus/specificity@2.4.2", "", { "dependencies": { "css-tree": "^3.0.0" }, "bin": { "specificity": "bin/cli.js" } }, "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw=="], - - "@chevrotain/cst-dts-gen": ["@chevrotain/cst-dts-gen@12.0.0", "", { "dependencies": { "@chevrotain/gast": "12.0.0", "@chevrotain/types": "12.0.0" } }, "sha512-fSL4KXjTl7cDgf0B5Rip9Q05BOrYvkJV/RrBTE/bKDN096E4hN/ySpcBK5B24T76dlQ2i32Zc3PAE27jFnFrKg=="], - - "@chevrotain/gast": ["@chevrotain/gast@12.0.0", "", { "dependencies": { "@chevrotain/types": "12.0.0" } }, "sha512-1ne/m3XsIT8aEdrvT33so0GUC+wkctpUPK6zU9IlOyJLUbR0rg4G7ZiApiJbggpgPir9ERy3FRjT6T7lpgetnQ=="], - - "@chevrotain/regexp-to-ast": ["@chevrotain/regexp-to-ast@12.0.0", "", {}, "sha512-p+EW9MaJwgaHguhoqwOtx/FwuGr+DnNn857sXWOi/mClXIkPGl3rn7hGNWvo31HA3vyeQxjqe+H36yZJwYU8cA=="], - - "@chevrotain/types": ["@chevrotain/types@12.0.0", "", {}, "sha512-S+04vjFQKeuYw0/eW3U52LkAHQsB1ASxsPGsLPUyQgrZ2iNNibQrsidruDzjEX2JYfespXMG0eZmXlhA6z7nWA=="], - - "@chevrotain/utils": ["@chevrotain/utils@12.0.0", "", {}, "sha512-lB59uJoaGIfOOL9knQqQRfhl9g7x8/wqFkp13zTdkRu1huG9kg6IJs1O8hqj9rs6h7orGxHJUKb+mX3rPbWGhA=="], + "@bramus/specificity": ["@bramus/specificity@2.4.3", "", { "dependencies": { "css-tree": "^3.2.1" }, "bin": { "specificity": "bin/cli.js" } }, "sha512-0GEz8qJWokkUVYQYRukmkSHIFNoBH8QTreeHrAFbvz1XFYc3Y+puhMs8PQ5x8GNugiC2l5jvDBXKLbBIByeSBw=="], "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], - "@csstools/color-helpers": ["@csstools/color-helpers@6.0.2", "", {}, "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q=="], + "@csstools/color-helpers": ["@csstools/color-helpers@6.1.2", "", {}, "sha512-grhRy3OKmniaAEKXMjua5z/EODX0MSqBGjunw8+j/3HQjOnahs2AGhvEOIYVUWcU6ScApbhLhVrQTX8XqrMrow=="], - "@csstools/css-calc": ["@csstools/css-calc@3.2.0", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w=="], + "@csstools/css-calc": ["@csstools/css-calc@3.4.3", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-tokenizer": "^4.0.2" } }, "sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA=="], - "@csstools/css-color-parser": ["@csstools/css-color-parser@4.1.0", "", { "dependencies": { "@csstools/color-helpers": "^6.0.2", "@csstools/css-calc": "^3.2.0" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ=="], + "@csstools/css-color-parser": ["@csstools/css-color-parser@4.2.6", "", { "dependencies": { "@csstools/color-helpers": "^6.1.2", "@csstools/css-calc": "^3.4.3" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-tokenizer": "^4.0.2" } }, "sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg=="], - "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@4.0.0", "", { "peerDependencies": { "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w=="], + "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@4.0.2", "", { "peerDependencies": { "@csstools/css-tokenizer": "^4.0.2" } }, "sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA=="], - "@csstools/css-syntax-patches-for-csstree": ["@csstools/css-syntax-patches-for-csstree@1.1.3", "", { "peerDependencies": { "css-tree": "^3.2.1" }, "optionalPeers": ["css-tree"] }, "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg=="], + "@csstools/css-syntax-patches-for-csstree": ["@csstools/css-syntax-patches-for-csstree@1.1.15", "", { "peerDependencies": { "css-tree": "^3.2.1" }, "optionalPeers": ["css-tree"] }, "sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA=="], - "@csstools/css-tokenizer": ["@csstools/css-tokenizer@4.0.0", "", {}, "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA=="], + "@csstools/css-tokenizer": ["@csstools/css-tokenizer@4.0.2", "", {}, "sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw=="], - "@date-fns/tz": ["@date-fns/tz@1.4.1", "", {}, "sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA=="], + "@date-fns/tz": ["@date-fns/tz@1.5.0", "", {}, "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg=="], "@dnd-kit/accessibility": ["@dnd-kit/accessibility@3.1.1", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw=="], @@ -229,95 +213,37 @@ "@dnd-kit/utilities": ["@dnd-kit/utilities@3.2.2", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg=="], - "@dotenvx/dotenvx": ["@dotenvx/dotenvx@1.61.0", "", { "dependencies": { "commander": "^11.1.0", "dotenv": "^17.2.1", "eciesjs": "^0.4.10", "execa": "^5.1.1", "fdir": "^6.2.0", "ignore": "^5.3.0", "object-treeify": "1.1.33", "picomatch": "^4.0.2", "which": "^4.0.0", "yocto-spinner": "^1.1.0" }, "bin": { "dotenvx": "src/cli/dotenvx.js" } }, "sha512-utL3cpZoFzflyqUkjYbxYujI6STBTmO5LFn4bbin/NZnRWN6wQ7eErhr3/Vpa5h/jicPFC6kTa42r940mQftJQ=="], - - "@ecies/ciphers": ["@ecies/ciphers@0.2.6", "", { "peerDependencies": { "@noble/ciphers": "^1.0.0" } }, "sha512-patgsRPKGkhhoBjETV4XxD0En4ui5fbX0hzayqI3M8tvNMGUoUvmyYAIWwlxBc1KX5cturfqByYdj5bYGRpN9g=="], - - "@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], - - "@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], - - "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], - - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.7", "", { "os": "aix", "cpu": "ppc64" }, "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg=="], - - "@esbuild/android-arm": ["@esbuild/android-arm@0.27.7", "", { "os": "android", "cpu": "arm" }, "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ=="], - - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.7", "", { "os": "android", "cpu": "arm64" }, "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ=="], - - "@esbuild/android-x64": ["@esbuild/android-x64@0.27.7", "", { "os": "android", "cpu": "x64" }, "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg=="], - - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw=="], - - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ=="], - - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.7", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w=="], - - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.7", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ=="], - - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.7", "", { "os": "linux", "cpu": "arm" }, "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA=="], - - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A=="], - - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.7", "", { "os": "linux", "cpu": "ia32" }, "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg=="], - - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q=="], - - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw=="], - - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.7", "", { "os": "linux", "cpu": "ppc64" }, "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ=="], - - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ=="], - - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.7", "", { "os": "linux", "cpu": "s390x" }, "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw=="], - - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.7", "", { "os": "linux", "cpu": "x64" }, "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA=="], - - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w=="], - - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.7", "", { "os": "none", "cpu": "x64" }, "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw=="], - - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.7", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A=="], - - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.7", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg=="], - - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw=="], + "@dotenvx/dotenvx": ["@dotenvx/dotenvx@1.75.1", "", { "dependencies": { "@dotenvx/primitives": "^0.8.0", "commander": "^11.1.0", "conf": "^10.2.0", "dotenv": "^17.2.1", "enquirer": "^2.4.1", "env-paths": "^2.2.1", "execa": "^5.1.1", "fdir": "^6.2.0", "ignore": "^5.3.0", "object-treeify": "1.1.33", "open": "^8.4.2", "picomatch": "^4.0.4", "systeminformation": "^5.22.11", "undici": "^7.11.0", "which": "^4.0.0", "yocto-spinner": "^1.1.0" }, "bin": { "dotenvx": "src/cli/dotenvx.js" } }, "sha512-/BITOC9dmS/edY2zQwZNicQ059O6RKabtQfyEafV0nGtfYRNHYy1DIPiYVcov40+tob9hfmBnbR963dS+EQ1DQ=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.7", "", { "os": "sunos", "cpu": "x64" }, "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA=="], + "@dotenvx/primitives": ["@dotenvx/primitives@0.8.0", "", {}, "sha512-VYJy0uhFm9zTJ1TxBaW/pA8bjbOM/OttaNMwZ1RHG4JKyRG7DhSdiqD1ipQoAyoD22olUtxbP78W9xY3Wd11bg=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA=="], + "@exodus/bytes": ["@exodus/bytes@1.16.0", "", { "peerDependencies": { "@noble/hashes": "^1.8.0 || ^2.0.0" }, "optionalPeers": ["@noble/hashes"] }, "sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.7", "", { "os": "win32", "cpu": "ia32" }, "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw=="], + "@floating-ui/core": ["@floating-ui/core@1.8.0", "", { "dependencies": { "@floating-ui/utils": "^0.2.12" } }, "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.7", "", { "os": "win32", "cpu": "x64" }, "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg=="], + "@floating-ui/dom": ["@floating-ui/dom@1.8.0", "", { "dependencies": { "@floating-ui/core": "^1.8.0", "@floating-ui/utils": "^0.2.12" } }, "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg=="], - "@exodus/bytes": ["@exodus/bytes@1.15.0", "", { "peerDependencies": { "@noble/hashes": "^1.8.0 || ^2.0.0" }, "optionalPeers": ["@noble/hashes"] }, "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ=="], + "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.9", "", { "dependencies": { "@floating-ui/dom": "^1.8.0" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg=="], - "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], + "@floating-ui/utils": ["@floating-ui/utils@0.2.12", "", {}, "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww=="], - "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], + "@hono/node-server": ["@hono/node-server@2.1.4", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-2g1qeHl4BduwDn6L8nkAvDrPUWPMlkQ//a5NhP/zIyaXKMjZNRV+cG9Csu+BiJFf6+68pqzjf4Hi5sJGKHuS1g=="], - "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.8", "", { "dependencies": { "@floating-ui/dom": "^1.7.6" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A=="], + "@jest/diff-sequences": ["@jest/diff-sequences@30.5.0", "", {}, "sha512-OsqBjHXCn8cadasoAZBP6nWYvMsRhpMzGXTpxJ5aO04NlbdhIz+FVe3q49l0AwVhsz/cEmIpBes6gAFl1/dWQg=="], - "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], + "@jest/expect-utils": ["@jest/expect-utils@30.5.2", "", { "dependencies": { "@jest/get-type": "30.5.0" } }, "sha512-d/HOLSrJUlBIl6n3LzOa7cjW3xdePm5H5gQw2lixZ/0h157l9sw3mLblzFqnPcTbhDzhRQdBOX3A3KcG73nm5Q=="], - "@hono/node-server": ["@hono/node-server@1.19.13", "", { "peerDependencies": { "hono": "^4" } }, "sha512-TsQLe4i2gvoTtrHje625ngThGBySOgSK3Xo2XRYOdqGN1teR8+I7vchQC46uLJi8OF62YTYA3AhSpumtkhsaKQ=="], + "@jest/get-type": ["@jest/get-type@30.5.0", "", {}, "sha512-9/2VUPitAjmBzbvDvqrxmvB7BzWsBW0WmkkojX1ODuxX1NLGxx9gfaZpHB0z8DtJ9uhGNmZG/VXBhf8uO0OV8Q=="], - "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + "@jest/pattern": ["@jest/pattern@30.5.0", "", { "dependencies": { "@types/node": "*", "jest-regex-util": "30.5.0" } }, "sha512-HdNQYSdRTEBNrginaqzQtTjG0HRMfrra/z6Ok7uL3S87vSlarIVohEsJsSj5edu3MiHoHjAkvPROz5ZjoKai+w=="], - "@iconify/utils": ["@iconify/utils@3.1.0", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/types": "^2.0.0", "mlly": "^1.8.0" } }, "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw=="], + "@jest/react-is-18": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "@jest/diff-sequences": ["@jest/diff-sequences@30.3.0", "", {}, "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA=="], + "@jest/react-is-19": ["react-is@19.3.0", "", {}, "sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA=="], - "@jest/expect-utils": ["@jest/expect-utils@30.3.0", "", { "dependencies": { "@jest/get-type": "30.1.0" } }, "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA=="], + "@jest/schemas": ["@jest/schemas@30.5.0", "", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-/hunigyNpc4RCjC0VaW3f5RCUZVM2+WQ65qP7z083Gmvac7or2LI50XVNOtE4YPgBpV0yxYiAgorAPGniCoJmg=="], - "@jest/get-type": ["@jest/get-type@30.1.0", "", {}, "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA=="], - - "@jest/pattern": ["@jest/pattern@30.0.1", "", { "dependencies": { "@types/node": "*", "jest-regex-util": "30.0.1" } }, "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA=="], - - "@jest/schemas": ["@jest/schemas@30.0.5", "", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA=="], - - "@jest/types": ["@jest/types@30.3.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw=="], + "@jest/types": ["@jest/types@30.5.1", "", { "dependencies": { "@jest/pattern": "30.5.0", "@jest/schemas": "30.5.0", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-LvVYn83nnXPl+Rg98nvcFgjx6nRMTArhSn6RAX/w3ELn54S8A42TYZvsCMdGUqTM8S0wyXbtlQdU6Hi6dykj9g=="], "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], @@ -325,29 +251,21 @@ "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.6.0", "", {}, "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="], "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@jsep-plugin/assignment": ["@jsep-plugin/assignment@1.3.0", "", { "peerDependencies": { "jsep": "^0.4.0||^1.0.0" } }, "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ=="], + "@jsep-plugin/assignment": ["@jsep-plugin/assignment@1.4.0", "", { "peerDependencies": { "jsep": "^0.4.0||^1.0.0" } }, "sha512-nw2Px23Eirx0PFTVoPrb3FEq9Wkmg6vxcDtt38MtBCf1G0tjLCB9cK+3seOXyiw+6+aalgYhvJabQbWwMVKlEQ=="], - "@jsep-plugin/regex": ["@jsep-plugin/regex@1.0.4", "", { "peerDependencies": { "jsep": "^0.4.0||^1.0.0" } }, "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg=="], + "@jsep-plugin/regex": ["@jsep-plugin/regex@1.1.0", "", { "peerDependencies": { "jsep": "^0.4.0||^1.0.0" } }, "sha512-2Vkbda+XRjK6VTI6Lrh0sNBuMT8mZ51EhqMvO+V2rSdmqjs7NAGssxPZfkL23EFzYfSrvxyd1ZjOdqPQMM50og=="], "@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "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" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="], "@mdx-js/rollup": ["@mdx-js/rollup@3.1.1", "", { "dependencies": { "@mdx-js/mdx": "^3.0.0", "@rollup/pluginutils": "^5.0.0", "source-map": "^0.7.0", "vfile": "^6.0.0" }, "peerDependencies": { "rollup": ">=2" } }, "sha512-v8satFmBB+DqDzYohnm1u2JOvxx6Hl3pUvqzJvfs2Zk/ngZ1aRUhsWpXvwPkNeGN9c2NCm/38H29ZqXQUjf8dw=="], - "@mermaid-js/parser": ["@mermaid-js/parser@1.1.0", "", { "dependencies": { "langium": "^4.0.0" } }, "sha512-gxK9ZX2+Fex5zu8LhRQoMeMPEHbc73UKZ0FQ54YrQtUxE1VVhMwzeNtKRPAu5aXks4FasbMe4xB4bWrmq6Jlxw=="], - - "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="], - - "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.32.1", "", { "dependencies": { "@hono/node-server": "^1.19.9 || ^2.0.5", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-2DdE+SJDtzLEEWzY1ZjY7Q+VcPhcV1KisD3zI4u0XZyktsjHum1mwbMI+JaulUBi2OZk+KJAi2uPXzxichPkdw=="], - "@noble/ciphers": ["@noble/ciphers@1.3.0", "", {}, "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw=="], - - "@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], - - "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + "@napi-rs/lzma-linux-x64-gnu": ["@napi-rs/lzma-linux-x64-gnu@1.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -363,423 +281,409 @@ "@oozcitak/util": ["@oozcitak/util@10.0.0", "", {}, "sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA=="], - "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.10.0", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-FMsAEjLUt5pWuRE2LDC/LCvVrFjLlrEzUITH5+5SZtfq7KZ2wrOHjQVxzz92sju8S9ltpzW87CLW8/b0oBXVCw=="], - - "@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="], + "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@3.1.0", "", { "peerDependencies": { "ai": "^7.0.0", "zod": "^3.25.76 || ^4.1.8" } }, "sha512-BQy1TA9fKrh47s9ivsO6FY5QimN7GUF0i8Qon3pkxQclEgShso0dClpcWn8OIyPLEZZPFaFKgI8TW4S/O0p0Dw=="], - "@oxc-project/types": ["@oxc-project/types@0.137.0", "", {}, "sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA=="], + "@oxc-project/types": ["@oxc-project/types@0.153.0", "", {}, "sha512-jSNrRIyvPVLL5E1z/tS5zLAprosGz/FuI1PWwEOz59j3E4TTTzSpqKb/RDGqJhhW0QHYISGXxq582wGx6T11Tw=="], - "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.56.0", "", { "os": "android", "cpu": "arm" }, "sha512-CSCxi7ovYojgfdPOdUb9T508HKeAdDIKeRGg7x8IZwVJrWz9gVgX7MbUnFqtQAE4QvoNo07mj2JlwnOzJw4qqA=="], + "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.72.0", "", { "os": "android", "cpu": "arm" }, "sha512-u4U1uaDOVBuorGNC/07NLm48nECHOiJJka002YGML16Md2DRvf38RGBt01lH60EOGvNlFVmbLoksQedNBoZHKw=="], - "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.56.0", "", { "os": "android", "cpu": "arm64" }, "sha512-HYJFnd+PkDwf6S9ZPGzXXtjNqvRWFnnhdbWaouh4mi/SxU8wmDuzlMn3xo/wDTGnr4Q1VA7ZzOaE/D4biW0W6A=="], + "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.72.0", "", { "os": "android", "cpu": "arm64" }, "sha512-GCnM+Ae2mWOKC+92y3FOb6eZJeVnBAVz82e3lITUUg+kxukYKzBNAvJ/hhHIfa2A0md55SYYhdWPddSSy3KPVA=="], - "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.56.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-sftR/bEOr+t1gs+evwsHi/Xbq2FAPA2uU3VMr8n6ZU9PoK/IMSfnfu7+OEe/uy1+knhrFl4Wvy7Vkm3uo9mJ7g=="], + "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.72.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-LjQ8tlevdtwraFlWC6AnQ1Forzde0clRmnsP3QmK+ydSElDt/J+5Jc+m+//Ly1G97aP7WCNUw110QMIUw2K7xA=="], - "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.56.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-z66SdjLqa3MUPKvTp3Mbb5nSjKSbnYxJGeB+Wx987s8T5hPcIRiBMfnJ6zcPgYtQn3x5xjvdzNVkXrSeYH6ZFg=="], + "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.72.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-+ZbcxhB1C34RQR5IldSyY6Z/yalJIxHXhP36PGE4sEq0f/lgL5jCLmOKoDeVm8dqd9gFGDsd1bNWHSGCAwdSkw=="], - "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.56.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-t2tkrV1vtZyaItSQ71dTi2ZVKZEI39b/LqLT12V5KMfIeXK6N32TUC1jhOXKVQmhECq9j2ZXMQV3JeT1kh9Vmg=="], + "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.72.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-yGPhA8sePEBFV9iGcprhyOk3Bz3fZshswMH3DpYIPZFLT1DG5LjiZ0j6AJQpSueaL6bUK0av1K+5+fe+ldy5EQ=="], - "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.56.0", "", { "os": "linux", "cpu": "arm" }, "sha512-+gCy+Tp3RHeXQ9y/QrS76lXIpZkbziTyp6hIgjB2MssCwfMph3vG/GEfkhO34Rai1vhYIaUkvv8UT1BcDorJPw=="], + "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.72.0", "", { "os": "linux", "cpu": "arm" }, "sha512-/g5axuqFMcAtoQrFLR5EJEMDjR5Ea4GuzpdDmMpPWAgrF1DmL4kD1NPNVlpXEOxpFJnD6lPvLKYj1lzdlrfifA=="], - "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.56.0", "", { "os": "linux", "cpu": "arm" }, "sha512-0kKkVvQ2I+FJ2sxQyUu1zJ0yWP5kcWse/yVFnGQSFCXMwSSkfEaUGu0dW774O7nyy3jrcBGap7OSc8dZmU/CdA=="], + "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.72.0", "", { "os": "linux", "cpu": "arm" }, "sha512-InVitdHbS09PM+w+WinIiyX37rC9R3L7lUP9mKy9uKTEDSUFaLjWsLoreRIxKivnv7Ndqc6Trvi+K+b6ZzhiJg=="], - "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.56.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-npkA2siMbyWRh+wEhi1aTAx4RirukGcGNt8V4Ch86pG+xU9aurqS1MZOnKYMu03ISwat3rB6zkQx51SsB9obNw=="], + "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.72.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-WKjlyRAxpPjXoqeuwFBim5LscgvY+RNEiZ971C9JlRQZONhJTsXDki/oHFYQE+fzzRpzXh3owZvOdT3kNL2g+g=="], - "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.56.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UekqOjGkV4/MkqreCV9SPIB2jlR3/HbXrmhV1rVXJZ9wfDXMyCMriLtq3tHqLY4PkbVWNtfcm1kMojJ26KLSJw=="], + "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.72.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-poafnbsPpJhR+5Mbwpf8CscugTyiRAzjTOxRVn8ra3X2jnURs2xL5Du2xl5g2iW85lICMglpmLf8jDjZEbNgzQ=="], - "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.56.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-XSzveSpeZMD5XJpew5lRFVtNnT04xd3rJxENXmk7wkZzN9oWzv2aFJyoNDhOtoz69BYaS/fg4SYl+CfEZRpB0Q=="], + "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.72.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-zNUi0gKRsO7S3IfPzsTbnm88OedPuX32hmZFWZRWHvWJlAoZRwVbeO6Nb3hng4vDgL7qUKp4TGqzPz1mhsycYg=="], - "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-EkQ0nJa7k7HDDIVuPF7WY+k4k+bzdclLYtyIXNt7/OqVghfNiMym6YGppFBgx1XRIHW6QylxBz5OogumPjPJbQ=="], + "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.72.0", "", { "os": "linux", "cpu": "none" }, "sha512-qTY7z/iyF/rWI2HWwWMevXqZW5PZUOofUy2afK7v6rseXnpld3yjgyIk6pCux3DqWQ0lB+f5atvLJNBwzLvFsw=="], - "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-dyjAGW8jKRge0ik6U/dgvQG0nVpA3iBlRskQTz5qJLvQWIrySxX5jpqzPetLBNIIZ231KA82fDdi1nLTk8ENCw=="], + "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.72.0", "", { "os": "linux", "cpu": "none" }, "sha512-w18qfo8vEMD6EKEHtzTvjc6jH8yCyXIT1Bn7PFWJd0PpZyzH/VQDx4xvjCh0LGz6GRzqiezbisTdG9AoXtpkZQ=="], - "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.56.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-60ZGH3LtfqlW8X6vcLdSFY4lvCQYINurttYBKaALnHCDVAUCYJ1LsUgS6p1XOzVlzEDx3yNUZvDF1Lvt59zoZw=="], + "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.72.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-grW8HwEir+vK7fCcq1ZgL3NHQCfZ1PidiERE9Hbf+24xGys+DoDaoqTht4ccfn0PcBwbViLkwkda/KNpJu2KRQ=="], - "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.56.0", "", { "os": "linux", "cpu": "x64" }, "sha512-u1suj1tgJHK4ZqB7buCtdbNef2n8+d0lXTPJwLHNmtyK6p+DTpsaoDvmqhQrA56fgKYv4LuRxNtL8YooebKOew=="], + "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.72.0", "", { "os": "linux", "cpu": "x64" }, "sha512-wQJRQfWBRIn88Pkr449EUViwRayrYUScg7ty+Ihiem21mQ9BUA6S9e/4RAgyNk9lMag0KBouyKskjq61rOC0WQ=="], - "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.56.0", "", { "os": "linux", "cpu": "x64" }, "sha512-aYGLvlQHt80y+qKEtfJY/Nm27G0125Lv+qyh9SJ4Cjc6lXnXjD+ndfhqQnbV24POpMi7rNRi0jvx/0d70FRpCQ=="], + "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.72.0", "", { "os": "linux", "cpu": "x64" }, "sha512-T1B0uQzafxuGPjjaPrZJ497nxoi1BiI65JfsYc56nNpmev3msfb/iaTmH2kQuNFqa8PKxpMlf3GhWrWBvBPORQ=="], - "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.56.0", "", { "os": "none", "cpu": "arm64" }, "sha512-H/re/gO+7ysVc+kywHNuzY3C33EN9sQcZhg0kp1ZwOZl7y998ZE5mhnBiuGR/nYI0pqLL5xQfrHVUOJ/cIJsCA=="], + "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.72.0", "", { "os": "none", "cpu": "arm64" }, "sha512-OKxxgTurl7+hypVplO8QRAbbQlwEs0j1Y6FZv+ZN2qNbdxQk2muMlzuJNBGTCWwxQ0rkkOD1uK/DW1fvzoUSJA=="], - "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.56.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-6qLNXfXmtAs8jXDvYMkxk6Wec5SUJoew+ZX1uOZmqaR7ks0EJFbAohuOCELDyJMWyVlxotVG8Xf8m74Bfq0O2w=="], + "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.72.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-L78TKzURqvjuZOCo88ixMbPXf/RP7u31Y0cmjJ/KEmrHmfYhmhEvsDaTYPiyTRne64jUgCbADfY0YeoQk4/Xyw=="], - "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.56.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-UXEXuKphAe15bsob4AswNMArCw38XSmUIs3wk1s6e6MX9OWGW/IRWU95s1hZDiVg09STy1jHgyN2qkqbu1FT0w=="], + "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.72.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-gQtFW+Ii8BWgtJTAD17TY/WsdNS5gUfAPov8iI1jeq4r9lRRYImmxPL08UU00/RLaCfBJwh2UgINnDY0iOiZ+A=="], - "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.56.0", "", { "os": "win32", "cpu": "x64" }, "sha512-HPyNDjky+NIOuaMvHZflR+kst3YWdUOH2JUQYkf99grqZ5mEBTQM6h9iGy501Z8Xt5xMScrwHOuVCOlqDrktRw=="], + "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.72.0", "", { "os": "win32", "cpu": "x64" }, "sha512-uhooIN+DCzWX5uH7mQkSVCsODqsGluGJ4n3ch4+mITtWKpESMDjUJUSDBAVFuYQDwqY2McPDKdKJbM0oZVW/Qw=="], - "@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.23.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gOs9PVr2wEg4ox9z0aJo+RKhhImW86YL5N6yav8BK/rgPsIrwN/igSZ+pbRr723NFvUNKde9fgMhRA6JrXAOZw=="], + "@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@7.0.2004", "", { "os": "darwin", "cpu": "arm64" }, "sha512-uJk3ttju7Lz+Nv8WG4CsLyewoL1qf/Ny8S8OksJ7Bm/F14Tc9gMfW6arM1PCc57IzH/X/I79YsCWTgxX1FKibQ=="], - "@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.23.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-kjJ8B+7n4tB9VJdxS5A9GdJt6/bYpzbu4lXp2uO1S3sRmCB5gDEABlGoiePNApRWaW+xqL4b4xgiE727jSLhuA=="], + "@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@7.0.2004", "", { "os": "darwin", "cpu": "x64" }, "sha512-0BFfHTzDxNDFPcu0UZAXT6CyCJHAXM0dZveyDb4KEHa2qF/DSnOKOrmvK/wFuFol9kvijbGM9JfuOsor+zWXRw=="], - "@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.23.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-6dCZuKNu135seMXilkRk9SpCx6i1XgmiipYGalLij5WVRX6ZYS8c4xI7preN/zv9fCXhsQclTIMDu2Y/cytTjw=="], + "@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@7.0.2004", "", { "os": "linux", "cpu": "arm64" }, "sha512-TAehQc+qdRXyDN3nl/r/3/oPrBVrbtrDeGMkFyG6mf+XphpoJ2lAMVFLclyvrVZCw02RbKROjyw8h72XwQQHcw=="], - "@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.23.0", "", { "os": "linux", "cpu": "x64" }, "sha512-3bdilnyA7kmSTjK27rvjIjSxL5SIg3wt7vwNiRkouWB83ytssyKnuGvxSYJxgMEmFpSutzaBzcCUM2jDtPGcgA=="], + "@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@7.0.2004", "", { "os": "linux", "cpu": "x64" }, "sha512-LPunZvm6ZbWPfHMAyfZf9ci3HHvNEzLejO8zdqO3GoVGoSEHqqufHUD7+OgeatVSaJP7uXDJ2HaNOHIoH7go4Q=="], - "@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.23.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-j+OEp44SVYiQ+ZD+uttsX7u6L9SvmbbQ77SO1pSFCcJlsVMeCk8qZsjhKfGKuT/jIA+ipOJMVs/+pqUfObBWNw=="], + "@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@7.0.2004", "", { "os": "win32", "cpu": "arm64" }, "sha512-FVWplzDImWhiuawnIZVETaQecv4GWom6Jv4Fx2xj7hhXXDZ5okEgiw1gTCImHTIQsi2ycC5oSxVwrn69bMh7iw=="], - "@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.23.0", "", { "os": "win32", "cpu": "x64" }, "sha512-5MyjFuqf+g8OUPJBSGWHJtmoWnzFJYyOg4To9WMQshZYEWig/vtu7JtJ03VWnzHv9LJkAUeApY0gVCOywFR/iQ=="], + "@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@7.0.2004", "", { "os": "win32", "cpu": "x64" }, "sha512-7PsxuUx11Ry9DYTWcljTzRbmZY9B6O9fFFfZV+aodQEMy6pfRT3fhoQRv9PtGN/89z1pPz3nFKrsFm6WqNtX7w=="], - "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.71.0", "", { "os": "android", "cpu": "arm" }, "sha512-ImGmd1njEg4FEJH03jhRnveEegtO3czCtfptvaHivKAZQIYATbVFBrrzbaYMYv0oJioTnxZAZVSyV+oL7W8S2g=="], + "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.87.0", "", { "os": "android", "cpu": "arm" }, "sha512-22tVIHlB9898OYsBKmYB6He1MCSqdTmK1BVWuSNUTVrpS0KWNege+U9uEYqGJ+KatQag0r/oU44i3OOs46z7HQ=="], - "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.71.0", "", { "os": "android", "cpu": "arm64" }, "sha512-4A5BEexBrwY1YFF8Kiq/lp/wQPRG79G3BWIE1FuWaM5MvmpYSd+7ZySVcKkHdwo0UDzdQGddp6pD9mpctMqLnw=="], + "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.87.0", "", { "os": "android", "cpu": "arm64" }, "sha512-JfZQ3MWf74n8ov0DojZpkOduIubYJvZL5tbTMMhDutsal6u1xH1QuNpN+lK+EQwF8AeAfgwTR2fgh5U2br27XA=="], - "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.71.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-9wJA9GJulLwS2usU3CEisI/ESDO1n1z9eyTCvApMDrAkbJ1ve0mORgTMjcWWsKxkzkeZ2N/Gpra5IQE7x8tYgQ=="], + "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.87.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-rkx6Xvvw93z2GImVOyvbZwAZcoY0Z6MJW177XNsSB+i/CBsH7ANyelTp01VZyIkM3iSXtqKVb4+ptBgPHap5pQ=="], - "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.71.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-PlLCjS06V0PeJMAJwzjrExw1sYNW9Gch3JtNlcwwZDXGlTYDuwHNN89zYH8LTXFfgkVtsYvs2nv0FqrzyuFDzg=="], + "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.87.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-cw5nYw7L/pQ2SgGBgOcg/Qo89llQre3vIc/kuBLhSICzu1r5s8L76H3ug6AIFsD98WpROj8/z5JVzkf4daxHaQ=="], - "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.71.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Lhil7bWre0ncxbUoDoxfS0JzpTz17BRQKW7iwoAUY8GJ66+WwJEfYPCFJ1P0WgVZR5/O/b3Q2pENlHOjeXLOGQ=="], + "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.87.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-x/SuznE6loRZK9gz9AS4ZmzNzSu+5KdeoCS+sVHhnrE8HM6AD8UyTjwldQTTqlXGvkwHASgB0NiTNOc3o3PdAg=="], - "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.71.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Oo9/L58PYD3RC0x05d2upAPLllHytTjHQGsnC06P6Ynn7jKkp5mdImQxXdJ3+FnBaKspNpGogzgVsi6g872LiA=="], + "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.87.0", "", { "os": "linux", "cpu": "arm" }, "sha512-+JEDmCAXiiFmKhAjZhgAOwaHWY6WENOQ5QA+lFuY59tgsUCDOTRi46B+lENK6CWvtxsXpwkZXNOgpjAQcpIpnA=="], - "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.71.0", "", { "os": "linux", "cpu": "arm" }, "sha512-mSHfyfgJrEbyIR29ejaeS50BdPk+GoNPlC1dckpDiUZbJAIel68sjSMdOt4WY0/gva+ECC7FNITQkxMJU+vSBw=="], + "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.87.0", "", { "os": "linux", "cpu": "arm" }, "sha512-/uC9XqXLAC9AHFLNycwmSQEvKqGrOCgU+uXALI7gNW0DG81TJ/3T2eHnKdRvcb5R1gFEfjxDwI4e4zIa29rICQ=="], - "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.71.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-n9yY4M2tiy3aij4AqtlnspzpfdpeT5JQfK2/w2d8oyp5W0FRwOb1dIeX99nORNcxGr08iD9bH8N5XFz3I2iy8w=="], + "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.87.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-FTRYPsBy/M728vnUv7l+KAwSAa3Qi4BQbhVvy7NYuMTZ0sUa/OWsbMx79HVFw6u/5KWcaYayDsoOiv7xbevzDg=="], - "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.71.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-fJZrs5sDZtTaPIOiemRQQmo82Ezy+vOGXemPc4Ok7iVVsYsFa7SlW6Z5XN819VfsqBHRm3NJ3rTdnR8+bJYJdQ=="], + "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.87.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-6sC+N7IY0h1egd8SrYUGNN7CUyKJZ4bIZakKa7V7hfinf4jfi8Kq4+klJvFp5DqXcwMn44I5MeBwmJluO1odFg=="], - "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.71.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-cwl7VKGERIy9p+G+AvZdfy/06q0aHXaTt/mMRReC751iuNYJgqKjB7NydXSS30nBT9vtr2tunciOtrR4fD6FUA=="], + "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.87.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-d5Mnn+ICbhoJPi37Ccjy+86T5qfH2+mSTrTMBXNPfB+wqSWOayBBLLIrCXdUy1YssluCVdGkl+DO9w5r5ODmUA=="], - "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.71.0", "", { "os": "linux", "cpu": "none" }, "sha512-eZ8ieVXvzGi8jr7+ybQGPK2STw3mldfxZlgA2738iflfB/rzA69sE6m5rDRpQaxC7dpm745Enlh1Tod0QAk9Gg=="], + "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.87.0", "", { "os": "linux", "cpu": "none" }, "sha512-sf5YWuUo1Dx9loqWCgF8P278MycfcD4JHjDC/LV5j11L3Lqa4PFiwCjD6B8kP4AjsgZZkLn3xbpJEtZBaccs4Q=="], - "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.71.0", "", { "os": "linux", "cpu": "none" }, "sha512-puMDbQYe6+NXwfMusojoA7CXGn2b3utukmd23PQqc1E3XhVCwyZ+FueSMzDYeNgDV2dUfIVXAAKZBcFDeCL6sA=="], + "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.87.0", "", { "os": "linux", "cpu": "none" }, "sha512-+aCraYbmK3uU3P0rFojjeaK9pGY6JvBDXh/0CM+gPyWKmNmXmnFe0qj4qj02U4ibFpbd9Pa9CmDvIdjJUd29rA=="], - "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.71.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-4NJLxBs1ujISCt3L/1FcywLs73PWtJuw+piD6feK2V6h6OS6P7xu9/sWt1DTRLibe6QCzmfZzmM/2HPORoV/Lg=="], + "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.87.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-7rzbZQIljo6VLWVPqUyLa2P/WV3VFsJB4M52R4NCUJn1A50yjtUsHxiMHFL9opEKGFIiTbZ3VQzmtcJOPUq4NQ=="], - "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.71.0", "", { "os": "linux", "cpu": "x64" }, "sha512-cFDaiR8L3430qp88tfZnvFlt3KotFhR/DlbIL0nHOMMYiG/9Wy4l+6f7t8G8pTa9bd8Lt8+M0y/qjRQ/xcB74g=="], + "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.87.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Dry46Fa+AXE/xt9J/YriujU1pU9mzfNWHGQwtOYibAFH8HLrKWCi93AhIGnuUMiwn2JbuBkRyz51f50Ly4r4ow=="], - "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.71.0", "", { "os": "linux", "cpu": "x64" }, "sha512-orfixdt76KlpNly9z0PkWBBNfwjKz+JFVLP/7wnVchlKNU9Dpt9InU/ZggeSej6fC7qwHmHNOGlhLnQXcYoGuA=="], + "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.87.0", "", { "os": "linux", "cpu": "x64" }, "sha512-f/HMZez74gJvnRpGz+b5sdGyWrEgRLmFTXg9sNoqjPWogGxYHUhXKTKyMiYsu9rUGR2ciYqL3fk+Ua4JhMJbRA=="], - "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.71.0", "", { "os": "none", "cpu": "arm64" }, "sha512-9emQu2lAp6yhPB3XuI+++vR+l/o6JR1X+EpxwcumPdQXBWXEPAsquPGL7l158EqU8SebQMXTUa/S5zN98juyHw=="], + "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.87.0", "", { "os": "none", "cpu": "arm64" }, "sha512-lEC6ZfPZm/07JlB7FsOWX9o1RiHlXiBW594LSUGuXmekC8LZmvUPP9XzE2WZcNxJi5cHA/Fw56o02c3JxgMA5g=="], - "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.71.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-bd5kI8spYwTm3BILDtGhi73zoup5dw8MlPQNT8YB3BD5UIsjNe3K9/4ctrzQMX4SZMoK5HgzVLkLJzacEXB7fA=="], + "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.87.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-afBWKOD36dUiA9AenaiWpCg8xfyUVPYznyAAVXu413brK4RA5UI/Xoc4yfeGIT8G1a44MV+JR7hioryerBDzGQ=="], - "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.71.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-W4HvOHGzVLHcrmFu+bMrJlho+/yrlX5ZNdJZqGe8MEldkQG+RHYhxxad9P4jvWAYFmIqUA5i9DQ8QsJqSU9GIw=="], + "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.87.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-daptNsEOuru4/nJTxV4DBHNJ5GepzmaBVQf+jjgKQGi9NRlZKik+RFq4hUL7ewsF1pwjKM+SkYaMbF82UwFGnw=="], - "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.71.0", "", { "os": "win32", "cpu": "x64" }, "sha512-D2kyEIPHk/G/wiZLnwTVC/sVst+T/lKldVOjAFpgTIBUAOlry72e5OiapDbDBF4LfJLkN5ypJb/8Eu6yJzkveQ=="], + "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.87.0", "", { "os": "win32", "cpu": "x64" }, "sha512-k+m/EShyXE29J/r1fjk0HlAzhN5JhIvj044oSJkXTEkCLrWZQgXb/3r4q5LTw/eaKW/4GuMXG2xmiJs3s5rPNw=="], - "@radix-ui/number": ["@radix-ui/number@1.1.2", "", {}, "sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig=="], + "@radix-ui/number": ["@radix-ui/number@1.1.3", "", {}, "sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA=="], - "@radix-ui/primitive": ["@radix-ui/primitive@1.1.4", "", {}, "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ=="], + "@radix-ui/primitive": ["@radix-ui/primitive@1.2.0", "", {}, "sha512-KABY+VMIRPJL+Vyzv/335FEhXXD/xDv8BMb1kl48/aXJZMH0LtHCTx5ga5RnxaEP3nZHtmTLf1P9vanmFX46bw=="], - "@radix-ui/react-accessible-icon": ["@radix-ui/react-accessible-icon@1.1.10", "", { "dependencies": { "@radix-ui/react-visually-hidden": "1.2.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TraSwZUqTcVbiDV2/RXzAXC7aeVVXchq0daPFZE7zAxYFaMzjOUggLOfQH9KFLgRizuwVKZO/crveV1eeO3/ZQ=="], + "@radix-ui/react-accessible-icon": ["@radix-ui/react-accessible-icon@1.2.0", "", { "dependencies": { "@radix-ui/react-visually-hidden": "1.2.13" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-BB4+HHkFl3HipEAhm/mLhrpXV+2kRX7MvY4AaImUcQVeWQt5KhV1JEByNs8NGfJOcr95RcQGijt9+OrCo68xGA=="], - "@radix-ui/react-accordion": ["@radix-ui/react-accordion@1.2.14", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collapsible": "1.1.14", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-iE8YB9nmTBH8zd73ofBISZ8JCzgMoMkATJr7qDwa6u5F1+7mTM81V6fa71jgZ65rpjVpecDf1vSnwIFP9Ly1zw=="], + "@radix-ui/react-accordion": ["@radix-ui/react-accordion@1.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collapsible": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-fXMUup+0dkQwonCCriE5ITI8uPxAJCrfWB/oBDtSF2zKMAEgbkmWi4LixKddsyfhH+x8TlJQxmu3Sf4HLJnHag=="], - "@radix-ui/react-alert-dialog": ["@radix-ui/react-alert-dialog@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dialog": "1.1.17", "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-563ygGeyWPrxyVCNp7OV4rE2aIXhFPknpFyo4wbDlcyMMPZ6ySh+zC5WTvY0ZFLgPTg/QB6tA8PyDQyJ2b4cPg=="], + "@radix-ui/react-alert-dialog": ["@radix-ui/react-alert-dialog@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-dialog": "1.3.0", "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-f6ozGN4sF5KEA/d/CAWnwLWyqS4ZsZ6GdhQN68U1BqbRnfQUzkjxjcU+Rq6vFq9FPpfkIKXE7LOyfEdxorirfw=="], - "@radix-ui/react-arrow": ["@radix-ui/react-arrow@1.1.10", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-j2VTDz1vgCsmuG0k5lBfOcM8n5JPFqZBcMryasFjHYMhwxYL5SRUV5lMSUpRdNtw3D/Sv8pzJtrlAgkssYSsQQ=="], + "@radix-ui/react-arrow": ["@radix-ui/react-arrow@1.1.17", "", { "dependencies": { "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-67jjcVvxjXCCStnTW3Z+M7jmaFMuMR7M2JgpDzH4w7JSRrikmzhjfYgP/09ECb8n7whnsgh1ifJ+Ie96qEj+pQ=="], - "@radix-ui/react-aspect-ratio": ["@radix-ui/react-aspect-ratio@1.1.10", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-kbI7NrqhDeuytYrq7JjAsoXczvL8wgj2tc1MyaYWm+50bMKHCHQtVWCryslx4cCpmCTTkBcwQckE4CmmGV2haQ=="], + "@radix-ui/react-aspect-ratio": ["@radix-ui/react-aspect-ratio@1.2.0", "", { "dependencies": { "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-gHEU+Lx8DlT/FYIjZQvvBJrFSwUngXTjh7FeL9QvJaNALDLez6pgDj2axCUihBjtPBy82LN0gNb25+sTcSXNmA=="], - "@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.2.0", "", { "dependencies": { "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-is-hydrated": "0.1.1", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-am/CwltXtmtdtP+5FbYblYDnMa/zuKcMJP1i3/SJMDXXfj2mG+BTqLH2wucqeyyiQMursUtg/5cK+Nh2pCaSOA=="], + "@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-is-hydrated": "0.1.3", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-+5qkmjyTW6z49NRiheyVGK8QVcGKBc0puL/B3+vW/LKy1UDESw2Dhw+pd33KA8KTinw9k1l3Oz8flNjBRa3CpQ=="], - "@radix-ui/react-checkbox": ["@radix-ui/react-checkbox@1.3.5", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-pREzrmNnVwGvYaBoM64huTRK7B3lrTRuwj8A9nwhPiEtMb+yudiWh6zWAqEtP0Dzd5+iBa1Ki7V1pCxV8ExMdA=="], + "@radix-ui/react-checkbox": ["@radix-ui/react-checkbox@1.4.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-size": "1.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-SPKgf33lCk/ijvaat+S1ejZw+r9+s/BvhHLRMrKA0u/A3LNvTVFA+ftPNyNMdLEbxPp4k+wb6VZQLZmb8BXd1g=="], - "@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.1.14", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9bT+FvifX1FK2Mj6UEsTdyu0cN3JaA3KdfhaBao+ONrYFy/pyOy3TU1TNw7iOk1o+0hOEq67RojlUUmoFGwxyA=="], + "@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-AHwGMRBV44I3z+5G/+uRNr/RedPKxzxvbynSfrjoE7xY/lK4Rk980MC/YAPiBJHO0+URFnfOvVZwtYPPRsH5tA=="], - "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.10", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g=="], + "@radix-ui/react-collection": ["@radix-ui/react-collection@1.2.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-+yiQzqcc7Sy7/5s0jrMCjpPRFB3538VNrXPWdTLZhE/SCfgEws4aI6lHWN/vvcnyhHndROWBzqmqB4QBrITZ9Q=="], - "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA=="], + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.5", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA=="], - "@radix-ui/react-context": ["@radix-ui/react-context@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg=="], + "@radix-ui/react-context": ["@radix-ui/react-context@1.3.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-v5AYEocMISkbJ+1fTXzZpiFv7NRr3D2WiYbLIKf+FkmJ8VkP6d503eV2n34MFussHXY1pcoq3yfJiQH77dc4Mg=="], - "@radix-ui/react-context-menu": ["@radix-ui/react-context-menu@2.3.1", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-menu": "2.1.18", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-XbrxS68W5dyiE4fAb96yvJwSVU5x66B20A99sD5Mk3xSWK/LqeOnx6TZnim1KieMjXS/CTFq8reOAjWxas2G8Q=="], + "@radix-ui/react-context-menu": ["@radix-ui/react-context-menu@2.4.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-menu": "2.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-sJ+Bjq0KPMJUDyu7NuCq7oKm6xRLxTiw1ZWfK7OS4Tj6924nx4XtDMAlN2R99DdgjU/T4rJk9KO9QLZmHVwQMQ=="], - "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw=="], + "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-focus-guards": "1.2.0", "@radix-ui/react-focus-scope": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bQUKIf2+/vGpJFCmX2pkxnQVT2Od3gkGGURs+bWCIdQ5JbzyTsItcDL25Y5nlwn2T+m/6utZJL+sEs9g7NfR/Q=="], - "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA=="], + "@radix-ui/react-direction": ["@radix-ui/react-direction@1.2.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FtRA52a/r+LKStFT+neLUm+8vSe7wbzkbQGGeU8ixFiwC8NU14Evoq9ATECqL3eGbcUzJR4fyfA4KkK/q6dfqg=="], - "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-escape-keydown": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg=="], + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-effect-event": "0.0.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-oO7RhkUS9cwOjK4DGOWU19g9mk1h9h0ErEcNlVg832rgpBq8PGtQn7xyUJnuIO6EEhw6AbXx6/CGfqNEG0LW0Q=="], - "@radix-ui/react-dropdown-menu": ["@radix-ui/react-dropdown-menu@2.1.18", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-menu": "2.1.18", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-PZGV82gFk0WltDRI//SsG28ZIjlo9ANTmoNYg0jLNzXXiDsAy5PkOOYQaVD1pPxY6t7gxffb1QMD6qaUvsBZdw=="], + "@radix-ui/react-dropdown-menu": ["@radix-ui/react-dropdown-menu@2.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-menu": "2.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9xH3a5pEetuwmAWTRYlHfUmeDAD4MgBHm6JnD7cUqeGwnGi05CwTyfMCPi4VAtzz0IFxmpHGIg1/WVcjspLYiw=="], - "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q=="], + "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.2.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-MPm5R0iRGUDrDnPNxmLBkv+X7pN4XKzt+MbWJEuJQsH3NFH4omrbpXpucyYCCKTSt+na/ZxGhEWQrWTZ0285cA=="], - "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.10", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw=="], + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.3.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-callback-ref": "1.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-kWTz59QlCFoE5Q05juX/HljYia4IaKAj5Hdx+WWgEznSVUzw4qZrpRFmV6xvqd9xhqWAFVJ4zQI/Gr/QDblc7w=="], - "@radix-ui/react-form": ["@radix-ui/react-form@0.1.10", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-label": "2.1.10", "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-1NfuvctVtX4sU3Mmq/IdrR8UunxiCMiVg3A5UENKhFzxUBeOyaQQ+lmaQaV7Tc8cqvBKsJL3/KGBsixK0D8WFg=="], + "@radix-ui/react-form": ["@radix-ui/react-form@0.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-label": "2.1.17", "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-KnmrCM27m7Jo1R8S6cFDPrEeq20Jfn5dqde0SZrJr2lVXlj6/QZSUCyFoYh1d8ti0uUrMNK5Lx6dUDuINT+f4Q=="], - "@radix-ui/react-hover-card": ["@radix-ui/react-hover-card@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-popper": "1.3.1", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-GjZQIEANVkuuWeztlKz6QEHe31ZX2iDfHzcTMCQVZXC0JyQrgfKWSC+LOOEw6aVV64zyjzobIzSA4AU4eKWrHA=="], + "@radix-ui/react-hover-card": ["@radix-ui/react-hover-card@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-focus-scope": "1.3.0", "@radix-ui/react-popper": "1.4.0", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-MBsj35v9BJsLLmK2NjkYygpgi+D3lzeL3Ab9LQVSfu2R37wzSGwar3liRnsewSv8Pm36BTCGjmcrpMWscRuO9Q=="], - "@radix-ui/react-id": ["@radix-ui/react-id@1.1.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA=="], + "@radix-ui/react-id": ["@radix-ui/react-id@1.1.4", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA=="], - "@radix-ui/react-label": ["@radix-ui/react-label@2.1.10", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-ib0zvq2ZsAqKm5tRnqGJn3vOxSgIts5ToxsXT0q1S/GfLD1Zj7UOEnkw8u2w6sRmn47djpQWuSU1DCL1R29/yw=="], + "@radix-ui/react-label": ["@radix-ui/react-label@2.1.17", "", { "dependencies": { "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-xmj7MN/drx1oUAXkfiFIvyDmGNUIN/omGobvA5oAoNqu9zO2MkISYGZOkBcqSzs/UZXXwV+/3ACRE7q7mGcmkA=="], - "@radix-ui/react-menu": ["@radix-ui/react-menu@2.1.18", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.1", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-callback-ref": "1.1.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-lj8Rxjtn6zJq1oSbE/uDtAwCbB9BnxgHD+8MwJMuTh6u1dPamYhW9iuELr/Z8d0D/UysFblYYHeBPwi7T4k0YQ=="], + "@radix-ui/react-menu": ["@radix-ui/react-menu@2.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-focus-guards": "1.2.0", "@radix-ui/react-focus-scope": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-popper": "1.4.0", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-callback-ref": "1.1.5", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-I+EEFgEiyUq7krju8Nr8vzSXV/2yAbqBX2Xhz6ypTklz8CzqkGiOUfnnAoslGOsc++nx3Ym6qYRCpgqj6O3SjQ=="], - "@radix-ui/react-menubar": ["@radix-ui/react-menubar@1.1.18", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-menu": "2.1.18", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-hX7EGx/oFq6DPY27GQuP/2wP48GHf5LG6r06VgNJlG+znmDS8OfopZcRcGly3L4lsB9FqpmLx6JQSE9P3BUpyw=="], + "@radix-ui/react-menubar": ["@radix-ui/react-menubar@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-menu": "2.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-LvIrB6oqt3hMPI/TS7y9uBsKZnF1YTlVIadSC96DeYpEpp86uX3CjjEe8UjtG2YgJEVRcr+YoH3VEjoqnQ+IyQ=="], - "@radix-ui/react-navigation-menu": ["@radix-ui/react-navigation-menu@1.2.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-nJ0SkrSQgudyYhMiYeHA1ayLVuduEJCFLan1RZZN7c9kqzzCFLaU9kuy81uNtqzweM9YaQPgWzxi9MwQ9jZ04g=="], + "@radix-ui/react-navigation-menu": ["@radix-ui/react-navigation-menu@1.4.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4", "@radix-ui/react-use-previous": "1.1.4", "@radix-ui/react-visually-hidden": "1.2.13" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-V8Q+n6681BrtUVuaWY0hHSbW2welxbrcMK++9pGyqNSHAgQwgCK+nbpwOhrZal7yyIWcRZcnz/1YFc7ck3Ma4w=="], - "@radix-ui/react-one-time-password-field": ["@radix-ui/react-one-time-password-field@0.1.10", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-is-hydrated": "0.1.1", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-GHkcJ+WVj91At+OvUVTD4R3W0/wxw9t/sG5xFUBYXaCbtWiooZX5Md376QjJqgH4VsVyXrbVNHO2O4NYcmjfVg=="], + "@radix-ui/react-one-time-password-field": ["@radix-ui/react-one-time-password-field@0.2.0", "", { "dependencies": { "@radix-ui/number": "1.1.3", "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-effect-event": "0.0.5", "@radix-ui/react-use-is-hydrated": "0.1.3", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-PLxGB1jAFqhNZuLM0WhisNpczRg8ybAGa25loUWGUZWJF6hpGwuOSGk1nLgwhUYIESqIq/rlKG7WdcIPatF44A=="], - "@radix-ui/react-password-toggle-field": ["@radix-ui/react-password-toggle-field@0.1.5", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-is-hydrated": "0.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-fVuA82u0b/fClpbEJv8yp1nU9eSvoSEOERsU/hhf3FXGPIvkmE7oEaHEu8poowoXO39/Va7zq2E0TUcYr1dBRg=="], + "@radix-ui/react-password-toggle-field": ["@radix-ui/react-password-toggle-field@0.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-effect-event": "0.0.5", "@radix-ui/react-use-is-hydrated": "0.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-+WoAic0sls1ErVU92aa9CF3nMon5Mt8h+Ulha19n/BHJTE4sG7ONFOmXaD2/8pT48uF7PbQGG5cI4X7BYYLCNA=="], - "@radix-ui/react-popover": ["@radix-ui/react-popover@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.1", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/YSAOdJ7YJvdn7bn5sdSx2egW+SKY+u7O5RyAVs94Ymrg2fg5QTSFPMRkzvhGyFuE4/qsmPBdrwYoZMZh/4f+g=="], + "@radix-ui/react-popover": ["@radix-ui/react-popover@1.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-focus-guards": "1.2.0", "@radix-ui/react-focus-scope": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-popper": "1.4.0", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-rQ7ZgB0hhxHInjcvdnsXj4i9G+Cba+AZFztxDYdi5OXAK9qc5qBXnc3qsbVvnHmx/EP58mQ1QGZqmKvdUmBJOw=="], - "@radix-ui/react-popper": ["@radix-ui/react-popper@1.3.1", "", { "dependencies": { "@floating-ui/react-dom": "^2.0.0", "@radix-ui/react-arrow": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-rect": "1.1.2", "@radix-ui/react-use-size": "1.1.2", "@radix-ui/rect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bhnq/0DEPTi2lsOD3J5rTL65qUKHbKbhqHsmN9TMiclSXpipi651ooUKPPp6G5lF/WiHBdn1s0Wuqsn+myVAvw=="], + "@radix-ui/react-popper": ["@radix-ui/react-popper@1.4.0", "", { "dependencies": { "@floating-ui/react-dom": "^2.0.0", "@radix-ui/react-arrow": "1.1.17", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-layout-effect": "1.1.4", "@radix-ui/react-use-rect": "1.1.4", "@radix-ui/react-use-size": "1.1.5", "@radix-ui/rect": "1.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-yCWRvLeGv9Pz3+efwHqGPp70mZ56r3kfIgQVF56Oj2aAa4uP/Tb+IE59wNcc+758rctqbCKx4LbK8II/r7Bn0Q=="], - "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.12", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw=="], + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.2.0", "", { "dependencies": { "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-StX7xXnaRU41VvFtMm9zlhVGz8XF6GmWWTXftkQaY+tqVkbs/R9UmAp5mLzHHapk5hM9RMZQvO/3usyIP/g42g=="], - "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.6", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ=="], + "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.11", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Z7/atlkab36Z8hm+V8zYc79r0W+tiOB1o0tun1By94JyadkekLQmtEAnBSP9XKXBNQsStoStS4+gX10JpS5akA=="], - "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.6", "", { "dependencies": { "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g=="], + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.2.0", "", { "dependencies": { "@radix-ui/react-slot": "1.5.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-HCTSPMNqv55Qk0IX4geJbpyXazmqulcimwuyjxTkKi29v+QZbG2Zho9BnbBq4YS2PF+KlNb2CXoLz66uUmblkg=="], - "@radix-ui/react-progress": ["@radix-ui/react-progress@1.1.10", "", { "dependencies": { "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-JYzEg60lk79PwKM27WZyKd7PW8O4OM5jOaFfRPfOyeXmMw7tLJh5kSj+CEjVTehszuwml/AdCzPGMXBTGf4BBw=="], + "@radix-ui/react-progress": ["@radix-ui/react-progress@1.2.0", "", { "dependencies": { "@radix-ui/react-context": "1.3.0", "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-HrBP6U3E7c+DgaeBOq/Qfgh1MZifKda5Evn0UXunSZvYTr0gf2nbTILLQ9ux7XZeoqKKh2YLm86cAhjVvHUbjw=="], - "@radix-ui/react-radio-group": ["@radix-ui/react-radio-group@1.4.1", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/SSxZdKEo2Eo29FFRKd06EfFDYp8HryKg0WYg7QLXaydPzl52YfSvCH2a3QDBRdtcuwACroJT8UVjQVgOJ7P9A=="], + "@radix-ui/react-radio-group": ["@radix-ui/react-radio-group@1.5.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-size": "1.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/n8Z0nH/1IiJ3xYdeCKTloamVxzLS7XecvCqqPNDYfUWDuzoKcTOMHPT55GN1XLtfXKdps+eZfkp/1c1rceMCg=="], - "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw=="], + "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-is-hydrated": "0.1.3", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-gjVxnM4Y9U+8Lam0cybtPx27CwL4nkW2m1db7gJD3yvGOViKl/FAU3kiz8mfGsF5JPj036YOU3J3/PLUvTCEqw=="], - "@radix-ui/react-scroll-area": ["@radix-ui/react-scroll-area@1.2.12", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-xuafVzQiTCLsyEjakowTdG3OgTXsmO7IdCiO77otIa+z44xoLNs9Do5eg7POFumIOCjtG6djfm6RKUKpUa/csA=="], + "@radix-ui/react-scroll-area": ["@radix-ui/react-scroll-area@1.4.0", "", { "dependencies": { "@radix-ui/number": "1.1.3", "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-CFrLqHNejWq5FhKAcj9V/WPGRsol76HBQto81NdOBVFEOqIEkJkKIJt0Z824A/9hHLCtoiR/Kw3euRgzXP2pxg=="], - "@radix-ui/react-select": ["@radix-ui/react-select@2.3.1", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.1", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.6", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-w6eDvY78LE9ZUiNnXCA1QVK8RYN7k9galFv09kjVydJqBAgHd7Y9A6h0UJ/6DCZNGZMZrB2ohcSW1Bo9d8+wWA=="], + "@radix-ui/react-select": ["@radix-ui/react-select@2.4.0", "", { "dependencies": { "@radix-ui/number": "1.1.3", "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-focus-guards": "1.2.0", "@radix-ui/react-focus-scope": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-popper": "1.4.0", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4", "@radix-ui/react-visually-hidden": "1.2.13", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-MfylDcwPAdeD6lELhuv3s2kwgdQkEzXwvYGBIPifV/lMfUodW44a+KAgaG7LWR1X/rhYM5C/0za5llkMyLz0Yg=="], - "@radix-ui/react-separator": ["@radix-ui/react-separator@1.1.10", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Y6K6jLQCVfCnTL2MEtGxDLffkhNfEfHsEg3Wa8JU+IWdn3EWbLXd3OuOfQRN7p/W/cUce1WyTk3QeuAoDBzN9g=="], + "@radix-ui/react-separator": ["@radix-ui/react-separator@1.2.0", "", { "dependencies": { "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-1jUAap0wZEqVP05Ou7kJgRxe/W+Qftng+rUNWGa0qkKbv9r5pWTG3E7a3ELKo2eJoHKMECnzuYrZpSyO1YgcYQ=="], - "@radix-ui/react-slider": ["@radix-ui/react-slider@1.4.1", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-r91WSpQucNGFKAIxT8FT0H0zyjd5tJlqObLp7LOMV4z49KoDCwjy01w3vDOU4e1wxhF9IgjYco7SB6byOW7Buw=="], + "@radix-ui/react-slider": ["@radix-ui/react-slider@1.6.0", "", { "dependencies": { "@radix-ui/number": "1.1.3", "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4", "@radix-ui/react-use-size": "1.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-0WkXQfNMp6uyg4TLSN8FaF+vypphoLnCZDTF57In0TORWRaWOyRNSJbSqyfcwLi0ktDiBWSHfKI8Dncaf7+9MQ=="], - "@radix-ui/react-slot": ["@radix-ui/react-slot@1.3.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA=="], + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.5.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.5" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-tyYd9ddPXAysAbdbD9eYxgwpCSv6f3PncqVSNKQFSR5lcJVLz3cb/pANDoYrLiHBpXv7skortyUgGUWsYuPPFQ=="], - "@radix-ui/react-switch": ["@radix-ui/react-switch@1.3.1", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-55bQtCnOB0BohomSHi6qvQXpJEEqUGDm6hRrM0Bph5OXwhSegqkd8IqgBAQkM1IlgUlWZIxpxRcpOEfRIgimyw=="], + "@radix-ui/react-switch": ["@radix-ui/react-switch@1.4.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-size": "1.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-QuLr6GSEYKPlr4vkZ+vrTVDaJ7IeFlEpIpE9jWHUrQ6GNiNUxUwezLQ4NdcMkHE6KJ/YgKrR+nrCLps+JZH1mw=="], - "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-kxc9gI6/HfcU4nfMMVS3AmQK414kbU1IE6UCJmMmxjhO3cRPXOyYnmvyKD+ODt7q56nRq9l7Wovi6uaGwKgMlg=="], + "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Jusj5fsLHgEgzTnBy0YB/ZnE21bn8kjOr8v9ZgqxAR0buLIGcTu/U/Q19gp/UL7Jz5COX2qfEXENF6I6wWMRPg=="], - "@radix-ui/react-toast": ["@radix-ui/react-toast@1.2.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-uL4kyyWy000pPL43fGGCV5qT6ZchCWEQZOSlkYiPwPt8Hy1iW38RjeptIvz1/SZesrW6Vn58Ct3sV7tfEfiAbw=="], + "@radix-ui/react-toast": ["@radix-ui/react-toast@1.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4", "@radix-ui/react-visually-hidden": "1.2.13" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-PFuYC+RK4cH22CD2xwNYmNdjE49SLmdYCHLNkCaelndLuAzldc0t7FYklElsLpigHUo5xjN+J4oSYN3JsRaS7w=="], - "@radix-ui/react-toggle": ["@radix-ui/react-toggle@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-AsAVsYNZIlRBsci7BhE+QyQeKd1h6TffJYt+lF0QQkd5OpQ3klfIByPsCb4G0h/Fq6PJwh1FYNluzBFYzhk4+w=="], + "@radix-ui/react-toggle": ["@radix-ui/react-toggle@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/of2DdH8CyZBURA70jNEG5sEcliMX/hA8seXcUnqG7s7p3gNzrZJtJEQbiMmE8n+VAeuEW9DY5HyemqF8OfvOA=="], - "@radix-ui/react-toggle-group": ["@radix-ui/react-toggle-group@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-toggle": "1.1.12", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Xb9PLtlvU66F36LiKba6dFswu6V2mDkgidO4fNSbQHQwmZ9ObxMIO17MN/LJ4aWJecVuSVLAHPZjyeMzJrgeiA=="], + "@radix-ui/react-toggle-group": ["@radix-ui/react-toggle-group@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-toggle": "1.2.0", "@radix-ui/react-use-controllable-state": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-nbc90Rql9pu1L2UzS6MlvA7abUO3V9AOStKBzIqe5BzsEtP0amm++b+fNtZWSTXzUrAv/6oi0QhA+/UXDDdg4Q=="], - "@radix-ui/react-toolbar": ["@radix-ui/react-toolbar@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-separator": "1.1.10", "@radix-ui/react-toggle-group": "1.1.13" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Za1l4f6fzTkGgz/iynAMN8iaqiKff2wm2/QwiLmHPtDQreWEBrvSimgQFIekxMUdRPhILM7xdIXxuS/o/DGZag=="], + "@radix-ui/react-toolbar": ["@radix-ui/react-toolbar@1.2.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-separator": "1.2.0", "@radix-ui/react-toggle-group": "1.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-SpTvoC7VyGBo7ESinaugRCeT1LixwbyLWYPn1fzcPPS+em/Y2J/ISt9xqlGiab0lpgQThXbP38rrjYrH0qdi1g=="], - "@radix-ui/react-tooltip": ["@radix-ui/react-tooltip@1.2.10", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.1", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-visually-hidden": "1.2.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-NlNe8D0dWEpVfXFli90IO6X07Josx/b1iu98tDnx9Xv0HT4wLIL+m2VOheMHhK7qbp2HoTBqALEFzGyZs/levw=="], + "@radix-ui/react-tooltip": ["@radix-ui/react-tooltip@1.4.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-focus-scope": "1.3.0", "@radix-ui/react-id": "1.1.4", "@radix-ui/react-popper": "1.4.0", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-layout-effect": "1.1.4", "@radix-ui/react-visually-hidden": "1.2.13" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-cyPkPCqiagEam0LgqH0I/oPKdYzs2DylMDpvPbNA/Am12QaIfn4kSnXanjjqDPCQw17xY90GatufMek8XJEH8g=="], - "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw=="], + "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.5", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Y5GBf4NKeADoXI1geiMlMuMoURT3k9MizzzKhGb/m55H94aGigZ01PIpkvsO6lML13BA6XYAXSJ6gza7vTn5nw=="], - "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.3", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA=="], + "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-use-effect-event": "0.0.5", "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-TAcBI7bw2ljYCbv4+zuTSd6zICu8pRt6SDN2vJ/Z06K2MXh6I9WYFe/A9ovlFDtR5HVHGm5iDxDoABm/++dbKg=="], - "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.3", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA=="], + "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.5", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg=="], - "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.2", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw=="], + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.6", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.5" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-9cRullnQRv+kqnRmFlmh0WC3kAPuGmHiQ9VwsXdrYk//sBhgCKEttcpPEPgIQbyx6TGUmooVEHYTyohwz/lSJg=="], - "@radix-ui/react-use-is-hydrated": ["@radix-ui/react-use-is-hydrated@0.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A=="], + "@radix-ui/react-use-is-hydrated": ["@radix-ui/react-use-is-hydrated@0.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw=="], - "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA=="], + "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw=="], - "@radix-ui/react-use-previous": ["@radix-ui/react-use-previous@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw=="], + "@radix-ui/react-use-previous": ["@radix-ui/react-use-previous@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg=="], - "@radix-ui/react-use-rect": ["@radix-ui/react-use-rect@1.1.2", "", { "dependencies": { "@radix-ui/rect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw=="], + "@radix-ui/react-use-rect": ["@radix-ui/react-use-rect@1.1.4", "", { "dependencies": { "@radix-ui/rect": "1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ=="], - "@radix-ui/react-use-size": ["@radix-ui/react-use-size@1.1.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w=="], + "@radix-ui/react-use-size": ["@radix-ui/react-use-size@1.1.5", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-V1McDQkMGzgivwqdu7u96APs7oi0Jvj9LTzgq3WWrDZqxWdAqU9yZnZQqk5OizGFR8badUQwZsrlao7MOlWYOA=="], - "@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.2.6", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-jCE0WljWifTI4niIMCll06kGpsJTAPiZVU9H4WR1N6qW7At9ystHbN7dDB+we2xH535roFHj7qKS+RGj0FMDWQ=="], + "@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.2.13", "", { "dependencies": { "@radix-ui/react-primitive": "2.2.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-feijiN1oPk4rck4u9Dm9tsU4mT6Wp9oeEEhaz1WUEs1VuqLf8xzsFG+Qk+uWq6TnMH9O+WRECRg0NftyP9E4Fw=="], - "@radix-ui/rect": ["@radix-ui/rect@1.1.2", "", {}, "sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA=="], + "@radix-ui/rect": ["@radix-ui/rect@1.1.3", "", {}, "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw=="], - "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.1.3", "", { "os": "android", "cpu": "arm64" }, "sha512-DT6Z3PhvioeHMvxo+xHc3KtqggrI7CCTXCmC2h/5zUlp5jVitv7XEy+9q5/7v8IolhlioawpMo8Kg0EEBy7J0g=="], + "@rolldown/binding-android-arm-eabi": ["@rolldown/binding-android-arm-eabi@1.2.13", "", { "os": "android", "cpu": "arm" }, "sha512-Vu/NICrgdRvUOeaJZIyB2FP63s6fO/4ud5l8dXmxDx9yDyn+mN0y+gsvsVviSli+T361Aqo0h46EuMoobrwawA=="], - "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.1.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-0NwgwsjM7LrsuVnXMK3koTpagBNOhloc/BNjKqZjv4V5zI5r13qx69uVhRx+o5Z0yy4Hzq+lpy7TAgUG/ocvrw=="], + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.13", "", { "os": "android", "cpu": "arm64" }, "sha512-6LEoIrGy5vvCd2boNnv2soPSUZj/PRvhp8R/t9KlX+mIZxThIE/ZqxrGXxmuNX0FuvQFvLdZr7S4HrYpYBVhEQ=="], - "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.1.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-YtiBp4disu6V560loT6PjMdiRaWmVvDNrUunAalbiFx2ggeJwxdAsgZMcoGP17uyAsTwAj5V1niksxlHnVQ1Sw=="], + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.13", "", { "os": "darwin", "cpu": "arm64" }, "sha512-CaJSRzlQ6Q+zkDMVA9OkVxBjVoPRCDEE3v0FSJ9kIQBgRjFApA3Si4ijhbNVUji7ZJt+PfO0e46qy4nPInHUPA=="], - "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.1.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-yD3EkEdXk2LypPxnf/kSZHirarsI8gcPzc62SukhR9VJTyvV+F9Q/GxWNuCojc7sXyuVC4DxRGhdDK4X8VSsbw=="], + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.13", "", { "os": "darwin", "cpu": "x64" }, "sha512-e4r340I5hxSzJkD3YJBxgzq/rJ3wwxwdLLb2FPt1Zpyem20nrQPT11DDEEkazwxaHumH8wpglsp/Ozgj/wT6mw=="], - "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.1.3", "", { "os": "linux", "cpu": "arm" }, "sha512-c+8vieQbsD7HNAHKIA34w0GJ9FedFFuJGD+7E6vz7Q3uqAIugL5p45fhlsj4UaAsHpcmlqugBWMhA0/j7o0sIg=="], + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.13", "", { "os": "freebsd", "cpu": "x64" }, "sha512-hoBWDZ4/K/mJKVMbsgUd1jfpA2DiOrJ54mpegObU9TBHBBrtX4FLIXJJQRDPZ/2Dn91GvPob+Z2hwKJzf4E5SQ=="], - "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.1.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-50jD0uUwLvur7Zz9LHz17kaAdTPjn5wN93hEgjvmYFRZwiR7ZJYovTd5ipyWJDAnXKvZ+wgc+/Ika6dwSF5OcA=="], + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.13", "", { "os": "linux", "cpu": "arm" }, "sha512-oF9fZu3vTWnTiVAkDFxU9PJLt1nh20K9RRpuHsR7ZnE2L7XookBbDBVLojCVSLGbvtSlxeUNnjAj6DbNsKyzbg=="], - "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.1.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-BO9+oPL8K9poZJBfYPsXNtYjPE5uM3qeehT3aFcW4LITOl+iSqhp0abzjR2nWBUNjIZeKXjAEWBZ64WjNoHd6w=="], + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-DTpb/+jMiqWMPgphn4ksW1zW+XLJ6dJJ9FMvnIk9I291LhCctMPhMYJrP5t9p6C9qa3KXadDdUEZHBaPh3kNxQ=="], - "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.1.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-f3VpLB1vQ0Eo6ecr/6cekLnvYMFF4YBFoVGkfkvPLq1bAkbAwHYQPZKoAmG6OJyTcxxoC+AvezGx/S1obNC0Mw=="], + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-xU+Kvv9N2A3SY35zFh1FWWNjxbadE/BKeqnkXe7vScU4GZsw757BlVmDLITZEq8DPpk6m7uoDYkK7P+x/uU5Ow=="], - "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.1.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-AmurZ26Pqx/RI9N1gzEOCklkKXl927yjfXWUUS0O7Puh8ARM/Ob8qfrD3qnWksScdw6cSrW5PSHE9DyLu7+PtA=="], + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.13", "", { "os": "linux", "cpu": "ppc64" }, "sha512-XMk/hnhh25oQ756Lclb1Q11h4ll0xC0Esa5w4Vzp+mAE2S3AGJgeM0SonrIgY8fHhjarb6hcoTuwoFG0VVP2ig=="], - "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.1.3", "", { "os": "linux", "cpu": "x64" }, "sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg=="], + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.13", "", { "os": "linux", "cpu": "s390x" }, "sha512-U1BoTHYmlywE2n3HUWjzZ+8EQsKr+OwpxYuDWaubx42tUL8QSL7nOqRz/NVHanibbFP3M1Rxuprz/wNcbMKjqw=="], - "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.1.3", "", { "os": "linux", "cpu": "x64" }, "sha512-rSJcdjPxzA/by/6/rYs+v+bXU7UjvnbUWz8MJb6kh6+knqB1dCrtHg0uu7C/4haqJvqdkYHQ5IGn+tCH9GLW/g=="], + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.13", "", { "os": "linux", "cpu": "x64" }, "sha512-J4cm80Pc6wEwV5AZ42o62sIQgDk+Y7R2s646jIwuvO+4V46QB58N4vVuMPWCBaNgursXLpmUWJV//WQAkPvHBQ=="], - "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.1.3", "", { "os": "none", "cpu": "arm64" }, "sha512-hQ3/PYkDJICgevvyNcVrihVeqq7k1Pp3VZ9lY+dauAYUJKO+auqApvANhvR1An9BhmqYKvW2Mu1F9u4DXSMLxQ=="], + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.13", "", { "os": "linux", "cpu": "x64" }, "sha512-W0euZS40U4V6JkmEnVCIX9mcsL6cbXQ4X8c2w+MMOIjFg68TXUW+u3RT+2e1t1pv9mg/EP3pDtK3POXdQ7Rxyw=="], - "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.1.3", "", { "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "cpu": "none" }, "sha512-Elcv/BtML9lXrV6JuKITc/grN2kYV9gjsQpW8Jfw4ioK0TOkjBjye0nnyqQNy9STNaI20lXNaQBRrD5gSgR0Yg=="], + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.13", "", { "os": "none", "cpu": "arm64" }, "sha512-do/AF/4n9MRshia3a5aXoy8xM2c6mgfT6D7H/dY6my5z+hfCIR4ab7mk4IRj++nsEQpKy39kd0DQnDq+r692tw=="], - "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.1.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-2DrEfhluH9yhiaFApmsjsjwrSYbNcY1oFTzYSP1a535jDbV98zCFanA/96TBUd0iDFcxGmw9QRExwGCXz3U+/g=="], + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.13", "", { "os": "win32", "cpu": "arm64" }, "sha512-6FtUf2cJZobutJdxnGYX8z0vtbgqU0b2v8vfBhkXb9wp2MppMFtkunE+IaOntyi01rkIQoPW2GHABtfzsC0BRQ=="], - "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.1.3", "", { "os": "win32", "cpu": "x64" }, "sha512-OL4OMk7UPXOeVGGd3qo5zJyPIljf4AFgk5QAkPPS+OoLuOOozhuaQGC18MxVTnw/06q93gShAJzlwnSCY9YtqA=="], + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.13", "", { "os": "win32", "cpu": "x64" }, "sha512-UKhFaZTeTcbKrb3iU82m17jVcPEAoqDkCN5MBqgPyZSwp/cQmib21crTS0DdH7T1B7wZRWEI89YQAOJMet5yhg=="], "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], - "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], + "@rollup/pluginutils": ["@rollup/pluginutils@5.4.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.1", "", { "os": "android", "cpu": "arm" }, "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.64.5", "", { "os": "android", "cpu": "arm" }, "sha512-MrfgRQSpD5hkkRg6XI16B6EDLb+6+xp8xje6bpdSwkYw+qxrBKbUVrRAQu9h82UT+QumSIVQ8HXsXjPd2dlhqw=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.60.1", "", { "os": "android", "cpu": "arm64" }, "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.64.5", "", { "os": "android", "cpu": "arm64" }, "sha512-+uu2p/R9Tzn8GpoQyX1pAo5dmKT1DhXevfaCzqzmPFhnLjHLWw7uWkaVGlxmhwYoRiYYhsGfRcD5cTBpL7rgSw=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.60.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.64.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-17dys+YEmzwzzFVHQAVDONg5FALXY9kd99HFEpfk4gJVHYxoh5bGea3D4t1fXXnwkTcOe25wPyd6nWS0I8IdLQ=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.60.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.64.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-wg0zQEKkEvFZf1UaaX1UELOoPs//OSKUG7D+yITuqOsAvza7LvHTv5Wu4nmMfzNG7EYI2jp2PJC7Id6OETmsYQ=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.60.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.64.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-CoJmWcpEMuwin+TZ/ev/H9uDyF/uxUKQSWXdmIPn/UBx/uGV9+4ebMp0FwnlhWR9PE1AdzYsKf3bZevhif38+A=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.60.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.64.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-PxZnLAaTUAL5xG0W2BXLeYPKrK2b3LIASV2/e/Kf7PZvSLI1iAQIm9B9aJD+YyFIT7hc6qaMV3+OOO35R28LfA=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.60.1", "", { "os": "linux", "cpu": "arm" }, "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.64.5", "", { "os": "linux", "cpu": "arm" }, "sha512-uPo3IvnONjhbFXwWgroBeFwOicuhT7ZwQrnzkzmOtBJzeQbkUJUE1SJDfDI31ijQ5+ZUIA6sPrdUMxTSnxUWAg=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.60.1", "", { "os": "linux", "cpu": "arm" }, "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.64.5", "", { "os": "linux", "cpu": "arm" }, "sha512-ywI8Jyuc4LyHYTjC0mw4yA1ulvZBkHusdpWnoiEBsmBuHvSnt90btTBGCZ+s/2y+YNNfVAEKy33nPo5UI9zTmg=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.60.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.64.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-tmuXJoQ/3ovSr637aykZMdQteU/CB2APAz2CrvsbibuoHZi1BS1Db13cVViBdEARGwXCLn1DSJ8wsjoThLJPGA=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.60.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.64.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-5FMjSYNcUOHx7oW8Qu9KB6jGPpvF/8sG7+BDHwU/Ihh1/6FMJ9ySmsFG4tJ1qbNRuP8OLzCBDso4sF0mQaLuFQ=="], - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.64.5", "", { "os": "linux", "cpu": "none" }, "sha512-K8ZJ+neLDbUkIrL8dqF/5LtuVCrKwo27kREgOlxjBEjlOXwHvDnHLU8Z/UKv/B49qi7e8hsSDOyoJwhwqhvX4w=="], - "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw=="], + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.64.5", "", { "os": "linux", "cpu": "none" }, "sha512-NlVxsq7PFPv0DBKGuNWRDKixQYQCjM53zl04mxEcKMBmJbCBIUm1JdPfIWDRHyOOFzzYPmLQzfeEwh4716ayQg=="], - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.60.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.64.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-ARhRHJYs5eCFet5azfrHD97vOkD8OzNW2RSMlvo5CcBqXaTOLfp0OHDtUQh7/K5AL5fUYoFp2fgC9KDg4vVYMQ=="], - "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.60.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg=="], + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.64.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-atSgreM5C7jpxd9aEXN+6vJ5wTd05iYw+S3FiQpw7VsoEl8B90llbq35ARON+GOHj5QlVQEq2vOKWCHTob/BSQ=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.64.5", "", { "os": "linux", "cpu": "none" }, "sha512-vmlmwBFGnjVWxSRoVabNkyYuscSmg52Pd0fM8jEbNT3Jmka4A6HcB84x4uAmuumznWfBVaxKOqU6jbEgomWKCA=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.64.5", "", { "os": "linux", "cpu": "none" }, "sha512-hhJrP6S9WkbsbcHgUkvCBS5Cn8IdsG8XjlLZyxjnv9+NdoYfbbZE4TWJYr8apdaj1M5t5Y1id2StnEslxpNFyA=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.60.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.64.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-NNVCyN9pGrwFmQa4bf+Cnf5aVH3g6ZpnlOg1Cs/H9swIHT9bRixijfzUqyEIWm1WtiAuR1LJ+rJH6zpBm8kgQA=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.60.1", "", { "os": "linux", "cpu": "x64" }, "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.64.5", "", { "os": "linux", "cpu": "x64" }, "sha512-dR9nd6OKnvSS60Ifz/L7Mj5zzYyoqyRn2NwTuaOONKaa3xsVGXyp8YusMbvFyEOR94DxnwgcbgsFqkHd29ZSzQ=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.60.1", "", { "os": "linux", "cpu": "x64" }, "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.64.5", "", { "os": "linux", "cpu": "x64" }, "sha512-1tzsMjaqhsh3bAO6SJiJqh8hIr9sSPRd+i2vPPxJHod8/XYnf9TEnK0z/u3r1z1AkI347X0KbRSg9dWcxeGahw=="], - "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.60.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw=="], + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.64.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-01mWMQblKoXXsmk28KXtpbA96w7g/aOWUoV3AC16fdHdqkykGalqyyM+5u8M7uP5/MEMiiPv69Hv7iv/hEH/dA=="], - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.60.1", "", { "os": "none", "cpu": "arm64" }, "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.64.5", "", { "os": "none", "cpu": "arm64" }, "sha512-trdnMPb/DNm4V/CgsaoGgr90HfQQ071wfK0KoIs4YpLvjBgVQGXhGabg2Z6nK4EcYNilrb9ZZPcsP6+zpJIdxQ=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.60.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.64.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-x2LxZlfdfsw99T6/qb9EqE/Qi84JWzibjyOJyhJsgFJy6CafaTiqIXCCnslCGrV5XWNh7fwrS3FbRENcuKnooA=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.60.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.64.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-/Qd/9aDQIo0+jmItgBmPIs8195YVbDxRRApn47GyufgbutCDOh7eP5vSKKlI4QNFeaI+wKQAkSMsPnF3EuMpaA=="], - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.60.1", "", { "os": "win32", "cpu": "x64" }, "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.64.5", "", { "os": "win32", "cpu": "x64" }, "sha512-ngUJ/XvOWrqbd2IMsfXfh2xXFLTP3sY7sCKvxbGvYdBZ1KmXFd3ewDZ9n3/GNzAUgzRuhLT/UvJRivbNoAQRBw=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.1", "", { "os": "win32", "cpu": "x64" }, "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.64.5", "", { "os": "win32", "cpu": "x64" }, "sha512-IhV6ew/DuzUWwHaYmlh7MrPCV3lKFUq/amTEwysi4r/mwNPAEfAMh5dYWeTSPTeMy2pFHGMEWYtPkHzfX3tG5A=="], "@sec-ant/readable-stream": ["@sec-ant/readable-stream@0.4.1", "", {}, "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg=="], - "@shikijs/core": ["@shikijs/core@4.3.0", "", { "dependencies": { "@shikijs/primitive": "4.3.0", "@shikijs/types": "4.3.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-EooU3i9F6IAE8kEu+AnGf9DFZWkQBZ+hJn3tLVbsH+61mtQiva5biai66fAA6nvFPXkLgvrh7BrR7YcJU83xQQ=="], + "@shadcn/registry": ["@shadcn/registry@0.1.3", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/plugin-transform-typescript": "^7.28.0", "@babel/preset-typescript": "^7.27.1", "@dotenvx/dotenvx": "^1.48.4", "cn": "^0.2.4", "code-block-writer": "^13.0.3", "deepmerge": "^4.3.1", "execa": "^9.6.0", "fast-glob": "^3.3.3", "fs-extra": "^11.3.1", "fuzzysort": "^3.1.0", "kleur": "^4.1.5", "ora": "^8.2.0", "postcss": "^8.5.23", "prompts": "^2.4.2", "recast": "^0.23.11", "socks": "^2.8.8", "stringify-object": "^5.0.0", "tsconfig-paths": "^4.2.0", "type-fest": "^4.41.0", "undici": "^7.29.0", "zod": "^3.24.1" } }, "sha512-82/OmKAVM9pChDHFVAsDP9PcimPGSKZGdbcdwdGGGcSI69ImpN4ZnqsfZ4hkOFEMal92t3y9djYJHMjO4PcVZA=="], - "@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.3.0", "", { "dependencies": { "@shikijs/types": "4.3.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.6" } }, "sha512-hTv/KiFf2tpiqlACPiztGGurEARWIutB8YUhcrA1pUC7VzzwKO+g5crUocrLztrZ5ro5Z4hbXg7bYclETn3gSQ=="], + "@shikijs/core": ["@shikijs/core@4.5.0", "", { "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" } }, "sha512-6CIgwq+bt2JZ3OSjb/nBkkwEf/CfpHcbam+Mg5Pllco7HAGRQ2/EFhZrrJtbyNTgKwknfVS+llsXGygiDGwJWw=="], - "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.3.0", "", { "dependencies": { "@shikijs/types": "4.3.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-1vMdN3gHfnKfLYwecUI2ITJI4RhHt96xEaJumVn7Heb0IlJ8WQMIH0Voak+2j22BpSNKdnOfB/pCTPnPm2gq7A=="], + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.5.0", "", { "dependencies": { "@shikijs/types": "4.5.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.6" } }, "sha512-Ed6UdEj84LyYkwnxM5CvSMWAD+id9ExTYri0/+x41U9zrgNifPSS9lZm0JqBP0VfYI8yr8tY5nbNq9+p9R0kFA=="], - "@shikijs/langs": ["@shikijs/langs@4.3.0", "", { "dependencies": { "@shikijs/types": "4.3.0" } }, "sha512-rnlqFbBRSys9bT4gl/5rw9RnS0W/I84ZldXPkO7cvlEMoV85TyF/aU01N7/NbSR776RNLjrJKjfFUXJR6wN1Cg=="], + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.5.0", "", { "dependencies": { "@shikijs/types": "4.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-dKVmbJecVdB9recl8a/CU4jdpNXyjJQrIcesIkpS70s5HS02ohpnCSpMUbotPnEUzbAcLQ+S4hwZYbkBBiTcJw=="], - "@shikijs/primitive": ["@shikijs/primitive@4.3.0", "", { "dependencies": { "@shikijs/types": "4.3.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-CPkz64PTa5diRW1ggzMZH9VM/du4RNChYgVtgqrFcgruvIybmCvySv8GkiHSczUHXYuuR8TdKEwFx+UnZMpgdg=="], + "@shikijs/langs": ["@shikijs/langs@4.5.0", "", { "dependencies": { "@shikijs/types": "4.5.0" } }, "sha512-wwBTqwduXSz0X4v9Qa2EWeFaYJEw1clCncWjoRNQRbVDu3SPRTRWucnouYapKj3b8Q+sk/41Vbc4B5c8nuYzLA=="], - "@shikijs/themes": ["@shikijs/themes@4.3.0", "", { "dependencies": { "@shikijs/types": "4.3.0" } }, "sha512-Avgt05YiT+Y3prjIc9lmQxhJzHBcCfR6cjiFW4OyaMBbt2A6trX5rfjUzx+Vj/mE9qpArYjatnqo9XPjQNW/AQ=="], + "@shikijs/primitive": ["@shikijs/primitive@4.5.0", "", { "dependencies": { "@shikijs/types": "4.5.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-UM7ShlA8oz0OWxLLO8BmO9Ip6fVqdkt8yF0EH7nOCqHfrx1eEAzF0ZUVK7L+I8NEgeu1PEWSRlxaiPPeCb4iDg=="], - "@shikijs/types": ["@shikijs/types@4.3.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oc8b9U2SYvofKZk8e/737nIX0qwf6eV2vHFATeObAu7r+mUVpLs8Re0BmVkIjAWAYgkmG/CzLNo7rzuBzRu/wQ=="], + "@shikijs/themes": ["@shikijs/themes@4.5.0", "", { "dependencies": { "@shikijs/types": "4.5.0" } }, "sha512-zGb87H3UBbpuI4yoh5UguB1XbU+2BDU3kflM7UfZ+Cy2hWo9lBtqjSVK20gmLY6ukYl040hAypGXMgud9vul8Q=="], + + "@shikijs/types": ["@shikijs/types@4.5.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-drtPrtD8N0DENyD2cyt6Ajy+IWsiCLgMxODwLTpvH1UsN6a9jf90tNTPjqwHvA+0Lzu9e0txk8DjfqH1p9UJRw=="], "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], - "@sinclair/typebox": ["@sinclair/typebox@0.34.49", "", {}, "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A=="], + "@sinclair/typebox": ["@sinclair/typebox@0.34.52", "", {}, "sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw=="], "@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@4.0.0", "", {}, "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ=="], - "@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="], - - "@tailwindcss/node": ["@tailwindcss/node@4.3.1", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "5.21.6", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.1" } }, "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A=="], + "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], - "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.1", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.1", "@tailwindcss/oxide-darwin-arm64": "4.3.1", "@tailwindcss/oxide-darwin-x64": "4.3.1", "@tailwindcss/oxide-freebsd-x64": "4.3.1", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", "@tailwindcss/oxide-linux-x64-musl": "4.3.1", "@tailwindcss/oxide-wasm32-wasi": "4.3.1", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" } }, "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA=="], + "@tailwindcss/node": ["@tailwindcss/node@4.3.3", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.3" } }, "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg=="], - "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.1", "", { "os": "android", "cpu": "arm64" }, "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ=="], + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.3", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.3", "@tailwindcss/oxide-darwin-arm64": "4.3.3", "@tailwindcss/oxide-darwin-x64": "4.3.3", "@tailwindcss/oxide-freebsd-x64": "4.3.3", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", "@tailwindcss/oxide-linux-x64-musl": "4.3.3", "@tailwindcss/oxide-wasm32-wasi": "4.3.3", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA=="], - "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA=="], + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.3", "", { "os": "android", "cpu": "arm64" }, "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw=="], - "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg=="], + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw=="], - "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g=="], + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw=="], - "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1", "", { "os": "linux", "cpu": "arm" }, "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg=="], + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw=="], - "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ=="], + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3", "", { "os": "linux", "cpu": "arm" }, "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ=="], - "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA=="], + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w=="], - "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg=="], + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA=="], - "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.1", "", { "os": "linux", "cpu": "x64" }, "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ=="], + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w=="], - "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.1", "", { "dependencies": { "@emnapi/core": "^1.10.0", "@emnapi/runtime": "^1.10.0", "@emnapi/wasi-threads": "^1.2.1", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA=="], + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img=="], - "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg=="], + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.3", "", { "dependencies": { "@emnapi/core": "^1.11.1", "@emnapi/runtime": "^1.11.1", "@emnapi/wasi-threads": "^1.2.2", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ=="], - "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.1", "", { "os": "win32", "cpu": "x64" }, "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA=="], + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ=="], - "@tailwindcss/postcss": ["@tailwindcss/postcss@4.3.1", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.3.1", "@tailwindcss/oxide": "4.3.1", "postcss": "8.5.15", "tailwindcss": "4.3.1" } }, "sha512-dNJuNbdEJT/SWRuXTYP1WSamelsz3ztkUsdtWQPjrexysrTpaEPM40P/71knXiXLYEojqPOEGitVLLpPMS5T6A=="], + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.3", "", { "os": "win32", "cpu": "x64" }, "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw=="], - "@tailwindcss/vite": ["@tailwindcss/vite@4.3.1", "", { "dependencies": { "@tailwindcss/node": "4.3.1", "@tailwindcss/oxide": "4.3.1", "tailwindcss": "4.3.1" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ=="], + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.3.3", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.3.3", "@tailwindcss/oxide": "4.3.3", "postcss": "^8.5.16", "tailwindcss": "4.3.3" } }, "sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg=="], - "@tanstack/devtools-event-client": ["@tanstack/devtools-event-client@0.4.3", "", { "bin": { "intent": "bin/intent.js" } }, "sha512-OZI6QyULw0FI0wjgmeYzCIfbgPsOEzwJtCpa69XrfLMtNXLGnz3d/dIabk7frg0TmHo+Ah49w5I4KC7Tufwsvw=="], + "@tailwindcss/vite": ["@tailwindcss/vite@4.3.3", "", { "dependencies": { "@tailwindcss/node": "4.3.3", "@tailwindcss/oxide": "4.3.3", "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw=="], - "@tanstack/history": ["@tanstack/history@1.162.0", "", {}, "sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA=="], + "@tanstack/devtools-event-client": ["@tanstack/devtools-event-client@0.5.0", "", { "bin": { "intent": "./bin/intent.js" } }, "sha512-H+OH3zC6Vhu/K0NaVfQKknEKawc/+2PT+D3SB3Ox0V8SiMlTo0abbmH2rH0721R2aNYbjdMXA1oENOd8E2UVoA=="], - "@tanstack/pacer": ["@tanstack/pacer@0.21.1", "", { "dependencies": { "@tanstack/devtools-event-client": "^0.4.3", "@tanstack/store": "^0.11.0" } }, "sha512-hB01dd4rlsYcTCNP7wK186jgAe6K5qimgM1Y5Jtvz+9PUaILvpmeLLjmQNUNSO1l23lIt+CeQR6mO1mjlPvRtQ=="], + "@tanstack/history": ["@tanstack/history@1.162.5", "", {}, "sha512-w1+YvwmTkwt5n8yUqEH3IWZ9DsmorCZW/EQ3KYHnqEgIkOZpH54NvW6/Epq3Dzb8H0ifIeYX8PExvrNLIH5FIA=="], - "@tanstack/query-core": ["@tanstack/query-core@5.101.2", "", {}, "sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw=="], + "@tanstack/pacer": ["@tanstack/pacer@0.23.1", "", { "dependencies": { "@tanstack/devtools-event-client": "^0.5.0", "@tanstack/store": "^0.11.2" } }, "sha512-ROZj19aPPGYebeRPhFZNRlqNaR2e4vkcLbgiXfbi5uJu8WiW/etsYmkcAcoSQRGOwGZbbioWRX7xssewDRVRhw=="], - "@tanstack/query-devtools": ["@tanstack/query-devtools@5.101.2", "", {}, "sha512-o+wHcqgN7Pp0s8v1i0UGq/ZrrEKrxdIiMQmKRdYb2w7NPtylYSJ4+wg/tIn71m9DLstwUwdEGAvROdly6HXP6w=="], + "@tanstack/react-pacer": ["@tanstack/react-pacer@0.24.1", "", { "dependencies": { "@tanstack/pacer": "0.23.1", "@tanstack/react-store": "^0.11.2" }, "peerDependencies": { "react": ">=16.8", "react-dom": ">=16.8" } }, "sha512-VjztEJmrNtLVdRrRaIsqx/+uX5qLHLp57dk19gVC/wLEu8ykU9twq6SKzhHSsajDEpNMauo7+bsFWAgjd+7Uiw=="], - "@tanstack/react-pacer": ["@tanstack/react-pacer@0.22.1", "", { "dependencies": { "@tanstack/pacer": "0.21.1", "@tanstack/react-store": "^0.11.0" }, "peerDependencies": { "react": ">=16.8", "react-dom": ">=16.8" } }, "sha512-CenQqK0GluSPIrnsG1yuD7w5uMSQ/4lI9AcGEFxBrRd66r260boWcYRIsS5+eHtXb238FoZYhKmJPGlhRzmHRw=="], + "@tanstack/react-router": ["@tanstack/react-router@1.170.42", "", { "dependencies": { "@tanstack/history": "1.162.5", "@tanstack/react-store": "^0.11.2", "@tanstack/router-core": "1.171.35", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-4wBptX7DRvc+v/XQ0MxL9rKlmSFb0ob3tSEZWF4ssSl1DD+1HAofWM3HwSn9liQN0r7e00qiv5WQMp6rObOc1g=="], - "@tanstack/react-query": ["@tanstack/react-query@5.101.2", "", { "dependencies": { "@tanstack/query-core": "5.101.2" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-seDkr6kzGzX1okaaTtZPtgA688CDPlXUz1C6xSg0ESqn04Vuc8tlrYms1s3de+znBqhPVxFRfpAfUf+6XvfPWg=="], + "@tanstack/react-start": ["@tanstack/react-start@1.168.61", "", { "dependencies": { "@tanstack/react-router": "1.170.42", "@tanstack/react-start-client": "1.168.40", "@tanstack/react-start-rsc": "0.1.60", "@tanstack/react-start-server": "1.167.47", "@tanstack/router-utils": "1.162.3", "@tanstack/start-client-core": "1.170.35", "@tanstack/start-plugin-core": "1.171.50", "@tanstack/start-server-core": "1.169.40", "pathe": "^2.0.3" }, "peerDependencies": { "@rsbuild/core": "^2.0.0", "@vitejs/plugin-rsc": "*", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0", "vite": ">=7.0.0" }, "optionalPeers": ["@rsbuild/core", "@vitejs/plugin-rsc", "vite"] }, "sha512-qZdnI9Hug445JN5dEpq5aIVGqu6YVSmKOE3rw82ugJ9D65Kd7SWvP9/4M6jAo+P3qX1y6RtGuD3ascVxB0WIgQ=="], - "@tanstack/react-query-devtools": ["@tanstack/react-query-devtools@5.101.2", "", { "dependencies": { "@tanstack/query-devtools": "5.101.2" }, "peerDependencies": { "@tanstack/react-query": "^5.101.2", "react": "^18 || ^19" } }, "sha512-eU7HctdA9gDjqoERoEdzLbw9DiqnBDfh5+Hu0u26gjqoHJezOpQAuiesDL2VvkU+2cPV76zgv0tMZsOrI4LjnQ=="], + "@tanstack/react-start-client": ["@tanstack/react-start-client@1.168.40", "", { "dependencies": { "@tanstack/react-router": "1.170.42", "@tanstack/router-core": "1.171.35", "@tanstack/start-client-core": "1.170.35" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-1tC0qw3qF2GhH0+4opN+qIJXrl0eoQeNOpU87qpPBiv4XQe2NdR51velqypxXWguoY2h3v1juLNbt+sYA24XkA=="], - "@tanstack/react-router": ["@tanstack/react-router@1.170.16", "", { "dependencies": { "@tanstack/history": "1.162.0", "@tanstack/react-store": "^0.9.3", "@tanstack/router-core": "1.171.13", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-w6eq1IJklujs1tESazaK/FxH0+H2l8vm/QPuu1cD3oRW/ubgKneQpd7b64ti/8gUyEimzimJQZDmJr6YHfP5+g=="], + "@tanstack/react-start-rsc": ["@tanstack/react-start-rsc@0.1.60", "", { "dependencies": { "@tanstack/react-router": "1.170.42", "@tanstack/router-core": "1.171.35", "@tanstack/router-utils": "1.162.3", "@tanstack/start-client-core": "1.170.35", "@tanstack/start-fn-stubs": "1.162.0", "@tanstack/start-plugin-core": "1.171.50", "@tanstack/start-storage-context": "1.167.37", "pathe": "^2.0.3" }, "peerDependencies": { "@rspack/core": ">=2.0.0-0", "@vitejs/plugin-rsc": ">=0.5.30", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0", "react-server-dom-rspack": ">=0.0.2" }, "optionalPeers": ["@rspack/core", "@vitejs/plugin-rsc", "react-server-dom-rspack"] }, "sha512-P1k3zjsYNr7j9StKDpBi1aYD+D/9iMQ1f0H2UPqAMPyQzy4I09ikPpEkbOtjTGUCVZrEjE54x+yjixrbXyMsbg=="], - "@tanstack/react-router-devtools": ["@tanstack/react-router-devtools@1.167.0", "", { "dependencies": { "@tanstack/router-devtools-core": "1.168.0" }, "peerDependencies": { "@tanstack/react-router": "^1.170.0", "@tanstack/router-core": "^1.170.0", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" }, "optionalPeers": ["@tanstack/router-core"] }, "sha512-nGw095EG7IHx0h5NtlEmzf6vcCTaFNPWdTSuDKazajhN0ct/v/TkekJ9J6KYUCeV1a8/2ZmToc58M+0rrOyn7w=="], + "@tanstack/react-start-server": ["@tanstack/react-start-server@1.167.47", "", { "dependencies": { "@tanstack/react-router": "1.170.42", "@tanstack/router-core": "1.171.35", "@tanstack/start-server-core": "1.169.40" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-8/hEzQhJD2RbJ/6VbiJq3whQ4NYxMWCc5MVu32moiPMYjcyvXNWWT1fTgn2aVezsk06ktZnckBnkA3TMJxWejA=="], - "@tanstack/react-router-with-query": ["@tanstack/react-router-with-query@1.130.17", "", { "peerDependencies": { "@tanstack/react-query": ">=5.49.2", "@tanstack/react-router": ">=1.43.2", "@tanstack/router-core": ">=1.114.7", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-TNaSocW20KuPwUojEm130DLWTr9M5hsSzxiu4QqS2jNCnrGLuDrwMHyP+6fq13lG3YuU4u9O1qajxfJIGomZCg=="], + "@tanstack/react-store": ["@tanstack/react-store@0.11.2", "", { "dependencies": { "@tanstack/store": "0.11.2", "use-sync-external-store": "^1.6.0" }, "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" } }, "sha512-oj5O5DmiMWE+ih+SioX2ayC1kbK7d3fpLx0B75fPJr9nY3zU+hoW010yr64qXsY/9fyiLVE2bn5mGNV3owm8RQ=="], - "@tanstack/react-start": ["@tanstack/react-start@1.168.26", "", { "dependencies": { "@tanstack/react-router": "1.170.16", "@tanstack/react-start-client": "1.168.14", "@tanstack/react-start-rsc": "0.1.25", "@tanstack/react-start-server": "1.167.20", "@tanstack/router-utils": "1.162.2", "@tanstack/start-client-core": "1.170.12", "@tanstack/start-plugin-core": "1.171.18", "@tanstack/start-server-core": "1.169.15", "pathe": "^2.0.3" }, "peerDependencies": { "@rsbuild/core": "^2.0.0", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0", "vite": ">=7.0.0" }, "optionalPeers": ["@rsbuild/core", "vite"] }, "sha512-ZzNecqKWC0p2643/kIcFUdsMrXZ8A4dXm4Yfe9zV/Y0u14MtSkh/Sk76RQYIU5S84VyDyKhHo0Ffh8HQbLdvFw=="], + "@tanstack/router-core": ["@tanstack/router-core@1.171.35", "", { "dependencies": { "@tanstack/history": "1.162.5", "cookie-es": "^3.0.0", "seroval": "^1.6.7", "seroval-plugins": "^1.6.7" } }, "sha512-fNKsx/rrxppFNmCQ9mPwg4OCb1O3qfLPVrE9FVyyWyRPQk0f0NK5bdJUzTYZQ+T/Ajfllr3SEx9pntM45F5amQ=="], - "@tanstack/react-start-client": ["@tanstack/react-start-client@1.168.14", "", { "dependencies": { "@tanstack/react-router": "1.170.16", "@tanstack/router-core": "1.171.13", "@tanstack/start-client-core": "1.170.12" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-oaz43fdOhBWfOPsdLkp3IejwYEXRyeaZ4CYexOPZx3eVXzm4LLozvNkkkBE9aje1sM5MVC2Yo6+cyv2HdVzkHQ=="], + "@tanstack/router-generator": ["@tanstack/router-generator@1.167.41", "", { "dependencies": { "@babel/types": "^7.29.8", "@tanstack/router-core": "1.171.35", "@tanstack/router-utils": "1.162.3", "@tanstack/virtual-file-routes": "1.162.0", "jiti": "^2.7.0", "magic-string": "^0.30.21", "prettier": "^3.9.6", "zod": "^4.5.4" } }, "sha512-N4zQB72lgQ6HeSv77JFSPQ7I+tUDT4xHAPvWBRT1Ah71IiTGXSGPJyqrN8raHcS7vk+QYx/tpWRg74SpqC/FUg=="], - "@tanstack/react-start-rsc": ["@tanstack/react-start-rsc@0.1.25", "", { "dependencies": { "@tanstack/react-router": "1.170.16", "@tanstack/router-core": "1.171.13", "@tanstack/router-utils": "1.162.2", "@tanstack/start-client-core": "1.170.12", "@tanstack/start-fn-stubs": "1.162.0", "@tanstack/start-plugin-core": "1.171.18", "@tanstack/start-server-core": "1.169.15", "@tanstack/start-storage-context": "1.167.15", "pathe": "^2.0.3" }, "peerDependencies": { "@rspack/core": ">=2.0.0-0", "@vitejs/plugin-rsc": ">=0.5.20", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0", "react-server-dom-rspack": ">=0.0.2" }, "optionalPeers": ["@rspack/core", "@vitejs/plugin-rsc", "react-server-dom-rspack"] }, "sha512-Rwm6cjcS148y2XAebr8jyrwU0SqsRSkW4/CuXesoHg+G3IOnVRHV0HOylJfnznUTVuH1nVhfQRPI5uWPJaw2TA=="], + "@tanstack/router-plugin": ["@tanstack/router-plugin@1.168.43", "", { "dependencies": { "@babel/core": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.8", "@tanstack/router-core": "1.171.35", "@tanstack/router-generator": "1.167.41", "@tanstack/router-utils": "1.162.3", "chokidar": "^5.0.0", "unplugin": "^3.3.0", "zod": "^4.5.4" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2 || ^2.0.0", "@tanstack/react-router": "^1.170.42", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0", "vite-plugin-solid": "^2.11.10 || ^3.0.0-0", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"] }, "sha512-0cMS2IhVJ1rfBqgcsLWBhKhHaW1oC26zCU2QveZnlDO+EjwuNH5XkRt+ZxhAinZZJIIRX7LEC/SBvjUutS4Zrw=="], - "@tanstack/react-start-server": ["@tanstack/react-start-server@1.167.20", "", { "dependencies": { "@tanstack/react-router": "1.170.16", "@tanstack/router-core": "1.171.13", "@tanstack/start-server-core": "1.169.15" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-hg9xVI6yNDu+6NCalKz1h3Ea18HZEUu35i/ZMJz1WadwqcArLMp41nM1GNhOAtGIdpycrp9tT7ccqc9zuRMRpQ=="], + "@tanstack/router-utils": ["@tanstack/router-utils@1.162.3", "", { "dependencies": { "@babel/generator": "^7.29.8", "@babel/parser": "^7.29.8", "@babel/types": "^7.29.8", "ansis": "^4.3.1", "babel-dead-code-elimination": "^1.0.12", "diff": "^8.0.4", "pathe": "^2.0.3", "tinyglobby": "^0.2.17" } }, "sha512-Icb0xGuG1+54IV0WMLRcc3ErTx2HeJWyPG661FkQ8UT6guoBq1FJjFRqlG/JS0xi4mFFkBhvwO7tbLa32f3yxA=="], - "@tanstack/react-store": ["@tanstack/react-store@0.11.0", "", { "dependencies": { "@tanstack/store": "0.11.0", "use-sync-external-store": "^1.6.0" }, "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" } }, "sha512-tX4YXh3PDkmpvGQWkWqKpzs/MSqbtuwY9dWdWhtV9Q50PmO+jOkUKIWIX4G85dwt7lxdHLXsiaEKPdKmC8F41w=="], - - "@tanstack/router-core": ["@tanstack/router-core@1.169.1", "", { "dependencies": { "@tanstack/history": "1.161.6", "cookie-es": "^3.0.0", "seroval": "^1.5.0", "seroval-plugins": "^1.5.0" }, "bin": { "intent": "bin/intent.js" } }, "sha512-x+2gIGKTTE1qAn7tLieGfrB5ciOviDmmi2ox9fAWUubRV+yTU5ruGFXocoCIWF+lB+SOtnHjo2E9BLSWyYoEmA=="], - - "@tanstack/router-devtools-core": ["@tanstack/router-devtools-core@1.168.0", "", { "dependencies": { "clsx": "^2.1.1", "goober": "^2.1.16" }, "peerDependencies": { "@tanstack/router-core": "^1.170.0", "csstype": "^3.0.10" }, "optionalPeers": ["csstype"] }, "sha512-wQoQhlBK7nlZgqzaqdYXKWNTpdHdsaREdaPhFZVH0/Ador+F+eM3/NF2i3f2LPeS0GgKraZUQXe1Q/1+KHyEYg=="], - - "@tanstack/router-generator": ["@tanstack/router-generator@1.167.17", "", { "dependencies": { "@babel/types": "^7.28.5", "@tanstack/router-core": "1.171.13", "@tanstack/router-utils": "1.162.2", "@tanstack/virtual-file-routes": "1.162.0", "jiti": "^2.7.0", "magic-string": "^0.30.21", "prettier": "^3.5.0", "zod": "^4.4.3" } }, "sha512-xtB9tB2Ws0tWR6Pi7nc3Qk9IYgoh1mQCKWjHqIl9tf6BNUpKoqniJoPAQ4+LGrK8FeZYU0o0p/qlZEyj9FAulA=="], - - "@tanstack/router-plugin": ["@tanstack/router-plugin@1.168.18", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "@tanstack/router-core": "1.171.13", "@tanstack/router-generator": "1.167.17", "@tanstack/router-utils": "1.162.2", "chokidar": "^5.0.0", "unplugin": "^3.0.0", "zod": "^4.4.3" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2 || ^2.0.0", "@tanstack/react-router": "^1.170.15", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0", "vite-plugin-solid": "^2.11.10 || ^3.0.0-0", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"] }, "sha512-MofS28/axfnfnhOD2RSgJEaU882aX5RsAzhGz5Vc4XhAmvCjy919u9JrNs4QsTWFbTD1P7IJ8WFlFVsrg0pStg=="], - - "@tanstack/router-utils": ["@tanstack/router-utils@1.162.2", "", { "dependencies": { "@babel/generator": "^7.28.5", "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "ansis": "^4.1.0", "babel-dead-code-elimination": "^1.0.12", "diff": "^8.0.2", "pathe": "^2.0.3", "tinyglobby": "^0.2.15" } }, "sha512-hTWqJtqIFFdvuCl8WXNyrodp2L9zo2G37xKRrcVmVRWpAB2h+U1LuRAfS4tsFTiWOIoE/B+WDVFB8JpoEdw6jQ=="], - - "@tanstack/start-client-core": ["@tanstack/start-client-core@1.170.12", "", { "dependencies": { "@tanstack/router-core": "1.171.13", "@tanstack/start-fn-stubs": "1.162.0", "@tanstack/start-storage-context": "1.167.15", "seroval": "^1.5.4" } }, "sha512-gwtZRMPUIAxmDV2AIQUhC0kSW262SV7BkHXEgy5B1woHQdrdsELuGOdJwdweLxrjyefORxk+9MYGqDY0Cxn0bw=="], + "@tanstack/start-client-core": ["@tanstack/start-client-core@1.170.35", "", { "dependencies": { "@tanstack/router-core": "1.171.35", "@tanstack/start-fn-stubs": "1.162.0", "@tanstack/start-storage-context": "1.167.37", "seroval": "^1.6.7" } }, "sha512-eX20qrqsOjU1C0plX4qJ/2Wiaz2ipQHkvAfbUJFIk+3SxaP9iCiDwML+BDifaupM3ic+6svy0s1iIFrm8dC9bg=="], "@tanstack/start-fn-stubs": ["@tanstack/start-fn-stubs@1.162.0", "", {}, "sha512-QWfUZ3Yo923tdQn38LyKMU8rcTw69zc+T4dAvgTWV4O56SqFRsGfS0lSWIMhJRwXIx/bvdi7nTUBDdZtTHtpTQ=="], - "@tanstack/start-plugin-core": ["@tanstack/start-plugin-core@1.171.18", "", { "dependencies": { "@babel/code-frame": "7.27.1", "@babel/core": "^7.28.5", "@babel/types": "^7.28.5", "@tanstack/router-core": "1.171.13", "@tanstack/router-generator": "1.167.17", "@tanstack/router-plugin": "1.168.18", "@tanstack/router-utils": "1.162.2", "@tanstack/start-server-core": "1.169.15", "exsolve": "^1.0.7", "lightningcss": "^1.32.0", "pathe": "^2.0.3", "picomatch": "^4.0.3", "seroval": "^1.5.4", "source-map": "^0.7.6", "srvx": "^0.11.9", "tinyglobby": "^0.2.15", "ufo": "^1.5.4", "vitefu": "^1.1.1", "xmlbuilder2": "^4.0.3", "zod": "^4.4.3" }, "peerDependencies": { "@rsbuild/core": "^2.0.0", "vite": ">=7.0.0" }, "optionalPeers": ["@rsbuild/core", "vite"] }, "sha512-weuOOjRD03BiKcF9NYKL5QADEQOp3yGHb0qIsOX42ENz5XUE4in2fXcVYHjSwwpzs+XGhWIFLp5J385pOVPuZQ=="], + "@tanstack/start-plugin-core": ["@tanstack/start-plugin-core@1.171.50", "", { "dependencies": { "@babel/code-frame": "7.29.7", "@babel/core": "^7.29.7", "@babel/types": "^7.29.8", "@jridgewell/remapping": "^2.3.5", "@tanstack/router-core": "1.171.35", "@tanstack/router-generator": "1.167.41", "@tanstack/router-plugin": "1.168.43", "@tanstack/router-utils": "1.162.3", "@tanstack/start-server-core": "1.169.40", "exsolve": "^1.1.1", "lightningcss": "^1.33.0", "pathe": "^2.0.3", "picomatch": "^4.0.7", "seroval": "^1.6.7", "source-map": "^0.7.6", "srvx": "^0.11.22", "tinyglobby": "^0.2.17", "ufo": "^1.6.4", "vitefu": "^1.1.3", "xmlbuilder2": "^4.0.3", "zod": "^4.5.4" }, "peerDependencies": { "@rsbuild/core": "^2.0.0", "vite": ">=7.0.0" }, "optionalPeers": ["@rsbuild/core", "vite"] }, "sha512-qgxii74+p8oTVTPEeDKqiTS/ORXw9+Xt6DRkq0tPqjs8Q7NYxE9L9wl+ABFQFeVgrCSm9/08TKYc0X40A29hCw=="], - "@tanstack/start-server-core": ["@tanstack/start-server-core@1.169.15", "", { "dependencies": { "@tanstack/history": "1.162.0", "@tanstack/router-core": "1.171.13", "@tanstack/start-client-core": "1.170.12", "@tanstack/start-storage-context": "1.167.15", "fetchdts": "^0.1.6", "h3-v2": "npm:h3@2.0.1-rc.20", "seroval": "^1.5.4" } }, "sha512-V8ie2G2Ecb3Nklk8/QuKzulxb+tDUqgz6rjJe8Isdp4iKVXZu/TscItkUP/4Q5Bu7W4gUy3P25O6soC1oW1SXQ=="], + "@tanstack/start-server-core": ["@tanstack/start-server-core@1.169.40", "", { "dependencies": { "@tanstack/history": "1.162.5", "@tanstack/router-core": "1.171.35", "@tanstack/start-client-core": "1.170.35", "@tanstack/start-storage-context": "1.167.37", "fetchdts": "^0.1.6", "h3-v2": "npm:h3@2.0.1-rc.20", "seroval": "^1.6.7" } }, "sha512-bhHY30/0e8wsyCzTkb9suK3uLSyUunYxV4TZJZYs1kdCk511KwA1YLvDrNbzychY2ANEm1Y3R0bNFmk/dEqi2Q=="], - "@tanstack/start-storage-context": ["@tanstack/start-storage-context@1.167.15", "", { "dependencies": { "@tanstack/router-core": "1.171.13" } }, "sha512-Jy0q4vdG6pv76N92+X+ag3fuOV2zINQagYyMN1/es7tPI1vzpKECIU8AqHqzI6ahkwaph7XDvmfUkiLJ3i4LOA=="], + "@tanstack/start-storage-context": ["@tanstack/start-storage-context@1.167.37", "", { "dependencies": { "@tanstack/router-core": "1.171.35" } }, "sha512-79OkFNSUoLSQGB4Yz6/bF2aZcRX86438S/v+Ui5hdyviGmwgNYnZKMsKCK0q9bW3UPBQEAfhYX5trSqYTdXJSg=="], - "@tanstack/store": ["@tanstack/store@0.11.0", "", {}, "sha512-WlzzCt3xi0G6pCAJu1U+2jiECwabETDpQDi3hfkFZvJii9AuZqEKbOiVarX1/bWhTNjU486yQtJCCasi/0q+Cw=="], + "@tanstack/store": ["@tanstack/store@0.11.2", "", {}, "sha512-sJ4mjol8uQsHV0gOJzzjwXfh2Fwm+Sz0+8deqiTm4jGbMdjzNSW+xZCFm0kUa870uhd8yi+DpKnZb5Kc4apa0Q=="], "@tanstack/virtual-file-routes": ["@tanstack/virtual-file-routes@1.162.0", "", {}, "sha512-uhOeFyxLcU41HzvrxsGpiWdcMbScY1EDgbZ5K7DVRMYInbLYWAC0EA/kx9wXAoSM8q82bUG2hRl8+EAjE6XAbA=="], - "@testing-library/dom": ["@testing-library/dom@10.4.1", "", { "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", "aria-query": "5.3.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "picocolors": "1.1.1", "pretty-format": "^27.0.2" } }, "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg=="], + "@testing-library/dom": ["@testing-library/dom@10.4.2", "", { "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", "aria-query": "5.3.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "picocolors": "1.1.1", "pretty-format": "^27.0.2" } }, "sha512-yzr2S9HyAIdhz2/6qHgbs665Q7PKVcDF05vsOlHPxG1mo36gKVesdYVeDLnXgfjJ03CrKRk08knc6+E/9m8v2Q=="], - "@testing-library/jest-dom": ["@testing-library/jest-dom@6.9.1", "", { "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", "picocolors": "^1.1.1", "redent": "^3.0.0" } }, "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA=="], + "@testing-library/jest-dom": ["@testing-library/jest-dom@7.0.1", "", { "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", "picocolors": "^1.1.1", "redent": "^3.0.0" }, "peerDependencies": { "@testing-library/dom": ">=10 <11", "vitest": ">= 0.32" }, "optionalPeers": ["vitest"] }, "sha512-oMDTC3oA+6CXSO2JZnvOI7CA6oVub6kij5ggk9ohwye5slmkwxYDXcPOVxgMw/RQlticjtO0C1RZkR97HgrWMw=="], - "@testing-library/react": ["@testing-library/react@16.3.2", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "@testing-library/dom": "^10.0.0", "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g=="], + "@testing-library/react": ["@testing-library/react@16.3.3", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "@testing-library/dom": "^10.0.0", "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Uo193NgQbPMz6lrrhtRQQFcMC6Re/ELLFbbuVL30WDlZxlpZf9/lMHTAVxPRLw1q1iu9OJmR1c2BLiENRstdBg=="], - "@testing-library/user-event": ["@testing-library/user-event@14.6.1", "", { "peerDependencies": { "@testing-library/dom": ">=7.21.4" } }, "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw=="], + "@testing-library/user-event": ["@testing-library/user-event@14.6.7", "", { "peerDependencies": { "@testing-library/dom": ">=7.21.4" } }, "sha512-MPCpX8bxe8zS+JmmTwLp8jd0dy1rAm60Te/SL8JrQM3qvQJcBOs1d7IefJMyZzqM3EWBrDn/LWDt1BCGu4ASfg=="], "@tokenlens/core": ["@tokenlens/core@1.3.0", "", {}, "sha512-d8YNHNC+q10bVpi95fELJwJyPVf1HfvBEI18eFQxRSZTdByXrP+f/ZtlhSzkx0Jl0aEmYVeBA5tPeeYRioLViQ=="], @@ -791,7 +695,7 @@ "@ts-morph/common": ["@ts-morph/common@0.27.0", "", { "dependencies": { "fast-glob": "^3.3.3", "minimatch": "^10.0.1", "path-browserify": "^1.0.1" } }, "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ=="], - "@tsconfig/node10": ["@tsconfig/node10@1.0.12", "", {}, "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ=="], + "@tsconfig/node10": ["@tsconfig/node10@1.0.13", "", {}, "sha512-gcLdvR9HO1ZJBypsOGqaP6TFEzb6vIta0KSTLt9NAQ6pXQO3cRgSVyCN6pzYqI9DlJgY71XKO0dpDhCf08b3pg=="], "@tsconfig/node12": ["@tsconfig/node12@1.0.11", "", {}, "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="], @@ -799,183 +703,149 @@ "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="], - "@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], - "@types/aria-query": ["@types/aria-query@5.0.4", "", {}, "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw=="], - "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="], + "@types/bun": ["@types/bun@1.4.3", "", { "dependencies": { "bun-types": "1.4.3" } }, "sha512-N67Pqy8JXbAY/j0tNraS3V5mubGvc6rrrNDmDCtZLlFzccbUJPDb0tvgUBC5q4m8ybkP93Jcn1QB+RYQ6PvBhw=="], "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], - "@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="], - - "@types/d3-array": ["@types/d3-array@3.2.2", "", {}, "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw=="], - - "@types/d3-axis": ["@types/d3-axis@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw=="], - - "@types/d3-brush": ["@types/d3-brush@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A=="], - - "@types/d3-chord": ["@types/d3-chord@3.0.6", "", {}, "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="], - - "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="], - - "@types/d3-contour": ["@types/d3-contour@3.0.6", "", { "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" } }, "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg=="], - - "@types/d3-delaunay": ["@types/d3-delaunay@6.0.4", "", {}, "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="], - - "@types/d3-dispatch": ["@types/d3-dispatch@3.0.7", "", {}, "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA=="], - - "@types/d3-drag": ["@types/d3-drag@3.0.7", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ=="], - - "@types/d3-dsv": ["@types/d3-dsv@3.0.7", "", {}, "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="], - - "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="], - - "@types/d3-fetch": ["@types/d3-fetch@3.0.7", "", { "dependencies": { "@types/d3-dsv": "*" } }, "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA=="], - - "@types/d3-force": ["@types/d3-force@3.0.10", "", {}, "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="], - - "@types/d3-format": ["@types/d3-format@3.0.4", "", {}, "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="], + "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], - "@types/d3-geo": ["@types/d3-geo@3.1.0", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ=="], + "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], - "@types/d3-hierarchy": ["@types/d3-hierarchy@3.1.7", "", {}, "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="], + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], - "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="], + "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], - "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="], + "@types/hast": ["@types/hast@3.0.5", "", { "dependencies": { "@types/unist": "*" } }, "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g=="], - "@types/d3-polygon": ["@types/d3-polygon@3.0.2", "", {}, "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="], + "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], - "@types/d3-quadtree": ["@types/d3-quadtree@3.0.6", "", {}, "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="], + "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], - "@types/d3-random": ["@types/d3-random@3.0.3", "", {}, "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="], + "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="], - "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="], + "@types/jest": ["@types/jest@30.0.0", "", { "dependencies": { "expect": "^30.0.0", "pretty-format": "^30.0.0" } }, "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA=="], - "@types/d3-scale-chromatic": ["@types/d3-scale-chromatic@3.1.0", "", {}, "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="], + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - "@types/d3-selection": ["@types/d3-selection@3.0.11", "", {}, "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w=="], + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], - "@types/d3-shape": ["@types/d3-shape@3.1.8", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w=="], + "@types/mdx": ["@types/mdx@2.0.14", "", {}, "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg=="], - "@types/d3-time": ["@types/d3-time@3.0.4", "", {}, "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="], + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "@types/d3-time-format": ["@types/d3-time-format@4.0.3", "", {}, "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="], + "@types/node": ["@types/node@24.19.2", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ=="], - "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="], + "@types/react": ["@types/react@19.3.0", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg=="], - "@types/d3-transition": ["@types/d3-transition@3.0.9", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg=="], + "@types/react-dom": ["@types/react-dom@19.3.0", "", { "peerDependencies": { "@types/react": "^19.3.0" } }, "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q=="], - "@types/d3-zoom": ["@types/d3-zoom@3.0.8", "", { "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" } }, "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw=="], + "@types/stack-utils": ["@types/stack-utils@2.0.3", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], - "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], - "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], + "@types/validate-npm-package-name": ["@types/validate-npm-package-name@4.0.2", "", {}, "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw=="], - "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + "@types/yargs": ["@types/yargs@17.0.35", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg=="], - "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], - "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260707.2", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260707.2", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260707.2", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260707.2", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260707.2", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260707.2", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260707.2", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260707.2" }, "bin": { "tsgo": "bin/tsgo" } }, "sha512-oUGp+Rep/hqMhPunyinsALUwSlzHINSxitifPiSaeqoKOKD2OlR9NE3TaPqwsl4NlGslsOSUXI1JotWQzpYCPg=="], - "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-wny2pgKjGbiZtnOIHVa3tXC1UfDqxNEFzyPGmiqybedG8hipG2Nfp0l5UxbaKCjkLacUpH/W5bP2hBOMVhCOzg=="], - "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], + "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260707.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-Afc7M5zOwo+GpfcYwz5Z8HMB2tPVsui7nNIqEuuFB73MPdVqNn/Wmpe4tP4MRri0AtJnJknoHBaTJ/VDAp/Jhw=="], - "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], + "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260707.2", "", { "os": "linux", "cpu": "arm" }, "sha512-hJm/UOqZTr9FHmR7uNm8VGX4oKtfWk0Jem0zPeJFNC8ckGUfSBueyiEYMZB+XmRc1aG4x1E46y3CplP4CLHvGQ=="], - "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="], + "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260707.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-iITBa2WjjTI5N9t5l7Z4KoOSI+2zBlhbvFzsD/f8qX8QoKjz/Y4DPyBDgezYi8nkqjjksbgSOJ3/ykzhwrB9cg=="], - "@types/jest": ["@types/jest@30.0.0", "", { "dependencies": { "expect": "^30.0.0", "pretty-format": "^30.0.0" } }, "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA=="], + "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260707.2", "", { "os": "linux", "cpu": "x64" }, "sha512-du0dzi6y97Po5vDNdPJTyyijHCpaS22JLRnKZEJXBDaO9gCIymOv/5QQokFRuOlQm0bWl3i9PF4OVdGP6uAOQA=="], - "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260707.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-SsAwfhyHJ1akgBc+99z4+hwdbHsdWaKB8EwCNIMA6JfSLMeUjffrYvxu+vfMyxVtOVOz7RrRXRoiDiu4a2sCtg=="], - "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260707.2", "", { "os": "win32", "cpu": "x64" }, "sha512-DL4u27stv0fo71sVhOzHSwE+YMZsbBijVI+kg5dLDLilSH79WFTJ8RSQ46vJrCMt+Gjlv/JOZP1PuLJDfioYeQ=="], - "@types/mdx": ["@types/mdx@2.0.13", "", {}, "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw=="], + "@typescript/typescript-aix-ppc64": ["@typescript/typescript-aix-ppc64@7.0.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ=="], - "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + "@typescript/typescript-darwin-arm64": ["@typescript/typescript-darwin-arm64@7.0.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA=="], - "@types/node": ["@types/node@24.12.4", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA=="], + "@typescript/typescript-darwin-x64": ["@typescript/typescript-darwin-x64@7.0.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA=="], - "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + "@typescript/typescript-freebsd-arm64": ["@typescript/typescript-freebsd-arm64@7.0.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ=="], - "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + "@typescript/typescript-freebsd-x64": ["@typescript/typescript-freebsd-x64@7.0.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw=="], - "@types/stack-utils": ["@types/stack-utils@2.0.3", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], + "@typescript/typescript-linux-arm": ["@typescript/typescript-linux-arm@7.0.2", "", { "os": "linux", "cpu": "arm" }, "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ=="], - "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + "@typescript/typescript-linux-arm64": ["@typescript/typescript-linux-arm64@7.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ=="], - "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + "@typescript/typescript-linux-loong64": ["@typescript/typescript-linux-loong64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ=="], - "@types/validate-npm-package-name": ["@types/validate-npm-package-name@4.0.2", "", {}, "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw=="], + "@typescript/typescript-linux-mips64el": ["@typescript/typescript-linux-mips64el@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA=="], - "@types/yargs": ["@types/yargs@17.0.35", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg=="], + "@typescript/typescript-linux-ppc64": ["@typescript/typescript-linux-ppc64@7.0.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA=="], - "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], + "@typescript/typescript-linux-riscv64": ["@typescript/typescript-linux-riscv64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ=="], - "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260504.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260504.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260504.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260504.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260504.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260504.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260504.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260504.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-bHFGxyIU83qjj6ywn3817A+Ug2ZID0GiBA5WFdbc/T7EjcrKnUUylexq0fU81N/mTbfw3FyP6ZCEdO2Ntcl/VQ=="], + "@typescript/typescript-linux-s390x": ["@typescript/typescript-linux-s390x@7.0.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw=="], - "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260504.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-+Qs1Q7Qxfp11n/hU3pweFU+EQ37FnDsdWOOxb7/vCy8QGBysrLUUYRhQ+GSW3s663oMtN6+9Kf82hk3ZT+kXlg=="], + "@typescript/typescript-linux-x64": ["@typescript/typescript-linux-x64@7.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A=="], - "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260504.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-Wr3GWTRiMgibmhe88cjQ612ZyY7sbgsPYEaWKGPUxBaXtMHFIzgTBIoJMuaQqQx4GEJs6AUDyhnIHG1gx4rJjg=="], + "@typescript/typescript-netbsd-arm64": ["@typescript/typescript-netbsd-arm64@7.0.2", "", { "os": "none", "cpu": "arm64" }, "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA=="], - "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260504.1", "", { "os": "linux", "cpu": "arm" }, "sha512-s8QkhZe0M4QD2xhK1Xiy2JUQv1AOl8kUg5DLx1G8ws0f1BK/oKyqDNbxhZMGINYLFvkjpr9lOxt7qehSnpJMYQ=="], + "@typescript/typescript-netbsd-x64": ["@typescript/typescript-netbsd-x64@7.0.2", "", { "os": "none", "cpu": "x64" }, "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA=="], - "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260504.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-y1Qai5l55Sl+/3B0hyQtvynq//C22BKFH3CfU35fbLYUo4P/ISUycyAbcA+PAPazpDFO3E56I96QUQrbJL2VVA=="], + "@typescript/typescript-openbsd-arm64": ["@typescript/typescript-openbsd-arm64@7.0.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ=="], - "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260504.1", "", { "os": "linux", "cpu": "x64" }, "sha512-ngN3Ie3Vin6pFtqeNywxm86RTxgI0Fo0GZyJ1PxokLES8J3xfMPtMYfv85c/+5uz5+7T+m4LRLyY5IoLY4gtuw=="], + "@typescript/typescript-openbsd-x64": ["@typescript/typescript-openbsd-x64@7.0.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg=="], - "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260504.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-/GZDJN/CsLbqIe7EdWDkXhNX9C41VjemBeUN6+9ckvEFLH8XyKTmXPYikNOn0N819M1KSeNZltplyUslfROOdw=="], + "@typescript/typescript-sunos-x64": ["@typescript/typescript-sunos-x64@7.0.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g=="], - "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260504.1", "", { "os": "win32", "cpu": "x64" }, "sha512-EYQBdVZq4xIzhTtKxw6wvee9238hEb7XrPG413AEZBD3kcR3qqvPULXsPzQyEpneCReATSaihscP/LfhMQYUmA=="], + "@typescript/typescript-win32-arm64": ["@typescript/typescript-win32-arm64@7.0.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ=="], - "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + "@typescript/typescript-win32-x64": ["@typescript/typescript-win32-x64@7.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g=="], - "@upsetjs/venn.js": ["@upsetjs/venn.js@2.0.0", "", { "optionalDependencies": { "d3-selection": "^3.0.0", "d3-transition": "^3.0.1" } }, "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw=="], + "@ungap/structured-clone": ["@ungap/structured-clone@1.4.0", "", {}, "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ=="], "@vercel/oidc": ["@vercel/oidc@3.2.0", "", {}, "sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug=="], - "@vitejs/plugin-react": ["@vitejs/plugin-react@6.0.3", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler"] }, "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@6.1.2", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "oxc-transform-react": "^0.152.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler", "oxc-transform-react"] }, "sha512-fhJNGUdscQa4HkI0xFxwonWyhnVReCPDbXI7FH7jmzpnVCrFQI7PRrhWecO263610vOrs9tr2Y4xcf8uAdFxbw=="], - "@vitest/coverage-v8": ["@vitest/coverage-v8@4.1.9", "", { "dependencies": { "@bcoe/v8-coverage": "^1.0.2", "@vitest/utils": "4.1.9", "ast-v8-to-istanbul": "^1.0.0", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.2.0", "magicast": "^0.5.2", "obug": "^2.1.1", "std-env": "^4.0.0-rc.1", "tinyrainbow": "^3.1.0" }, "peerDependencies": { "@vitest/browser": "4.1.9", "vitest": "4.1.9" }, "optionalPeers": ["@vitest/browser"] }, "sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g=="], + "@vitest/coverage-v8": ["@vitest/coverage-v8@5.0.4", "", { "dependencies": { "@bcoe/v8-coverage": "^1.0.2", "@vitest/istanbul-lib-coverage": "^1.0.2", "@vitest/istanbul-lib-report": "^1.0.2", "ast-v8-to-istanbul": "^1.0.7", "magicast": "^0.5.5", "obug": "^3.0.0", "std-env": "^4.3.0", "tinyrainbow": "^3.2.0" }, "peerDependencies": { "@vitest/browser": "5.0.4", "vitest": "5.0.4" }, "optionalPeers": ["@vitest/browser"] }, "sha512-P5YcQY8Y6RmoE9xRXI38rT8pssbcubEzqtYTM2XQoxOXMDn04nRaTI1SM8qCl9/NfW3ag9GlzdSXu7IwO5Ft8A=="], - "@vitest/expect": ["@vitest/expect@4.1.9", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.9", "@vitest/utils": "4.1.9", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA=="], + "@vitest/istanbul-lib-coverage": ["@vitest/istanbul-lib-coverage@1.0.2", "", {}, "sha512-9J/JMwOf9AoJhAywhrn7ScKTL38hsWQP/qPG60OtaAFcQ5OXPwKsxZFlbnuCKmZ61m8/lGgHYnFpdyQZUvG/iA=="], - "@vitest/mocker": ["@vitest/mocker@4.1.9", "", { "dependencies": { "@vitest/spy": "4.1.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw=="], + "@vitest/istanbul-lib-report": ["@vitest/istanbul-lib-report@1.0.2", "", { "dependencies": { "@vitest/istanbul-lib-coverage": "1.0.2" } }, "sha512-gUsfXZJbzPamoIY5TvHFiMMoXESBrUMo+xqaj+rYrWI69+EnvRlYBlP96ZnHPY4vX8kyUpgAnFUCg5wZG/HkDQ=="], - "@vitest/pretty-format": ["@vitest/pretty-format@4.1.9", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A=="], + "@vitest/mocker": ["@vitest/mocker@5.0.4", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.31", "@vitest/spy": "5.0.4", "estree-walker": "^3.0.3", "magic-string": "^1.4.3" }, "peerDependencies": { "msw": "^2.4.9 || ^3.0.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-tqAlrYWce4iUxhr3ncNohejtCTOcHeE8XWrSNZY3OhPoDn01yeGv+gnaBy64ATp7o6pb03eIbBAjzmibpc9vIQ=="], - "@vitest/runner": ["@vitest/runner@4.1.9", "", { "dependencies": { "@vitest/utils": "4.1.9", "pathe": "^2.0.3" } }, "sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg=="], - - "@vitest/snapshot": ["@vitest/snapshot@4.1.9", "", { "dependencies": { "@vitest/pretty-format": "4.1.9", "@vitest/utils": "4.1.9", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA=="], - - "@vitest/spy": ["@vitest/spy@4.1.9", "", {}, "sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA=="], - - "@vitest/utils": ["@vitest/utils@4.1.9", "", { "dependencies": { "@vitest/pretty-format": "4.1.9", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA=="], + "@vitest/spy": ["@vitest/spy@5.0.4", "", {}, "sha512-MZKk/gSkm2q+ICobMxCpH1mA+cCAWm8WV7UhxlqGjq/sJ3AGc1BqFOs5CRVXxH78wQtme9q/NAAgBquj4AcyMw=="], "@workflow/serde": ["@workflow/serde@4.1.0", "", {}, "sha512-pav4F2BoirECWR7Nf1TKt+2eETcBj7jj4cBefQ8VXQCA6NPkaKeLfj/zMgi+3zYV5ZIBT4GuUiphsj0/b9hPQQ=="], "accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], - "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + "acorn": ["acorn@8.19.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw=="], "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], "acorn-walk": ["acorn-walk@8.3.5", "", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw=="], - "ai": ["ai@6.0.208", "", { "dependencies": { "@ai-sdk/gateway": "3.0.133", "@ai-sdk/provider": "3.0.10", "@ai-sdk/provider-utils": "4.0.30", "@opentelemetry/api": "^1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-STz+AaZqJ4ZjH7UkpXkbHx+bjgIDOsE8fIUoZjkZ2whoZcfVmG9K/TqEKouJZ03SuZuD7lagntlU3zBhAEkRpQ=="], + "ai": ["ai@7.0.137", "", { "dependencies": { "@ai-sdk/gateway": "4.0.110", "@ai-sdk/provider": "4.0.26", "@ai-sdk/provider-utils": "5.0.58" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-JxrPkSQknxIN/gYqS3UQksExS6eWI23QMPBrKMGXeeFHhru6xFtF4MuMq17WaHD+lXPh0lne6H0BM2Z2VMW9EQ=="], "ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], "ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="], + "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "ansis": ["ansis@4.2.0", "", {}, "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig=="], + "ansis": ["ansis@4.4.0", "", {}, "sha512-9k3v7xcHwgdO/DruxGIg4HtjvlAZlcnsX/mzqUb1t3NkYnl9kK2UJ+Gq0io+vQf7iT//BD/HB/NBkUR1LWxoeA=="], "arg": ["arg@4.1.3", "", {}, "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="], @@ -987,33 +857,35 @@ "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], - "ast-types": ["ast-types@0.16.1", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg=="], + "ast-types": ["ast-types@0.16.3", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-FvWoWYfSCM6kRxCSH+MGLHIKKGRL6A6AW7Zek2O32REPQRdg131428uRTKMBYAeRd3XXAaHDS60Wpri7CdKDrA=="], - "ast-v8-to-istanbul": ["ast-v8-to-istanbul@1.0.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.31", "estree-walker": "^3.0.3", "js-tokens": "^10.0.0" } }, "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg=="], + "ast-v8-to-istanbul": ["ast-v8-to-istanbul@1.0.7", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.31", "estree-walker": "^3.0.3", "js-tokens": "^10.0.0" } }, "sha512-kFL68AG6ajd8fg248zwM9GQrUWEp79gsmjum34OEXjs4yHuUMZfYKwOLW9GMmB4oNvVrj+EAGxsP7ye2UR9UlA=="], "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], + "atomically": ["atomically@1.7.0", "", {}, "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w=="], + "babel-dead-code-elimination": ["babel-dead-code-elimination@1.0.12", "", { "dependencies": { "@babel/core": "^7.23.7", "@babel/parser": "^7.23.6", "@babel/traverse": "^7.23.7", "@babel/types": "^7.23.6" } }, "sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig=="], "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.10.18", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.11.28", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-br0LOmjJqr6Rt4AEkadbcNf67Zpo7EPwKsWbjnRrJIa1QYFHQBqM4C7F2WTbV8ahTEcg1Eo+Y0aWjjORInYFyA=="], - "bidi-js": ["bidi-js@1.0.3", "", { "dependencies": { "require-from-string": "^2.0.2" } }, "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw=="], + "bidi-js": ["bidi-js@1.1.0", "", { "dependencies": { "require-from-string": "^2.0.2" } }, "sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg=="], - "body-parser": ["body-parser@2.2.2", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.3", "http-errors": "^2.0.0", "iconv-lite": "^0.7.0", "on-finished": "^2.4.1", "qs": "^6.14.1", "raw-body": "^3.0.1", "type-is": "^2.0.1" } }, "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="], + "body-parser": ["body-parser@2.3.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^2.0.0", "debug": "^4.4.3", "http-errors": "^2.0.1", "iconv-lite": "^0.7.2", "on-finished": "^2.4.1", "qs": "^6.15.2", "raw-body": "^3.0.2", "type-is": "^2.1.0" } }, "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw=="], - "brace-expansion": ["brace-expansion@5.0.5", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ=="], + "brace-expansion": ["brace-expansion@5.0.12", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ=="], "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="], + "browserslist": ["browserslist@4.29.3", "", { "dependencies": { "baseline-browser-mapping": "^2.11.26", "caniuse-lite": "^1.0.30001813", "electron-to-chromium": "^1.5.439", "node-releases": "^2.0.57", "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA=="], - "bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="], + "bun-types": ["bun-types@1.4.3", "", { "dependencies": { "@types/node": "*", "undici-types": "*" } }, "sha512-tinRJNGOmUN+tEAsn2y2e942n9JHRHR42iUYzDH75NmhJqVBokGSQkkfSFdNWwsANIdrK6ACH9t01M452YyTwg=="], - "bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="], + "bundle-name": ["bundle-name@4.1.1", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-DdH81/zPLVS11EUgWq3tEu/xn+EzljlMYooDNdzWEnFha3R3NBMpMV1UqYIpjYHV/SgpFKMIX1Oh7o06SjM/oA=="], "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], @@ -1021,13 +893,11 @@ "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - - "caniuse-lite": ["caniuse-lite@1.0.30001787", "", {}, "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg=="], + "caniuse-lite": ["caniuse-lite@1.0.30001815", "", {}, "sha512-uDybUEyfgbyJJ93J1vikTylBX31AkdVYeVPeffMQpf8XN7hSfr0oZOn4VFOIMNvtU5+rHvC5Udg2TgtJKHm23Q=="], "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], - "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], + "chai": ["chai@6.3.0", "", {}, "sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg=="], "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], @@ -1039,10 +909,6 @@ "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], - "chevrotain": ["chevrotain@12.0.0", "", { "dependencies": { "@chevrotain/cst-dts-gen": "12.0.0", "@chevrotain/gast": "12.0.0", "@chevrotain/regexp-to-ast": "12.0.0", "@chevrotain/types": "12.0.0", "@chevrotain/utils": "12.0.0" } }, "sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ=="], - - "chevrotain-allstar": ["chevrotain-allstar@0.4.1", "", { "dependencies": { "lodash-es": "^4.17.21" }, "peerDependencies": { "chevrotain": "^12.0.0" } }, "sha512-PvVJm3oGqrveUVW2Vt/eZGeiAIsJszYweUcYwcskg9e+IubNYKKD+rHHem7A6XVO22eDAL+inxNIGAzZ/VIWlA=="], - "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], "ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], @@ -1059,6 +925,8 @@ "cmdk": ["cmdk@1.1.1", "", { "dependencies": { "@radix-ui/react-compose-refs": "^1.1.1", "@radix-ui/react-dialog": "^1.1.6", "@radix-ui/react-id": "^1.1.0", "@radix-ui/react-primitive": "^2.0.2" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg=="], + "cn": ["cn@0.2.6", "", { "bin": { "cn": "bin/cn.mjs" } }, "sha512-+i4L0zUGgRcEnhsxueVrP7iBGxBx5iD0WOTYg1MwFEu2ZyCmH5Ov2V1cul2Ht5UchRQQgftCf4be/RxspuW6QQ=="], + "code-block-writer": ["code-block-writer@13.0.3", "", {}, "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg=="], "collapse-white-space": ["collapse-white-space@2.1.0", "", {}, "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw=="], @@ -1071,9 +939,9 @@ "commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="], - "confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + "conf": ["conf@10.2.0", "", { "dependencies": { "ajv": "^8.6.3", "ajv-formats": "^2.1.1", "atomically": "^1.7.0", "debounce-fn": "^4.0.0", "dot-prop": "^6.0.1", "env-paths": "^2.2.1", "json-schema-typed": "^7.0.3", "onetime": "^5.1.2", "pkg-up": "^3.1.0", "semver": "^7.3.5" } }, "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg=="], - "content-disposition": ["content-disposition@1.1.0", "", {}, "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="], + "content-disposition": ["content-disposition@2.0.1", "", {}, "sha512-e+H0ZXHSWYrENhQzw1LPuP4oF5MzVKmDU6d3hxlvaPEYLLg62MxtQNPRx4SYSuYJSBUgnQIG4HIN2tEtNv7Dog=="], "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], @@ -1087,10 +955,6 @@ "cors": ["cors@2.8.6", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw=="], - "cose-base": ["cose-base@1.0.3", "", { "dependencies": { "layout-base": "^1.0.0" } }, "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg=="], - - "cosmiconfig": ["cosmiconfig@9.0.1", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ=="], - "create-require": ["create-require@1.1.1", "", {}, "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="], "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], @@ -1103,83 +967,11 @@ "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "cytoscape": ["cytoscape@3.33.2", "", {}, "sha512-sj4HXd3DokGhzZAdjDejGvTPLqlt84vNFN8m7bGsOzDY5DyVcxIb2ejIXat2Iy7HxWhdT/N1oKyheJ5YdpsGuw=="], - - "cytoscape-cose-bilkent": ["cytoscape-cose-bilkent@4.1.0", "", { "dependencies": { "cose-base": "^1.0.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ=="], - - "cytoscape-fcose": ["cytoscape-fcose@2.2.0", "", { "dependencies": { "cose-base": "^2.2.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ=="], - - "d3": ["d3@7.9.0", "", { "dependencies": { "d3-array": "3", "d3-axis": "3", "d3-brush": "3", "d3-chord": "3", "d3-color": "3", "d3-contour": "4", "d3-delaunay": "6", "d3-dispatch": "3", "d3-drag": "3", "d3-dsv": "3", "d3-ease": "3", "d3-fetch": "3", "d3-force": "3", "d3-format": "3", "d3-geo": "3", "d3-hierarchy": "3", "d3-interpolate": "3", "d3-path": "3", "d3-polygon": "3", "d3-quadtree": "3", "d3-random": "3", "d3-scale": "4", "d3-scale-chromatic": "3", "d3-selection": "3", "d3-shape": "3", "d3-time": "3", "d3-time-format": "4", "d3-timer": "3", "d3-transition": "3", "d3-zoom": "3" } }, "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA=="], - - "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], - - "d3-axis": ["d3-axis@3.0.0", "", {}, "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw=="], - - "d3-brush": ["d3-brush@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "3", "d3-transition": "3" } }, "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ=="], - - "d3-chord": ["d3-chord@3.0.1", "", { "dependencies": { "d3-path": "1 - 3" } }, "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g=="], - - "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], - - "d3-contour": ["d3-contour@4.0.2", "", { "dependencies": { "d3-array": "^3.2.0" } }, "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA=="], - - "d3-delaunay": ["d3-delaunay@6.0.4", "", { "dependencies": { "delaunator": "5" } }, "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A=="], - - "d3-dispatch": ["d3-dispatch@3.0.1", "", {}, "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="], - - "d3-drag": ["d3-drag@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" } }, "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg=="], - - "d3-dsv": ["d3-dsv@3.0.1", "", { "dependencies": { "commander": "7", "iconv-lite": "0.6", "rw": "1" }, "bin": { "csv2json": "bin/dsv2json.js", "csv2tsv": "bin/dsv2dsv.js", "dsv2dsv": "bin/dsv2dsv.js", "dsv2json": "bin/dsv2json.js", "json2csv": "bin/json2dsv.js", "json2dsv": "bin/json2dsv.js", "json2tsv": "bin/json2dsv.js", "tsv2csv": "bin/dsv2dsv.js", "tsv2json": "bin/dsv2json.js" } }, "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q=="], - - "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="], - - "d3-fetch": ["d3-fetch@3.0.1", "", { "dependencies": { "d3-dsv": "1 - 3" } }, "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw=="], - - "d3-force": ["d3-force@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", "d3-timer": "1 - 3" } }, "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg=="], - - "d3-format": ["d3-format@3.1.2", "", {}, "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg=="], - - "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], - - "d3-hierarchy": ["d3-hierarchy@3.1.2", "", {}, "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="], - - "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="], - - "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="], - - "d3-polygon": ["d3-polygon@3.0.1", "", {}, "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg=="], - - "d3-quadtree": ["d3-quadtree@3.0.1", "", {}, "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="], - - "d3-random": ["d3-random@3.0.1", "", {}, "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="], - - "d3-sankey": ["d3-sankey@0.12.3", "", { "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" } }, "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ=="], - - "d3-scale": ["d3-scale@4.0.2", "", { "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", "d3-interpolate": "1.2.0 - 3", "d3-time": "2.1.1 - 3", "d3-time-format": "2 - 4" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="], - - "d3-scale-chromatic": ["d3-scale-chromatic@3.1.0", "", { "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" } }, "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ=="], - - "d3-selection": ["d3-selection@3.0.0", "", {}, "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="], - - "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="], - - "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="], - - "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="], - - "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], - - "d3-transition": ["d3-transition@3.0.1", "", { "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", "d3-ease": "1 - 3", "d3-interpolate": "1 - 3", "d3-timer": "1 - 3" }, "peerDependencies": { "d3-selection": "2 - 3" } }, "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w=="], - - "d3-zoom": ["d3-zoom@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "2 - 3", "d3-transition": "2 - 3" } }, "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="], - - "dagre-d3-es": ["dagre-d3-es@7.0.14", "", { "dependencies": { "d3": "^7.9.0", "lodash-es": "^4.17.21" } }, "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg=="], - - "data-urls": ["data-urls@7.0.0", "", { "dependencies": { "whatwg-mimetype": "^5.0.0", "whatwg-url": "^16.0.0" } }, "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA=="], + "data-urls": ["data-urls@8.0.0", "", { "dependencies": { "whatwg-mimetype": "^5.0.0", "whatwg-url": "^17.1.2" } }, "sha512-JQUCCK+/CAGbGGx618PlFZMXH81Jtj7t73CHv9dd/zVWvxgGT2zLFRjnKb+Ng46GIwcy+f7f88qd4duqllK+WQ=="], "date-fns": ["date-fns@4.4.0", "", {}, "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w=="], - "dayjs": ["dayjs@1.11.20", "", {}, "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ=="], + "debounce-fn": ["debounce-fn@4.0.0", "", { "dependencies": { "mimic-fn": "^3.0.0" } }, "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ=="], "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], @@ -1191,14 +983,12 @@ "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], - "default-browser": ["default-browser@5.5.0", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw=="], + "default-browser": ["default-browser@5.5.1", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw=="], "default-browser-id": ["default-browser-id@5.0.1", "", {}, "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q=="], "define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="], - "delaunator": ["delaunator@5.1.0", "", { "dependencies": { "robust-predicates": "^3.0.2" } }, "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ=="], - "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], @@ -1213,44 +1003,40 @@ "dom-accessibility-api": ["dom-accessibility-api@0.6.3", "", {}, "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="], - "dompurify": ["dompurify@3.3.3", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA=="], + "dot-prop": ["dot-prop@6.0.1", "", { "dependencies": { "is-obj": "^2.0.0" } }, "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA=="], "dotenv": ["dotenv@17.4.2", "", {}, "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw=="], "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - "eciesjs": ["eciesjs@0.4.18", "", { "dependencies": { "@ecies/ciphers": "^0.2.5", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.7", "@noble/hashes": "^1.8.0" } }, "sha512-wG99Zcfcys9fZux7Cft8BAX/YrOJLJSZ3jyYPfhZHqN2E+Ffx+QXBDsv3gubEgPtV6dTzJMSQUwk1H98/t/0wQ=="], - "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "electron-to-chromium": ["electron-to-chromium@1.5.335", "", {}, "sha512-q9n5T4BR4Xwa2cwbrwcsDJtHD/enpQ5S1xF1IAtdqf5AAgqDFmR/aakqH3ChFdqd/QXJhS3rnnXFtexU7rax6Q=="], + "electron-to-chromium": ["electron-to-chromium@1.5.452", "", {}, "sha512-cVvk1YBSj6571VmV6hdJTqj94Y79xSu8cj6Y9t6ae4Y4431z8/7EJFvu3rVp90xhfuv9BpPKUmaLfTo4+FOGBg=="], "emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], - "enhanced-resolve": ["enhanced-resolve@5.21.6", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ=="], + "enhanced-resolve": ["enhanced-resolve@5.26.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw=="], - "entities": ["entities@8.0.0", "", {}, "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA=="], + "enquirer": ["enquirer@2.4.1", "", { "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" } }, "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ=="], - "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], + "entities": ["entities@8.1.0", "", {}, "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA=="], - "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], + "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], - "es-module-lexer": ["es-module-lexer@2.0.0", "", {}, "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw=="], + "es-module-lexer": ["es-module-lexer@2.3.2", "", {}, "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw=="], - "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + "es-object-atoms": ["es-object-atoms@1.1.2", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="], "esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "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" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="], "esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="], - "esbuild": ["esbuild@0.27.7", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.7", "@esbuild/android-arm": "0.27.7", "@esbuild/android-arm64": "0.27.7", "@esbuild/android-x64": "0.27.7", "@esbuild/darwin-arm64": "0.27.7", "@esbuild/darwin-x64": "0.27.7", "@esbuild/freebsd-arm64": "0.27.7", "@esbuild/freebsd-x64": "0.27.7", "@esbuild/linux-arm": "0.27.7", "@esbuild/linux-arm64": "0.27.7", "@esbuild/linux-ia32": "0.27.7", "@esbuild/linux-loong64": "0.27.7", "@esbuild/linux-mips64el": "0.27.7", "@esbuild/linux-ppc64": "0.27.7", "@esbuild/linux-riscv64": "0.27.7", "@esbuild/linux-s390x": "0.27.7", "@esbuild/linux-x64": "0.27.7", "@esbuild/netbsd-arm64": "0.27.7", "@esbuild/netbsd-x64": "0.27.7", "@esbuild/openbsd-arm64": "0.27.7", "@esbuild/openbsd-x64": "0.27.7", "@esbuild/openharmony-arm64": "0.27.7", "@esbuild/sunos-x64": "0.27.7", "@esbuild/win32-arm64": "0.27.7", "@esbuild/win32-ia32": "0.27.7", "@esbuild/win32-x64": "0.27.7" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w=="], - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], @@ -1265,7 +1051,7 @@ "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="], - "estree-util-scope": ["estree-util-scope@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" } }, "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ=="], + "estree-util-scope": ["estree-util-scope@1.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" } }, "sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA=="], "estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="], @@ -1277,19 +1063,19 @@ "eventsource": ["eventsource@3.0.7", "", { "dependencies": { "eventsource-parser": "^3.0.1" } }, "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="], - "eventsource-parser": ["eventsource-parser@3.0.6", "", {}, "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg=="], + "eventsource-parser": ["eventsource-parser@3.1.1", "", {}, "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ=="], "execa": ["execa@9.6.1", "", { "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.6", "figures": "^6.1.0", "get-stream": "^9.0.0", "human-signals": "^8.0.1", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", "npm-run-path": "^6.0.0", "pretty-ms": "^9.2.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", "yoctocolors": "^2.1.1" } }, "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA=="], - "expect": ["expect@30.3.0", "", { "dependencies": { "@jest/expect-utils": "30.3.0", "@jest/get-type": "30.1.0", "jest-matcher-utils": "30.3.0", "jest-message-util": "30.3.0", "jest-mock": "30.3.0", "jest-util": "30.3.0" } }, "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q=="], + "expect": ["expect@30.5.2", "", { "dependencies": { "@jest/expect-utils": "30.5.2", "@jest/get-type": "30.5.0", "jest-matcher-utils": "30.5.2", "jest-message-util": "30.5.1", "jest-mock": "30.5.2", "jest-util": "30.5.1" } }, "sha512-0LNuMvs8/5mRYhnCR4k+lGV7fqPMs6Bnksda4S3zsCUmdxBpAn4zU4NNzXdq1pMKe/H4W5t/zVIDSJ/H3e0vDA=="], - "expect-type": ["expect-type@1.3.0", "", {}, "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA=="], + "expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="], - "express": ["express@5.2.1", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", "content-disposition": "^1.0.0", "content-type": "^1.0.5", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "depd": "^2.0.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.7", "qs": "^6.14.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.0.1", "vary": "^1.1.2" } }, "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw=="], + "express": ["express@5.3.0", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.3.0", "content-disposition": "^2.0.1", "content-type": "^2.0.0", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "depd": "^2.0.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.8", "qs": "^6.16.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.1.0", "vary": "^1.1.2" } }, "sha512-qCqy1xSoaugxOD4IVHb1ZWdkvCF2W3aE2okKouWj8VwJ+ztskSiXoBnCSJqfKT+cVPJhuJqe9YLbY425+Zh00g=="], - "express-rate-limit": ["express-rate-limit@8.3.2", "", { "dependencies": { "ip-address": "10.1.0" }, "peerDependencies": { "express": ">= 4.11" } }, "sha512-77VmFeJkO0/rvimEDuUC5H30oqUC4EyOhyGccfqoLebB0oiEYfM7nwPrsDsBL1gsTpwfzX8SFy2MT3TDyRq+bg=="], + "express-rate-limit": ["express-rate-limit@8.7.1", "", { "dependencies": { "debug": "^4.4.3", "ip-address": "^10.2.0" }, "peerDependencies": { "express": ">= 4.11" } }, "sha512-2FXbqkygil3mZiXzEtM0IjE/UBmBNot0J1GEVrJT4JbrvwOSoEtqtO+wHbiMQELWe1eNvHoYRg2dkjOid+6JkA=="], - "exsolve": ["exsolve@1.0.8", "", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="], + "exsolve": ["exsolve@1.1.3", "", {}, "sha512-kuzL9zherLQoqDeQaS55AiiIg1kb4KYXaSusTtgZTPlvKP2gGCI82LNmBNh5RjDVUXIcmgx+/Mx7vPwRzBbhJA=="], "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], @@ -1299,9 +1085,9 @@ "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], - "fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], + "fast-uri": ["fast-uri@3.1.8", "", {}, "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg=="], - "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + "fastq": ["fastq@1.20.3", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw=="], "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], @@ -1313,13 +1099,15 @@ "finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="], + "find-up": ["find-up@3.0.0", "", { "dependencies": { "locate-path": "^3.0.0" } }, "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="], + "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], - "framer-motion": ["framer-motion@12.42.0", "", { "dependencies": { "motion-dom": "^12.42.0", "motion-utils": "^12.39.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-wp7EJnfWaaEScVygKv3e20udoRz+LbtxScsuTkakAxfXmt+ReC6WyPW2nINRAGvd+hG9odwcjBLyOTPjH5pBRA=="], + "framer-motion": ["framer-motion@14.1.0", "", { "dependencies": { "motion-dom": "14.1.0", "motion-utils": "14.1.0", "tslib": "^2.4.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["react", "react-dom"] }, "sha512-QsdZSdWoyQfUmgi+GZfow8Du5COG6VRYEo9FlgKUPgH87/Le/fYekHCAKwLdYKHdCZcZfWHg4iOxlD6RoqXciQ=="], "fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], - "fs-extra": ["fs-extra@11.3.4", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA=="], + "fs-extra": ["fs-extra@11.4.1", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-KYAb4c9BJQI6QqGKthV68OHe0badztdXJWKo0WtBA9IuCFPTKvE5ZdUBglP833aMjhaSPNO4A5j/EkzZtGlKjA=="], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], @@ -1331,7 +1119,7 @@ "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], - "get-east-asian-width": ["get-east-asian-width@1.5.0", "", {}, "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA=="], + "get-east-asian-width": ["get-east-asian-width@1.7.0", "", {}, "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q=="], "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], @@ -1343,27 +1131,21 @@ "get-stream": ["get-stream@9.0.1", "", { "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" } }, "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA=="], - "get-tsconfig": ["get-tsconfig@4.13.7", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q=="], - "glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "goober": ["goober@2.1.18", "", { "peerDependencies": { "csstype": "^3.0.10" } }, "sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw=="], - "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], "h3-v2": ["h3@2.0.1-rc.20", "", { "dependencies": { "rou3": "^0.8.1", "srvx": "^0.11.13" }, "peerDependencies": { "crossws": "^0.4.1" }, "optionalPeers": ["crossws"], "bin": { "h3": "bin/h3.mjs" } }, "sha512-28ljodXuUp0fZovdiSRq4G9OgrxCztrJe5VdYzXAB7ueRvI7pIUqLU14Xi3XqdYJ/khXjfpUOOD2EQa6CmBgsg=="], - "hachure-fill": ["hachure-fill@0.5.2", "", {}, "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg=="], - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], - "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], "hast-util-from-html": ["hast-util-from-html@2.0.3", "", { "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" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="], @@ -1389,11 +1171,9 @@ "hastscript": ["hastscript@9.0.1", "", { "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" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], - "hono": ["hono@4.12.12", "", {}, "sha512-p1JfQMKaceuCbpJKAPKVqyqviZdS0eUxH9v82oWo1kb9xjQ5wA6iP3FNVAPDFlz5/p7d45lO+BpSk1tuSZMF4Q=="], - - "html-encoding-sniffer": ["html-encoding-sniffer@6.0.0", "", { "dependencies": { "@exodus/bytes": "^1.6.0" } }, "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg=="], + "hono": ["hono@4.13.13", "", {}, "sha512-CQ46U0ZkAGmbT/4UxdzzGJpacP2IeKgY4a5/tOI9AABbpOMfK739wfDXmv1usCk+3RkKj1hQy4/fjhiwa2xlrA=="], - "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], + "html-encoding-sniffer": ["html-encoding-sniffer@7.0.0", "", { "dependencies": { "@exodus/bytes": "^1.15.1" } }, "sha512-UikN5yr7xsCDAq87Or5or0PAlD3HJJOKVzM05az588WnpDJ4Ux7a2A53Qi6gofGg2/EtvF/H4hCi/TXfCW4Y6w=="], "html-url-attributes": ["html-url-attributes@3.0.1", "", {}, "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ=="], @@ -1403,21 +1183,17 @@ "human-signals": ["human-signals@8.0.1", "", {}, "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ=="], - "iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="], + "iconv-lite": ["iconv-lite@0.7.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ=="], "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], - "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], - "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], - - "ip-address": ["ip-address@10.1.0", "", {}, "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q=="], + "ip-address": ["ip-address@10.7.4", "", {}, "sha512-DWBMKyeM25D70nrIiTkgQth59/G+naKOTep6huF9j+GmeK3DMD60Zvxg5d5qQnz+38AHgou6ean2LECX+lrKDg=="], "ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], @@ -1425,11 +1201,9 @@ "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], - "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], - "is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="], - "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], + "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], @@ -1459,46 +1233,38 @@ "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], - "is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], + "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], - "isbot": ["isbot@5.1.37", "", {}, "sha512-5bcicX81xf6NlTEV8rWdg7Pk01LFizDetuYGHx6d/f6y3lR2/oo8IfxjzJqn1UdDEyCcwT9e7NRloj8DwCYujQ=="], + "isbot": ["isbot@5.2.2", "", {}, "sha512-iQcBXcd+Rv/pkubRyGh2utW2j1oPG5hZY6TUhVPpqK4G+o3IbxpJNx04hgksjc/N7GK5pEorUxDeg31cFgEk/w=="], "isexe": ["isexe@3.1.5", "", {}, "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w=="], - "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], - - "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="], - - "istanbul-reports": ["istanbul-reports@3.2.0", "", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA=="], + "jest-diff": ["jest-diff@30.5.2", "", { "dependencies": { "@jest/diff-sequences": "30.5.0", "@jest/get-type": "30.5.0", "chalk": "^4.1.2", "pretty-format": "30.5.1" } }, "sha512-rBtHnI6BWTiWj3lM7fOLVfChx7R9B0u9VV3PRHawKs79x6ZjW1QoSrKenaigNGWlvhtoi2BqvDbABDie+Os3xQ=="], - "jest-diff": ["jest-diff@30.3.0", "", { "dependencies": { "@jest/diff-sequences": "30.3.0", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "pretty-format": "30.3.0" } }, "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ=="], + "jest-matcher-utils": ["jest-matcher-utils@30.5.2", "", { "dependencies": { "@jest/get-type": "30.5.0", "chalk": "^4.1.2", "jest-diff": "30.5.2", "pretty-format": "30.5.1" } }, "sha512-lFkB365PTIHOhPzwrb9T6gvlDnPpOZ7/c3ewOKKB7bzztqjVrtlyRL2MkyfJXpyY2u2SKw001JKrTx14fBUFcQ=="], - "jest-matcher-utils": ["jest-matcher-utils@30.3.0", "", { "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "jest-diff": "30.3.0", "pretty-format": "30.3.0" } }, "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA=="], + "jest-message-util": ["jest-message-util@30.5.1", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.5.1", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-util": "30.5.1", "picomatch": "^4.0.3", "pretty-format": "30.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-UdQlLdd9wL/Ys7xRErckqwD6wPlSZYueosSWuHc1r2ztGLwlgPvtSJq2+BPEgaEY13WLvfFbmhTj8pba0Sd1jg=="], - "jest-message-util": ["jest-message-util@30.3.0", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.3.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "picomatch": "^4.0.3", "pretty-format": "30.3.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw=="], + "jest-mock": ["jest-mock@30.5.2", "", { "dependencies": { "@jest/expect-utils": "30.5.2", "@jest/types": "30.5.1", "@types/node": "*", "jest-util": "30.5.1" } }, "sha512-KTHb37Fhj8xY8qPFvTFaFJHcdsumQp+ExsUlgoX232Agmc706gagBs53+CYvulV7MVQo9AgXOUxsqzzVBoJlrA=="], - "jest-mock": ["jest-mock@30.3.0", "", { "dependencies": { "@jest/types": "30.3.0", "@types/node": "*", "jest-util": "30.3.0" } }, "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog=="], + "jest-regex-util": ["jest-regex-util@30.5.0", "", {}, "sha512-Mg0WK7A6xRHLSA1udJ8y9f3lM0uUhFTBnLKzwPmqB9AylvpleJ6BLemR8K9dK27DY+cesDryoA7yLZCAHsPG1A=="], - "jest-regex-util": ["jest-regex-util@30.0.1", "", {}, "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA=="], - - "jest-util": ["jest-util@30.3.0", "", { "dependencies": { "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.3" } }, "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg=="], + "jest-util": ["jest-util@30.5.1", "", { "dependencies": { "@jest/types": "30.5.1", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.3" } }, "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg=="], "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], - "jose": ["jose@6.2.2", "", {}, "sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ=="], + "jose": ["jose@6.2.12", "", {}, "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw=="], "js-tokens": ["js-tokens@10.0.0", "", {}, "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q=="], - "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + "js-yaml": ["js-yaml@4.3.2", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA=="], - "jsdom": ["jsdom@29.1.1", "", { "dependencies": { "@asamuzakjp/css-color": "^5.1.11", "@asamuzakjp/dom-selector": "^7.1.1", "@bramus/specificity": "^2.4.2", "@csstools/css-syntax-patches-for-csstree": "^1.1.3", "@exodus/bytes": "^1.15.0", "css-tree": "^3.2.1", "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", "is-potential-custom-element-name": "^1.0.1", "lru-cache": "^11.3.5", "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^6.0.1", "undici": "^7.25.0", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^8.0.1", "whatwg-mimetype": "^5.0.0", "whatwg-url": "^16.0.1", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q=="], + "jsdom": ["jsdom@30.1.2", "", { "dependencies": { "@asamuzakjp/css-color": "^7.1.3", "@asamuzakjp/dom-selector": "^9.2.4", "@bramus/specificity": "^2.4.2", "@csstools/css-syntax-patches-for-csstree": "^1.1.15", "@exodus/bytes": "^1.16.0", "css-tree": "^3.2.1", "data-urls": "^8.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^7.0.0", "is-potential-custom-element-name": "^1.0.1", "lru-cache": "^11.5.3", "parse5": "^8.0.1", "saxes": "^6.0.0", "tough-cookie": "^6.0.2", "undici": "^8.11.2", "w3c-xmlserializer": "^6.0.0", "webidl-conversions": "^8.0.1", "whatwg-mimetype": "^5.0.0", "whatwg-url": "^17.2.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.2.3" }, "optionalPeers": ["canvas"] }, "sha512-0FFE/jE1rppmVfUrJUgxqXjcwolZYIGtAgj1pTussMhNZxIxi7W/PvfWaMNroGi2B36X1IKHbexpZ9DhkoOPiQ=="], - "jsep": ["jsep@1.4.0", "", {}, "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw=="], + "jsep": ["jsep@1.6.0", "", {}, "sha512-Y8Tr54CX7B5YGAwo7/n8eumidEX3Opx98RyyQVnlHqUaZcPA8uUzL2v1rshr9ypW9Q6hNjfJtg3sL+8kaNE7TA=="], "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], - "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], - "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], "json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], @@ -1507,63 +1273,51 @@ "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], + "jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="], - "jsonpath-plus": ["jsonpath-plus@10.4.0", "", { "dependencies": { "@jsep-plugin/assignment": "^1.3.0", "@jsep-plugin/regex": "^1.0.4", "jsep": "^1.4.0" }, "bin": { "jsonpath": "bin/jsonpath-cli.js", "jsonpath-plus": "bin/jsonpath-cli.js" } }, "sha512-T92WWatJXmhBbKsgH/0hl+jxjdXrifi5IKeMY02DWggRxX0UElcbVzPlmgLTbvsPeW1PasQ6xE2Q75stkhGbsA=="], - - "katex": ["katex@0.16.45", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA=="], - - "khroma": ["khroma@2.1.0", "", {}, "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="], + "jsonpath-plus": ["jsonpath-plus@11.2.0", "", { "dependencies": { "@jsep-plugin/assignment": "^1.3.0", "@jsep-plugin/regex": "^1.0.4", "jsep": "^1.4.0" }, "bin": { "jsonpath": "./bin/jsonpath-cli.js", "jsonpath-plus": "./bin/jsonpath-cli.js" } }, "sha512-sfM35kUqO1GvBqxrcPSfnai3/fHHFgH6OHP5HbMgQMPSVc5LeBXYvM1HknEpZJPCyNU9Hd3DKiFuDHh2RphTkQ=="], "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], - "langium": ["langium@4.2.2", "", { "dependencies": { "@chevrotain/regexp-to-ast": "~12.0.0", "chevrotain": "~12.0.0", "chevrotain-allstar": "~0.4.1", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.11", "vscode-uri": "~3.1.0" } }, "sha512-JUshTRAfHI4/MF9dH2WupvjSXyn8JBuUEWazB8ZVJUtXutT0doDlAv1XKbZ1Pb5sMexa8FF4CFBc0iiul7gbUQ=="], - - "layout-base": ["layout-base@1.0.2", "", {}, "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="], - - "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + "lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "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" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="], - "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="], - "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="], - "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="], - "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="], - "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="], - "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="], - "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="], - "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="], - "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="], - "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="], - "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="], - "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - - "lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="], + "locate-path": ["locate-path@3.0.0", "", { "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="], "log-symbols": ["log-symbols@6.0.0", "", { "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" } }, "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw=="], "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], - "lru-cache": ["lru-cache@11.3.5", "", {}, "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw=="], + "lru-cache": ["lru-cache@11.5.3", "", {}, "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg=="], - "lucide-react": ["lucide-react@1.22.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-c9o3l0PiNcgOQDW4F31BEYHudE7kgxVt3o30qMl36ZPwTxXlGB4QnLilhERvVM4uh/pl5MDyY1/gzZSYcHDtBg=="], + "lucide-react": ["lucide-react@1.55.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-bSozQHiI3/8q7JvgoqVRGOYUi7fYT3siAZwmZsljjsOH2Husp/2ODdFf/leD+ZC/2yKfn7r8oh6yeoR3ITR5vA=="], "lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="], - "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - - "magicast": ["magicast@0.5.2", "", { "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "source-map-js": "^1.2.1" } }, "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ=="], + "magic-string": ["magic-string@1.4.3", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.6.0" } }, "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ=="], - "make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="], + "magicast": ["magicast@0.5.5", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "source-map-js": "^1.2.1" } }, "sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA=="], "make-error": ["make-error@1.3.6", "", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="], @@ -1571,13 +1325,13 @@ "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], - "marked": ["marked@17.0.6", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA=="], + "marked": ["marked@18.1.0", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-PamYXWWWg2nboG3oX5Ffzpy3EFZROqZJK9hSlMmUnekp7TxPs5DcT95vwd46m73/exfKCRVMtgXoPMI4FEJL6w=="], "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], - "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "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" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.3", "", { "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" } }, "sha512-xPgpDNl0/OXHsI7TlaIs22lWnH3KlpvZdXG1ET/m/YT2Hhdkx8lJV4kLphE6l9simyM4KPDFBwas08BgEob6Jw=="], - "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.3", "", { "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" } }, "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q=="], + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.1.0", "", { "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" } }, "sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A=="], "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "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" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="], @@ -1585,7 +1339,7 @@ "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "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" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="], - "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="], + "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-OuJHqvr455pwu2OaOrir7dbzqs4jlWKOtlu9L6GjcIjjQwNyw02VntQsr/Ek6/A13vgnXfUhBekWRUP1OkNivw=="], "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "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" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="], @@ -1603,13 +1357,13 @@ "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "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" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], - "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "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-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.2.0", "", { "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" } }, "sha512-2Jn/ADrHFFyyniBMi0bncTbJqU78K3/TEYvzvwrWWzD9MYPUa/Gm4r3nOeKFQg/PDM5BsbDYdc8ackW4NTY6NA=="], "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], - "media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="], + "media-typer": ["media-typer@1.1.1", "", {}, "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ=="], "merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="], @@ -1617,11 +1371,9 @@ "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], - "mermaid": ["mermaid@11.14.0", "", { "dependencies": { "@braintree/sanitize-url": "^7.1.1", "@iconify/utils": "^3.0.2", "@mermaid-js/parser": "^1.1.0", "@types/d3": "^7.4.3", "@upsetjs/venn.js": "^2.0.0", "cytoscape": "^3.33.1", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.14", "dayjs": "^1.11.19", "dompurify": "^3.3.1", "katex": "^0.16.25", "khroma": "^2.1.0", "lodash-es": "^4.17.23", "marked": "^16.3.0", "roughjs": "^4.6.6", "stylis": "^4.3.6", "ts-dedent": "^2.2.0", "uuid": "^11.1.0" } }, "sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g=="], - - "micromark": ["micromark@4.0.2", "", { "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-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" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], + "micromark": ["micromark@4.0.3", "", { "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" } }, "sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw=="], - "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "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.0.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-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.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.4", "", { "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" } }, "sha512-wxEeE8v8XVvOrxn1TZj74qYhAtTQsSqufHVS3uNVyT1MupXxhyaHk8/9xDNPh9BmL77QNDgWTkZ3RsYHB2ry7w=="], "micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "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" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="], @@ -1631,7 +1383,7 @@ "micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "", { "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" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="], - "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.1", "", { "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" } }, "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg=="], + "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.2", "", { "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" } }, "sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA=="], "micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="], @@ -1653,7 +1405,7 @@ "micromark-factory-mdx-expression": ["micromark-factory-mdx-expression@2.0.3", "", { "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" } }, "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ=="], - "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], + "micromark-factory-space": ["micromark-factory-space@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-fS8hnLIjnjvdQIj39Geug8wWsR0HrYZ43KShKxNfwT7t2LOHo/LbWZEzEaSOjwtjdCsjoE6syHhonEzW0zv0+Q=="], "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "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" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], @@ -1671,6 +1423,8 @@ "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "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" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + "micromark-util-edit-map": ["micromark-util-edit-map@1.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-Pa2ljlsEL6sVwFaYeyrOLSYbQt73JvGbPOYFq+9AElXiSnfI5Q4465RRZ1sHv7lDjDOnGRDDaqPXqClqWK/q1Q=="], + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], "micromark-util-events-to-acorn": ["micromark-util-events-to-acorn@2.0.3", "", { "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" } }, "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg=="], @@ -1687,7 +1441,7 @@ "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], - "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + "micromark-util-types": ["micromark-util-types@2.0.3", "", {}, "sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg=="], "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], @@ -1695,39 +1449,37 @@ "mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], - "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + "mimic-fn": ["mimic-fn@3.1.0", "", {}, "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ=="], "mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="], "min-indent": ["min-indent@1.0.1", "", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="], - "minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="], + "minimatch": ["minimatch@10.2.6", "", { "dependencies": { "brace-expansion": "^5.0.8" } }, "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A=="], "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], "minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], - "mlly": ["mlly@1.8.2", "", { "dependencies": { "acorn": "^8.16.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.3" } }, "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA=="], - - "motion": ["motion@12.42.0", "", { "dependencies": { "framer-motion": "^12.42.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-Qhwvu9sVl5/URSq5CNzwMCpSKK8Uhnrwb6VO977kZyj/wOCS7mWebJUnBoHx5cZU1Zv8a9BD5CSICWKAlrLJgA=="], + "motion": ["motion@14.1.0", "", { "dependencies": { "framer-motion": "14.1.0", "tslib": "^2.4.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["react", "react-dom"] }, "sha512-lsCsW9uJ+iMJj8MSiLccpUC+ZUpoSspaX6Pm78KrnZKMioCPAPG6WeG1d1d/Ywg+z1mny+STP6VyEYW+3nAqNw=="], - "motion-dom": ["motion-dom@12.42.0", "", { "dependencies": { "motion-utils": "^12.39.0" } }, "sha512-M63h4n8R+quJdNhBwuLlgxM+OLYa9+I/T2pzDRboB9fLXRdbou+Gw7Zury+SkpaCyACP1JHSjHgZ1EgTkBr30w=="], + "motion-dom": ["motion-dom@14.1.0", "", { "dependencies": { "motion-utils": "14.1.0" } }, "sha512-FyFLkNUAAETzCvf851mZcl+v+kaZrKq+UM+XmkY4G8n+ny/WYfiWh9j0fhSQ1KOKVQrM9/cLO11THO2k71HJlg=="], - "motion-utils": ["motion-utils@12.39.0", "", {}, "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ=="], + "motion-utils": ["motion-utils@14.1.0", "", {}, "sha512-xd4FeWOnnXsJHmAaRCLNbOS7mEaNOangjMt3Pl241H07f1kxW48fADQ/8O5hLLNhf1qdlozgY3PPAHBdOoU7AA=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], + "nanoid": ["nanoid@3.3.20", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ=="], - "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], + "negotiator": ["negotiator@1.1.0", "", { "dependencies": { "content-type": "^2.1.0" } }, "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg=="], "next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="], - "node-releases": ["node-releases@2.0.37", "", {}, "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg=="], + "node-releases": ["node-releases@2.0.58", "", {}, "sha512-BdiKAgbfRlvfMq/XzO/AF9NPmaA8a+YpLAyAFTVFBj3gARrAIfWvNq7Q7NE4se3KgFu0KkrvQMxTS0XVnsGzHg=="], "npm-run-path": ["npm-run-path@6.0.0", "", { "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" } }, "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA=="], - "nuqs": ["nuqs@2.8.9", "", { "dependencies": { "@standard-schema/spec": "1.0.0" }, "peerDependencies": { "@remix-run/react": ">=2", "@tanstack/react-router": "^1", "next": ">=14.2.0", "react": ">=18.2.0 || ^19.0.0-0", "react-router": "^5 || ^6 || ^7", "react-router-dom": "^5 || ^6 || ^7" }, "optionalPeers": ["@remix-run/react", "@tanstack/react-router", "next", "react-router", "react-router-dom"] }, "sha512-8ou6AEwsxMWSYo2qkfZtYFVzngwbKmg4c00HVxC1fF6CEJv3Fwm6eoZmfVPALB+vw8Udo7KL5uy96PFcYe1BIQ=="], + "nuqs": ["nuqs@2.10.2", "", { "dependencies": { "@standard-schema/spec": "1.1.0" }, "peerDependencies": { "@remix-run/react": ">=2", "@tanstack/react-router": "^1", "next": ">=14.2.0", "react": ">=18.2.0 || ^19.0.0-0", "react-router": "^5 || ^6 || ^7 || ^8", "react-router-dom": "^5 || ^6 || ^7" }, "optionalPeers": ["@remix-run/react", "@tanstack/react-router", "next", "react-router", "react-router-dom"] }, "sha512-HaLMCr9H2wywEnTu3j+QW98EteDT3Kfmx3SJJ6JfcvCvkFi/g/fKd/oCXa5DF0x1s1l4zcFtzsq9bflj6RcM6A=="], "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], @@ -1735,7 +1487,7 @@ "object-treeify": ["object-treeify@1.1.33", "", {}, "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A=="], - "obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="], + "obug": ["obug@3.0.0", "", {}, "sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw=="], "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], @@ -1747,23 +1499,23 @@ "oniguruma-to-es": ["oniguruma-to-es@4.3.6", "", { "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA=="], - "open": ["open@11.0.0", "", { "dependencies": { "default-browser": "^5.4.0", "define-lazy-prop": "^3.0.0", "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", "powershell-utils": "^0.1.0", "wsl-utils": "^0.3.0" } }, "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw=="], + "open": ["open@11.0.4", "", { "dependencies": { "default-browser": "^5.5.1", "define-lazy-prop": "^3.0.0", "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", "powershell-utils": "^0.2.1", "wsl-utils": "^1.0.0" } }, "sha512-++Zlftm0kVLPmzC06t6epuWmcRMDbI4z5P3NNX979WA/k23+NtSOynEGzsVfZwguKw2mi5umVgnBlJQMwRz4Pg=="], "ora": ["ora@8.2.0", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", "stdin-discarder": "^0.2.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0" } }, "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw=="], - "oxfmt": ["oxfmt@0.56.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.56.0", "@oxfmt/binding-android-arm64": "0.56.0", "@oxfmt/binding-darwin-arm64": "0.56.0", "@oxfmt/binding-darwin-x64": "0.56.0", "@oxfmt/binding-freebsd-x64": "0.56.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.56.0", "@oxfmt/binding-linux-arm-musleabihf": "0.56.0", "@oxfmt/binding-linux-arm64-gnu": "0.56.0", "@oxfmt/binding-linux-arm64-musl": "0.56.0", "@oxfmt/binding-linux-ppc64-gnu": "0.56.0", "@oxfmt/binding-linux-riscv64-gnu": "0.56.0", "@oxfmt/binding-linux-riscv64-musl": "0.56.0", "@oxfmt/binding-linux-s390x-gnu": "0.56.0", "@oxfmt/binding-linux-x64-gnu": "0.56.0", "@oxfmt/binding-linux-x64-musl": "0.56.0", "@oxfmt/binding-openharmony-arm64": "0.56.0", "@oxfmt/binding-win32-arm64-msvc": "0.56.0", "@oxfmt/binding-win32-ia32-msvc": "0.56.0", "@oxfmt/binding-win32-x64-msvc": "0.56.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-9Dv0wV3zKiyvhjD7bRKaInKmHQ1sPx3RGOjQkGFJbbdQ16576yf8qhMSO9Q9cvHcs+1NpBsRTkuDDYFFPTJ6gw=="], + "oxfmt": ["oxfmt@0.72.0", "", { "dependencies": { "tinypool": "2.2.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.72.0", "@oxfmt/binding-android-arm64": "0.72.0", "@oxfmt/binding-darwin-arm64": "0.72.0", "@oxfmt/binding-darwin-x64": "0.72.0", "@oxfmt/binding-freebsd-x64": "0.72.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.72.0", "@oxfmt/binding-linux-arm-musleabihf": "0.72.0", "@oxfmt/binding-linux-arm64-gnu": "0.72.0", "@oxfmt/binding-linux-arm64-musl": "0.72.0", "@oxfmt/binding-linux-ppc64-gnu": "0.72.0", "@oxfmt/binding-linux-riscv64-gnu": "0.72.0", "@oxfmt/binding-linux-riscv64-musl": "0.72.0", "@oxfmt/binding-linux-s390x-gnu": "0.72.0", "@oxfmt/binding-linux-x64-gnu": "0.72.0", "@oxfmt/binding-linux-x64-musl": "0.72.0", "@oxfmt/binding-openharmony-arm64": "0.72.0", "@oxfmt/binding-win32-arm64-msvc": "0.72.0", "@oxfmt/binding-win32-ia32-msvc": "0.72.0", "@oxfmt/binding-win32-x64-msvc": "0.72.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-16OQeL0uhPZbfmT9S9WWM0Nv9+BmVi8Ra1uTYaSKj/qSCs6FB30KOhz9JoNYw6thT+K5bVxsk/tSEOu497i34g=="], - "oxlint": ["oxlint@1.71.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.71.0", "@oxlint/binding-android-arm64": "1.71.0", "@oxlint/binding-darwin-arm64": "1.71.0", "@oxlint/binding-darwin-x64": "1.71.0", "@oxlint/binding-freebsd-x64": "1.71.0", "@oxlint/binding-linux-arm-gnueabihf": "1.71.0", "@oxlint/binding-linux-arm-musleabihf": "1.71.0", "@oxlint/binding-linux-arm64-gnu": "1.71.0", "@oxlint/binding-linux-arm64-musl": "1.71.0", "@oxlint/binding-linux-ppc64-gnu": "1.71.0", "@oxlint/binding-linux-riscv64-gnu": "1.71.0", "@oxlint/binding-linux-riscv64-musl": "1.71.0", "@oxlint/binding-linux-s390x-gnu": "1.71.0", "@oxlint/binding-linux-x64-gnu": "1.71.0", "@oxlint/binding-linux-x64-musl": "1.71.0", "@oxlint/binding-openharmony-arm64": "1.71.0", "@oxlint/binding-win32-arm64-msvc": "1.71.0", "@oxlint/binding-win32-ia32-msvc": "1.71.0", "@oxlint/binding-win32-x64-msvc": "1.71.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.22.1", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-U1m1X+C0vDj7DC1e13IoZULzEcPczE7UOMTs8VlZGHUEIUaSTZKo5qkPsQEfzpgnQ29Pea/w3Xntk62UCecxZw=="], + "oxlint": ["oxlint@1.87.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.87.0", "@oxlint/binding-android-arm64": "1.87.0", "@oxlint/binding-darwin-arm64": "1.87.0", "@oxlint/binding-darwin-x64": "1.87.0", "@oxlint/binding-freebsd-x64": "1.87.0", "@oxlint/binding-linux-arm-gnueabihf": "1.87.0", "@oxlint/binding-linux-arm-musleabihf": "1.87.0", "@oxlint/binding-linux-arm64-gnu": "1.87.0", "@oxlint/binding-linux-arm64-musl": "1.87.0", "@oxlint/binding-linux-ppc64-gnu": "1.87.0", "@oxlint/binding-linux-riscv64-gnu": "1.87.0", "@oxlint/binding-linux-riscv64-musl": "1.87.0", "@oxlint/binding-linux-s390x-gnu": "1.87.0", "@oxlint/binding-linux-x64-gnu": "1.87.0", "@oxlint/binding-linux-x64-musl": "1.87.0", "@oxlint/binding-openharmony-arm64": "1.87.0", "@oxlint/binding-win32-arm64-msvc": "1.87.0", "@oxlint/binding-win32-ia32-msvc": "1.87.0", "@oxlint/binding-win32-x64-msvc": "1.87.0" }, "peerDependencies": { "oxlint-tsgolint": ">=7.0.2003", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-drxVlaW7Oqq7wSy1CN25znRu00aRq8n57Q2wniJRxCmtYVz07ufCm7EVDPQFZURrTgQIjzKrVEHAD/HcvJXObg=="], - "oxlint-tsgolint": ["oxlint-tsgolint@0.23.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.23.0", "@oxlint-tsgolint/darwin-x64": "0.23.0", "@oxlint-tsgolint/linux-arm64": "0.23.0", "@oxlint-tsgolint/linux-x64": "0.23.0", "@oxlint-tsgolint/win32-arm64": "0.23.0", "@oxlint-tsgolint/win32-x64": "0.23.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-3mBv3CoPbh8dFbzfDGIWa2ytZjn2v+3EX4aKRXjIhsoGFzG8GCjfRirz3rwZf1wYbZzsNLTSgpw8VjQuWdp/jA=="], + "oxlint-tsgolint": ["oxlint-tsgolint@7.0.2004", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "7.0.2004", "@oxlint-tsgolint/darwin-x64": "7.0.2004", "@oxlint-tsgolint/linux-arm64": "7.0.2004", "@oxlint-tsgolint/linux-x64": "7.0.2004", "@oxlint-tsgolint/win32-arm64": "7.0.2004", "@oxlint-tsgolint/win32-x64": "7.0.2004" }, "bin": { "tsgolint": "./bin/tsgolint.js" } }, "sha512-vQ9WDF3fiZJvRdSDosNOflerOCOpwol6vWzVDxW76RcU19cjTh7engvkHLvmv+tzedR8fAiJUVUGr6IVZdkzXQ=="], - "package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="], + "p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + "p-locate": ["p-locate@3.0.0", "", { "dependencies": { "p-limit": "^2.0.0" } }, "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="], - "parse-entities": ["parse-entities@4.0.2", "", { "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" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], - "parse-json": ["parse-json@5.2.0", "", { "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" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], + "parse-entities": ["parse-entities@4.0.2", "", { "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" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], "parse-ms": ["parse-ms@4.0.0", "", {}, "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw=="], @@ -1775,9 +1527,9 @@ "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], - "path-data-parser": ["path-data-parser@0.1.0", "", {}, "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w=="], + "path-equal": ["path-equal@1.2.8", "", {}, "sha512-rCJWMlXlk9lZ2FEllgvh2IgPj/kxMx2sOeqtFNLO8dxEY0I4hBTa+ZW3JAsgeiTe8vL4MifATVDwxF9nGUI7HQ=="], - "path-equal": ["path-equal@1.2.5", "", {}, "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g=="], + "path-exists": ["path-exists@3.0.0", "", {}, "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="], "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], @@ -1789,53 +1541,49 @@ "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], + "picomatch": ["picomatch@4.0.7", "", {}, "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA=="], "pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="], - "pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], - - "points-on-curve": ["points-on-curve@0.2.0", "", {}, "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A=="], - - "points-on-path": ["points-on-path@0.2.1", "", { "dependencies": { "path-data-parser": "0.1.0", "points-on-curve": "0.2.0" } }, "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g=="], + "pkg-up": ["pkg-up@3.1.0", "", { "dependencies": { "find-up": "^3.0.0" } }, "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA=="], - "postcss": ["postcss@8.5.15", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A=="], + "postcss": ["postcss@8.5.29", "", { "dependencies": { "nanoid": "^3.3.19", "picocolors": "^1.1.1", "source-map-js": "^1.2.2" } }, "sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ=="], - "postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], + "postcss-selector-parser": ["postcss-selector-parser@7.1.6", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw=="], - "powershell-utils": ["powershell-utils@0.1.0", "", {}, "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A=="], + "powershell-utils": ["powershell-utils@0.2.1", "", {}, "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A=="], - "prettier": ["prettier@3.8.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q=="], + "prettier": ["prettier@3.9.10", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA=="], - "pretty-format": ["pretty-format@30.3.0", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ=="], + "pretty-format": ["pretty-format@30.5.1", "", { "dependencies": { "@jest/react-is-18": "npm:react-is@^18.3.1", "@jest/react-is-19": "npm:react-is@^19.2.5", "@jest/schemas": "30.5.0", "ansi-styles": "^5.2.0" } }, "sha512-byhRAPguVKMQIj4kjJwJ5lAskVhfuiSdiYl/aLTWpgkGEmic2jYhJh1yE9ih8Ox44Xg9ccCT11/S6QrzSJuNrg=="], - "pretty-ms": ["pretty-ms@9.3.0", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ=="], + "pretty-ms": ["pretty-ms@9.3.1", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA=="], "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], - "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + "property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], - "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], + "proxy-addr": ["proxy-addr@2.0.8", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ=="], "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - "qs": ["qs@6.15.1", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg=="], + "qs": ["qs@6.16.0", "", { "dependencies": { "es-define-property": "^1.0.1", "side-channel": "^1.1.1" } }, "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA=="], "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], - "radix-ui": ["radix-ui@1.6.0", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-accessible-icon": "1.1.10", "@radix-ui/react-accordion": "1.2.14", "@radix-ui/react-alert-dialog": "1.1.17", "@radix-ui/react-arrow": "1.1.10", "@radix-ui/react-aspect-ratio": "1.1.10", "@radix-ui/react-avatar": "1.2.0", "@radix-ui/react-checkbox": "1.3.5", "@radix-ui/react-collapsible": "1.1.14", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-context-menu": "2.3.1", "@radix-ui/react-dialog": "1.1.17", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-dropdown-menu": "2.1.18", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-form": "0.1.10", "@radix-ui/react-hover-card": "1.1.17", "@radix-ui/react-label": "2.1.10", "@radix-ui/react-menu": "2.1.18", "@radix-ui/react-menubar": "1.1.18", "@radix-ui/react-navigation-menu": "1.2.16", "@radix-ui/react-one-time-password-field": "0.1.10", "@radix-ui/react-password-toggle-field": "0.1.5", "@radix-ui/react-popover": "1.1.17", "@radix-ui/react-popper": "1.3.1", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-progress": "1.1.10", "@radix-ui/react-radio-group": "1.4.1", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-scroll-area": "1.2.12", "@radix-ui/react-select": "2.3.1", "@radix-ui/react-separator": "1.1.10", "@radix-ui/react-slider": "1.4.1", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-switch": "1.3.1", "@radix-ui/react-tabs": "1.1.15", "@radix-ui/react-toast": "1.2.17", "@radix-ui/react-toggle": "1.1.12", "@radix-ui/react-toggle-group": "1.1.13", "@radix-ui/react-toolbar": "1.1.13", "@radix-ui/react-tooltip": "1.2.10", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-escape-keydown": "1.1.2", "@radix-ui/react-use-is-hydrated": "0.1.1", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-size": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.6" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-EUEC70O03EgxWMP5aoqfBZ6iLC5bczFagGy7zhSYRt8o5DP7IWNiP3ywetse3L9b8843ExB0OGWZvgbYVJuNeg=="], + "radix-ui": ["radix-ui@1.8.0", "", { "dependencies": { "@radix-ui/primitive": "1.2.0", "@radix-ui/react-accessible-icon": "1.2.0", "@radix-ui/react-accordion": "1.3.0", "@radix-ui/react-alert-dialog": "1.2.0", "@radix-ui/react-arrow": "1.1.17", "@radix-ui/react-aspect-ratio": "1.2.0", "@radix-ui/react-avatar": "1.3.0", "@radix-ui/react-checkbox": "1.4.0", "@radix-ui/react-collapsible": "1.2.0", "@radix-ui/react-collection": "1.2.0", "@radix-ui/react-compose-refs": "1.1.5", "@radix-ui/react-context": "1.3.0", "@radix-ui/react-context-menu": "2.4.0", "@radix-ui/react-dialog": "1.3.0", "@radix-ui/react-direction": "1.2.0", "@radix-ui/react-dismissable-layer": "1.2.0", "@radix-ui/react-dropdown-menu": "2.2.0", "@radix-ui/react-focus-guards": "1.2.0", "@radix-ui/react-focus-scope": "1.3.0", "@radix-ui/react-form": "0.3.0", "@radix-ui/react-hover-card": "1.2.0", "@radix-ui/react-label": "2.1.17", "@radix-ui/react-menu": "2.2.0", "@radix-ui/react-menubar": "1.2.0", "@radix-ui/react-navigation-menu": "1.4.0", "@radix-ui/react-one-time-password-field": "0.2.0", "@radix-ui/react-password-toggle-field": "0.2.0", "@radix-ui/react-popover": "1.3.0", "@radix-ui/react-popper": "1.4.0", "@radix-ui/react-portal": "1.2.0", "@radix-ui/react-presence": "1.1.11", "@radix-ui/react-primitive": "2.2.0", "@radix-ui/react-progress": "1.2.0", "@radix-ui/react-radio-group": "1.5.0", "@radix-ui/react-roving-focus": "1.2.0", "@radix-ui/react-scroll-area": "1.4.0", "@radix-ui/react-select": "2.4.0", "@radix-ui/react-separator": "1.2.0", "@radix-ui/react-slider": "1.6.0", "@radix-ui/react-slot": "1.5.0", "@radix-ui/react-switch": "1.4.0", "@radix-ui/react-tabs": "1.2.0", "@radix-ui/react-toast": "1.3.0", "@radix-ui/react-toggle": "1.2.0", "@radix-ui/react-toggle-group": "1.2.0", "@radix-ui/react-toolbar": "1.2.0", "@radix-ui/react-tooltip": "1.4.0", "@radix-ui/react-use-callback-ref": "1.1.5", "@radix-ui/react-use-controllable-state": "1.3.0", "@radix-ui/react-use-effect-event": "0.0.5", "@radix-ui/react-use-escape-keydown": "1.1.6", "@radix-ui/react-use-is-hydrated": "0.1.3", "@radix-ui/react-use-layout-effect": "1.1.4", "@radix-ui/react-use-size": "1.1.5", "@radix-ui/react-visually-hidden": "1.2.13" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-d2p7l6XzZ9agJABImQYTFSbALCqaieTEXs2TmVNpT4cFam6RD91rsucu0VhMs45Oe35rQVWJk8PoDej0z/w3yg=="], - "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], + "range-parser": ["range-parser@1.3.0", "", {}, "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw=="], "raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], - "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], + "react": ["react@19.3.0", "", {}, "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog=="], - "react-day-picker": ["react-day-picker@10.0.1", "", { "dependencies": { "@date-fns/tz": "^1.4.1", "date-fns": "^4.1.0" }, "peerDependencies": { "@types/react": ">=16.8.0", "react": ">=16.8.0" }, "optionalPeers": ["@types/react"] }, "sha512-eNh6BlwcYInWaJtRv18mXQ06Ys/H6rdTZAnTaSdOYJuTpwP1JMCHNd1FDRadA+gbeinq+psdULN5Xnowy9mV8w=="], + "react-day-picker": ["react-day-picker@10.0.2", "", { "dependencies": { "@date-fns/tz": "^1.4.1", "date-fns": "^4.1.0" }, "peerDependencies": { "@types/react": ">=16.8.0", "react": ">=16.8.0" }, "optionalPeers": ["@types/react"] }, "sha512-QetiKtZWE9Uaw/pM/SYNv6WPYOTRnSJ2puL0GgwkmUFMIwiY0dtjH1W4B7DOVXVNQM0ZOClGpH/heOfBSzWeiA=="], - "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + "react-dom": ["react-dom@19.3.0", "", { "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { "react": "^19.3.0" } }, "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q=="], - "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], + "react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="], "react-remove-scroll": ["react-remove-scroll@2.7.2", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q=="], @@ -1843,9 +1591,9 @@ "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], - "readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], + "readdirp": ["readdirp@5.1.1", "", {}, "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA=="], - "recast": ["recast@0.23.11", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA=="], + "recast": ["recast@0.23.21", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-mFAyJq9vUbSTARLZUvAEf1z3YxlvAwswbmxMx2mPA/MSm4KmpwvwvhsH/NIrZhyOuwD60Lzyw2qh83uCbgTPYw=="], "recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="], @@ -1867,7 +1615,7 @@ "rehype-parse": ["rehype-parse@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html": "^2.0.0", "unified": "^11.0.0" } }, "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag=="], - "rehype-pretty-code": ["rehype-pretty-code@0.14.3", "", { "dependencies": { "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.0", "parse-numeric-range": "^1.3.0", "rehype-parse": "^9.0.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "shiki": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "sha512-Cz692FeYusTjT5cfFWLc4r7JhgC3/JlJptgUh4iffBxWxUnWW1oqbWFi7jGCeq00DYUm8yzoTnvpocaYa5x82g=="], + "rehype-pretty-code": ["rehype-pretty-code@0.14.5", "", { "dependencies": { "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.0", "parse-numeric-range": "^1.3.0", "rehype-parse": "^9.0.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "shiki": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "sha512-+DhMMNMgOwmE0xu2RmagN63nR0GRObPIQ9TuoNdUYYIDcCr8nWXU1CJUG6yca7vg99Gp5d+62A/+ZvksmsQXjA=="], "rehype-raw": ["rehype-raw@7.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" } }, "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww=="], @@ -1885,67 +1633,57 @@ "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], - "remend": ["remend@1.3.0", "", {}, "sha512-iIhggPkhW3hFImKtB10w0dz4EZbs28mV/dmbcYVonWEJ6UGHHpP+bFZnTh6GNWJONg5m+U56JrL+8IxZRdgWjw=="], + "remend": ["remend@1.4.0", "", {}, "sha512-mHiYhhwphs1IgIZmkToKLwJn0U99IjPXuutkA2acrNcG0vlEq2G4TGnd2eT0saIHwh2KjaCpvleHcsd5SAz96A=="], "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "reselect": ["reselect@5.2.0", "", {}, "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw=="], - - "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - - "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + "reselect": ["reselect@5.3.0", "", {}, "sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg=="], "restore-cursor": ["restore-cursor@5.1.0", "", { "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" } }, "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA=="], "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], - "robust-predicates": ["robust-predicates@3.0.3", "", {}, "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA=="], - - "rolldown": ["rolldown@1.1.3", "", { "dependencies": { "@oxc-project/types": "=0.137.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.1.3", "@rolldown/binding-darwin-arm64": "1.1.3", "@rolldown/binding-darwin-x64": "1.1.3", "@rolldown/binding-freebsd-x64": "1.1.3", "@rolldown/binding-linux-arm-gnueabihf": "1.1.3", "@rolldown/binding-linux-arm64-gnu": "1.1.3", "@rolldown/binding-linux-arm64-musl": "1.1.3", "@rolldown/binding-linux-ppc64-gnu": "1.1.3", "@rolldown/binding-linux-s390x-gnu": "1.1.3", "@rolldown/binding-linux-x64-gnu": "1.1.3", "@rolldown/binding-linux-x64-musl": "1.1.3", "@rolldown/binding-openharmony-arm64": "1.1.3", "@rolldown/binding-wasm32-wasi": "1.1.3", "@rolldown/binding-win32-arm64-msvc": "1.1.3", "@rolldown/binding-win32-x64-msvc": "1.1.3" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-1F1eEtUBtFvcGm1HQ9TiUIUHPQG7mSAODrhIzjxoUEFuo8OcbrGLiVLkevNgj84TE4lnHvnumwFjhJO5Eu135g=="], + "rolldown": ["rolldown@1.2.13", "", { "dependencies": { "@oxc-project/types": "=0.153.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm-eabi": "1.2.13", "@rolldown/binding-android-arm64": "1.2.13", "@rolldown/binding-darwin-arm64": "1.2.13", "@rolldown/binding-darwin-x64": "1.2.13", "@rolldown/binding-freebsd-x64": "1.2.13", "@rolldown/binding-linux-arm-gnueabihf": "1.2.13", "@rolldown/binding-linux-arm64-gnu": "1.2.13", "@rolldown/binding-linux-arm64-musl": "1.2.13", "@rolldown/binding-linux-ppc64-gnu": "1.2.13", "@rolldown/binding-linux-s390x-gnu": "1.2.13", "@rolldown/binding-linux-x64-gnu": "1.2.13", "@rolldown/binding-linux-x64-musl": "1.2.13", "@rolldown/binding-openharmony-arm64": "1.2.13", "@rolldown/binding-win32-arm64-msvc": "1.2.13", "@rolldown/binding-win32-x64-msvc": "1.2.13" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-/5apOkwWxtACcQtZ5WlrAsKS4JwXVThQPJZ3RqIruRY9UG9M8e0VlXN068xum/JRKA4aIUoJ13ghe/kGCvidiQ=="], - "rollup": ["rollup@4.60.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.1", "@rollup/rollup-android-arm64": "4.60.1", "@rollup/rollup-darwin-arm64": "4.60.1", "@rollup/rollup-darwin-x64": "4.60.1", "@rollup/rollup-freebsd-arm64": "4.60.1", "@rollup/rollup-freebsd-x64": "4.60.1", "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", "@rollup/rollup-linux-arm-musleabihf": "4.60.1", "@rollup/rollup-linux-arm64-gnu": "4.60.1", "@rollup/rollup-linux-arm64-musl": "4.60.1", "@rollup/rollup-linux-loong64-gnu": "4.60.1", "@rollup/rollup-linux-loong64-musl": "4.60.1", "@rollup/rollup-linux-ppc64-gnu": "4.60.1", "@rollup/rollup-linux-ppc64-musl": "4.60.1", "@rollup/rollup-linux-riscv64-gnu": "4.60.1", "@rollup/rollup-linux-riscv64-musl": "4.60.1", "@rollup/rollup-linux-s390x-gnu": "4.60.1", "@rollup/rollup-linux-x64-gnu": "4.60.1", "@rollup/rollup-linux-x64-musl": "4.60.1", "@rollup/rollup-openbsd-x64": "4.60.1", "@rollup/rollup-openharmony-arm64": "4.60.1", "@rollup/rollup-win32-arm64-msvc": "4.60.1", "@rollup/rollup-win32-ia32-msvc": "4.60.1", "@rollup/rollup-win32-x64-gnu": "4.60.1", "@rollup/rollup-win32-x64-msvc": "4.60.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w=="], + "rollup": ["rollup@4.64.5", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@napi-rs/lzma-linux-x64-gnu": "1.5.1", "@rollup/rollup-android-arm-eabi": "4.64.5", "@rollup/rollup-android-arm64": "4.64.5", "@rollup/rollup-darwin-arm64": "4.64.5", "@rollup/rollup-darwin-x64": "4.64.5", "@rollup/rollup-freebsd-arm64": "4.64.5", "@rollup/rollup-freebsd-x64": "4.64.5", "@rollup/rollup-linux-arm-gnueabihf": "4.64.5", "@rollup/rollup-linux-arm-musleabihf": "4.64.5", "@rollup/rollup-linux-arm64-gnu": "4.64.5", "@rollup/rollup-linux-arm64-musl": "4.64.5", "@rollup/rollup-linux-loong64-gnu": "4.64.5", "@rollup/rollup-linux-loong64-musl": "4.64.5", "@rollup/rollup-linux-ppc64-gnu": "4.64.5", "@rollup/rollup-linux-ppc64-musl": "4.64.5", "@rollup/rollup-linux-riscv64-gnu": "4.64.5", "@rollup/rollup-linux-riscv64-musl": "4.64.5", "@rollup/rollup-linux-s390x-gnu": "4.64.5", "@rollup/rollup-linux-x64-gnu": "4.64.5", "@rollup/rollup-linux-x64-musl": "4.64.5", "@rollup/rollup-openbsd-x64": "4.64.5", "@rollup/rollup-openharmony-arm64": "4.64.5", "@rollup/rollup-win32-arm64-msvc": "4.64.5", "@rollup/rollup-win32-ia32-msvc": "4.64.5", "@rollup/rollup-win32-x64-gnu": "4.64.5", "@rollup/rollup-win32-x64-msvc": "4.64.5", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-EAP5ZHcz2ijbgCWwPkpI7zh6bfsri2Ez5FtCy2dCp1k62duXzfG7DLGGh7RU2QQXWwavT+u4qpvDF/TWOiiGTw=="], "rou3": ["rou3@0.8.1", "", {}, "sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA=="], - "roughjs": ["roughjs@4.6.6", "", { "dependencies": { "hachure-fill": "^0.5.2", "path-data-parser": "^0.1.0", "points-on-curve": "^0.2.0", "points-on-path": "^0.2.1" } }, "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ=="], - "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], "run-applescript": ["run-applescript@7.1.0", "", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="], "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], - "rw": ["rw@1.3.3", "", {}, "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="], - "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], - "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + "scheduler": ["scheduler@0.28.0", "", {}, "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw=="], "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "send": ["send@1.2.1", "", { "dependencies": { "debug": "^4.4.3", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.1", "mime-types": "^3.0.2", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.2" } }, "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="], - "seroval": ["seroval@1.5.2", "", {}, "sha512-xcRN39BdsnO9Tf+VzsE7b3JyTJASItIV1FVFewJKCFcW4s4haIKS3e6vj8PGB9qBwC7tnuOywQMdv5N4qkzi7Q=="], + "seroval": ["seroval@1.6.9", "", {}, "sha512-UeEzHwAK+yl0YLbsvROV1t5yMYEwZZ0CfKYxDvUgS2fO9Vxdf8djqVIB+OuVpuawRNPqw68LE1Du/GMsW2ZPqA=="], - "seroval-plugins": ["seroval-plugins@1.5.2", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-qpY0Cl+fKYFn4GOf3cMiq6l72CpuVaawb6ILjubOQ+diJ54LfOWaSSPsaswN8DRPIPW4Yq+tE1k5aKd7ILyaFg=="], + "seroval-plugins": ["seroval-plugins@1.6.9", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-kiDK/Tb8IWZ61WEU8pA2PDmAuw37gKph9Y77OZlD56mg0Y2g0Bg7gZ1HeHhs5d40w+nRoUq/wj08V26ilbez9g=="], "serve-static": ["serve-static@2.2.1", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="], "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], - "shadcn": ["shadcn@4.12.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/plugin-transform-typescript": "^7.28.0", "@babel/preset-typescript": "^7.27.1", "@dotenvx/dotenvx": "^1.48.4", "@modelcontextprotocol/sdk": "^1.26.0", "@types/validate-npm-package-name": "^4.0.2", "browserslist": "^4.26.2", "commander": "^14.0.0", "cosmiconfig": "^9.0.0", "dedent": "^1.6.0", "deepmerge": "^4.3.1", "diff": "^8.0.2", "execa": "^9.6.0", "fast-glob": "^3.3.3", "fs-extra": "^11.3.1", "fuzzysort": "^3.1.0", "kleur": "^4.1.5", "open": "^11.0.0", "ora": "^8.2.0", "postcss": "^8.5.6", "postcss-selector-parser": "^7.1.0", "prompts": "^2.4.2", "recast": "^0.23.11", "stringify-object": "^5.0.0", "tailwind-merge": "^3.0.1", "ts-morph": "^26.0.0", "tsconfig-paths": "^4.2.0", "undici": "^7.27.2", "validate-npm-package-name": "^7.0.1", "zod": "^3.24.1", "zod-to-json-schema": "^3.24.6" }, "bin": { "shadcn": "dist/index.js" } }, "sha512-o781ieQziCnXH2FKsEqxp1fnbHdbgAPO9inTSPeZ59hQfsZXuMGp3ul8oFSV5KQS4nbUK9b+DrDE6C7OvfKKQQ=="], + "shadcn": ["shadcn@4.21.4", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/plugin-transform-typescript": "^7.28.0", "@babel/preset-typescript": "^7.27.1", "@dotenvx/dotenvx": "^1.48.4", "@modelcontextprotocol/sdk": "^1.26.0", "@shadcn/registry": "0.1.3", "@types/validate-npm-package-name": "^4.0.2", "browserslist": "^4.26.2", "cn": "^0.2.4", "commander": "^14.0.0", "dedent": "^1.6.0", "deepmerge": "^4.3.1", "diff": "^8.0.2", "execa": "^9.6.0", "fast-glob": "^3.3.3", "fs-extra": "^11.3.1", "fuzzysort": "^3.1.0", "kleur": "^4.1.5", "open": "^11.0.0", "ora": "^8.2.0", "postcss": "^8.5.23", "postcss-selector-parser": "^7.1.3", "prompts": "^2.4.2", "recast": "^0.23.11", "socks": "^2.8.8", "stringify-object": "^5.0.0", "ts-morph": "^26.0.0", "tsconfig-paths": "^4.2.0", "undici": "^7.29.0", "validate-npm-package-name": "^7.0.1", "zod": "^3.24.1", "zod-to-json-schema": "^3.24.6" }, "bin": { "shadcn": "dist/index.js" } }, "sha512-YYfn/hsHbRH2mGwnKBx9tk+DjTQH+RUMS5iCxjKzwzuJ5uoHPqLOFUCJSeX0sXfrcBSfgQaXiOLGKNLjlIQxxw=="], "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - "shiki": ["shiki@4.3.0", "", { "dependencies": { "@shikijs/core": "4.3.0", "@shikijs/engine-javascript": "4.3.0", "@shikijs/engine-oniguruma": "4.3.0", "@shikijs/langs": "4.3.0", "@shikijs/themes": "4.3.0", "@shikijs/types": "4.3.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-NKKjWzR6LIGL3sXBrWDw9sDS9cxx42/DkysaNqJEeOWE8Kix5gpak0bc00OfDVEO4oyXSyz8+aRaqKoBD1yo7A=="], + "shiki": ["shiki@4.5.0", "", { "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" } }, "sha512-OcRW72ngQvc+MSVWBRIovC/BTW589iUE/Vxav7VeM4RcY9MUjqB+IR6ILG1k9nuW6LiG/nct9uma4/MBtnZbmQ=="], - "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + "side-channel": ["side-channel@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4", "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ=="], "side-channel-list": ["side-channel-list@1.0.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4" } }, "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="], @@ -1953,35 +1691,35 @@ "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], - "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], - "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "sonner": ["sonner@2.0.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], + "smart-buffer": ["smart-buffer@4.2.0", "", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="], + + "socks": ["socks@2.8.10", "", { "dependencies": { "ip-address": "^10.1.1", "smart-buffer": "^4.2.0" } }, "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ=="], + + "sonner": ["sonner@2.0.8", "", { "peerDependencies": { "@types/react": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-UM/ByIoFra8yzV75n1o0Puu0bw5U/9UNnDacrJNspekBewIfsQ3D6ez1nvlWpt7aTsO6rujQtifBpycwIivqlg=="], "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], - "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + "source-map-js": ["source-map-js@1.2.2", "", {}, "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw=="], "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], - "srvx": ["srvx@0.11.15", "", { "bin": { "srvx": "bin/srvx.mjs" } }, "sha512-iXsux0UcOjdvs0LCMa2Ws3WwcDUozA3JN3BquNXkaFPP7TpRqgunKdEgoZ/uwb1J6xaYHfxtz9Twlh6yzwM6Tg=="], + "srvx": ["srvx@0.11.22", "", { "bin": { "srvx": "bin/srvx.mjs" } }, "sha512-LqZxxBDMKuMAZzFzJnDCkFOrs9MZQZr0LvHiO/SuSZVdQaXD7xQ5UWTUxheJrQPve1qk9MG2B/yttUvJxw8egQ=="], "stack-utils": ["stack-utils@2.0.6", "", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="], - "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], - "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], - "std-env": ["std-env@4.0.0", "", {}, "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ=="], + "std-env": ["std-env@4.3.0", "", {}, "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag=="], "stdin-discarder": ["stdin-discarder@0.2.2", "", {}, "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="], - "streamdown": ["streamdown@2.5.0", "", { "dependencies": { "clsx": "^2.1.1", "hast-util-to-jsx-runtime": "^2.3.6", "html-url-attributes": "^3.0.1", "marked": "^17.0.1", "mermaid": "^11.12.2", "rehype-harden": "^1.1.8", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remend": "1.3.0", "tailwind-merge": "^3.4.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-/tTnURfIOxZK/pqJAxsfCvETG/XCJHoWnk3jq9xLcuz6CSpnjjuxSRBTTL4PKGhxiZQf0lqPxGhImdpwcZ2XwA=="], + "streamdown": ["streamdown@2.7.0", "", { "dependencies": { "clsx": "^2.1.1", "hast-util-to-jsx-runtime": "^2.3.6", "html-url-attributes": "^3.0.1", "marked": "^18.0.11", "rehype-harden": "^1.1.8", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remend": "1.4.0", "tailwind-merge": "^3.6.0", "unified": "^11.0.5", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-SHYTCveHpRJfcIC8r+5EANczK21R0iNYo4i7wNaLeLeQjEnaVk4xMFhgV4E/mix69BpFSBui1NOESEXKlZfReA=="], "string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], @@ -2001,17 +1739,15 @@ "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], - "stylis": ["stylis@4.3.6", "", {}, "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ=="], - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "swr": ["swr@2.4.1", "", { "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA=="], + "swr": ["swr@2.5.1", "", { "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-BRw55e8r0B7SpDN20CAzoQAHl7y1yP7/Zt7oqUjMv0vSt2u2Xnkm88Ws+VypbV9BXHQVuSuyVq7zMjO16wSExw=="], - "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], + "systeminformation": ["systeminformation@5.33.15", "", { "os": "!aix", "bin": { "systeminformation": "lib/cli.js" } }, "sha512-s5RloL0F7xhN0ZjfHtLGnbf7EW74EI0N8NFL+1xR7Oxz9QA33obNZsl7lyfnJOhN04E/kGFPoJPlvY7TZ5fzmw=="], - "tailwind-merge": ["tailwind-merge@3.6.0", "", {}, "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w=="], + "tailwind-merge": ["tailwind-merge@3.7.0", "", {}, "sha512-XPPUyAc+cvspz3lHTcR/QgPfW2A0lv/xQNIjX3HGhLR+Nq2lHaLq5MtTesHn8GUr3W3DguT2KT5x3NVgRtYwmA=="], - "tailwindcss": ["tailwindcss@4.3.1", "", {}, "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q=="], + "tailwindcss": ["tailwindcss@4.3.3", "", {}, "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ=="], "tailwindcss-animate": ["tailwindcss-animate@1.0.7", "", { "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="], @@ -2021,19 +1757,19 @@ "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], - "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], + "tinybench": ["tinybench@6.2.2", "", {}, "sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA=="], - "tinyexec": ["tinyexec@1.1.1", "", {}, "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg=="], + "tinyexec": ["tinyexec@1.3.1", "", {}, "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA=="], "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], - "tinypool": ["tinypool@2.1.0", "", {}, "sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw=="], + "tinypool": ["tinypool@2.2.0", "", {}, "sha512-jBrmx4lYmaC9k/mgPbylxs7kBUxHtD8256up+HjLaDFfXScKJQyil+SWXSvhAtT7XHo+yTVlpB81PGmHP8oLSQ=="], - "tinyrainbow": ["tinyrainbow@3.1.0", "", {}, "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw=="], + "tinyrainbow": ["tinyrainbow@3.2.0", "", {}, "sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A=="], - "tldts": ["tldts@7.0.28", "", { "dependencies": { "tldts-core": "^7.0.28" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw=="], + "tldts": ["tldts@7.4.18", "", { "dependencies": { "tldts-core": "^7.4.18" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-somxA8xKAUzlAxl0TX/jMSYIbRNFIVGnI96pVGJPeMc5BsHmfVXn6mOJT6U++ELnl04eGfzpfcEuZe8WiASkXg=="], - "tldts-core": ["tldts-core@7.0.28", "", {}, "sha512-7W5Efjhsc3chVdFhqtaU0KtK32J37Zcr9RKtID54nG+tIpcY79CQK/veYPODxtD/LJ4Lue66jvrQzIX2Z2/pUQ=="], + "tldts-core": ["tldts-core@7.4.18", "", {}, "sha512-KI2PKvCmvQI/xD6ypPqkU0i7oxNXR/O58RLRaHR4svsgVUQ2JE/XC8BtMbG6PSehD27I8sZJRcC1ASnCy6lp3g=="], "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], @@ -2041,16 +1777,14 @@ "tokenlens": ["tokenlens@1.3.1", "", { "dependencies": { "@tokenlens/core": "1.3.0", "@tokenlens/fetch": "1.3.0", "@tokenlens/helpers": "1.3.1", "@tokenlens/models": "1.3.0" } }, "sha512-7oxmsS5PNCX3z+b+z07hL5vCzlgHKkCGrEQjQmWl5l+v5cUrtL7S1cuST4XThaL1XyjbTX8J5hfP0cjDJRkaLA=="], - "tough-cookie": ["tough-cookie@6.0.1", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw=="], + "tough-cookie": ["tough-cookie@6.0.2", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA=="], - "tr46": ["tr46@6.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw=="], + "tr46": ["tr46@7.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-BcDSDW+SIGWVOns1Zm6Yg91q9AEj7eaID0QDY9oIqJD1A8dscNwMcl9Sms2DeuWCNov1X0/oXanHGYQBSLwZsg=="], "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], - "ts-dedent": ["ts-dedent@2.2.0", "", {}, "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ=="], - "ts-morph": ["ts-morph@26.0.0", "", { "dependencies": { "@ts-morph/common": "~0.27.0", "code-block-writer": "^13.0.3" } }, "sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug=="], "ts-node": ["ts-node@10.9.2", "", { "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", "@tsconfig/node16": "^1.0.2", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, "optionalPeers": ["@swc/core", "@swc/wasm"], "bin": { "ts-node": "dist/bin.js", "ts-script": "dist/bin-script-deprecated.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js" } }, "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="], @@ -2059,21 +1793,21 @@ "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="], - "tw-animate-css": ["tw-animate-css@1.4.0", "", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="], - "type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="], + "type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], - "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], + "type-is": ["type-is@2.1.0", "", { "dependencies": { "content-type": "^2.0.0", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA=="], - "typescript-json-schema": ["typescript-json-schema@0.67.4", "", { "dependencies": { "@types/json-schema": "^7.0.15", "@types/node": "^24.10.2", "glob": "^13.0.6", "path-equal": "^1.2.5", "safe-stable-stringify": "^2.5.0", "ts-node": "^10.9.2", "typescript": "~5.9.3", "vm2": "^3.11.3", "yargs": "^18.0.0" }, "bin": { "typescript-json-schema": "bin/typescript-json-schema" } }, "sha512-BhDCVfwGtPKKt9JOBvh6ocmSbEk7ftx7dpqqIpvGNrjzYcUKm8pnYwKSFfNJwqcp/qNTfZr9sKtVyTxx4V9iRA=="], + "typescript": ["typescript@7.0.2", "", { "optionalDependencies": { "@typescript/typescript-aix-ppc64": "7.0.2", "@typescript/typescript-darwin-arm64": "7.0.2", "@typescript/typescript-darwin-x64": "7.0.2", "@typescript/typescript-freebsd-arm64": "7.0.2", "@typescript/typescript-freebsd-x64": "7.0.2", "@typescript/typescript-linux-arm": "7.0.2", "@typescript/typescript-linux-arm64": "7.0.2", "@typescript/typescript-linux-loong64": "7.0.2", "@typescript/typescript-linux-mips64el": "7.0.2", "@typescript/typescript-linux-ppc64": "7.0.2", "@typescript/typescript-linux-riscv64": "7.0.2", "@typescript/typescript-linux-s390x": "7.0.2", "@typescript/typescript-linux-x64": "7.0.2", "@typescript/typescript-netbsd-arm64": "7.0.2", "@typescript/typescript-netbsd-x64": "7.0.2", "@typescript/typescript-openbsd-arm64": "7.0.2", "@typescript/typescript-openbsd-x64": "7.0.2", "@typescript/typescript-sunos-x64": "7.0.2", "@typescript/typescript-win32-arm64": "7.0.2", "@typescript/typescript-win32-x64": "7.0.2" }, "bin": { "tsc": "bin/tsc" } }, "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA=="], - "ufo": ["ufo@1.6.3", "", {}, "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q=="], + "typescript-json-schema": ["typescript-json-schema@0.68.0", "", { "dependencies": { "@types/json-schema": "^7.0.15", "@types/node": "^24.10.2", "glob": "^13.0.6", "path-equal": "^1.2.5", "safe-stable-stringify": "^2.5.0", "ts-node": "^10.9.2", "typescript": "~5.9.3", "yargs": "^18.0.0" }, "bin": { "typescript-json-schema": "bin/typescript-json-schema" } }, "sha512-1X60xXxkZpLAr125Jt5MT9VJTTxT0xfafbjdcbtml26nvpUr2p/P4V34JEXa+ObrHc71W9ksH5pemstY6y+SEw=="], - "undici": ["undici@7.25.0", "", {}, "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ=="], + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], - "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + "undici": ["undici@8.11.2", "", {}, "sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ=="], + + "undici-types": ["undici-types@8.11.2", "", {}, "sha512-iMVNmWZ0leK/goS6eXMizSzmm9CDWtyphwbaCms3DNLqRxDL+mMoNVcZMTyyVgXP0N+Z8neAMzDoUOUJL8veKg=="], "unicorn-magic": ["unicorn-magic@0.3.0", "", {}, "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA=="], @@ -2095,9 +1829,9 @@ "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - "unplugin": ["unplugin@3.0.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg=="], + "unplugin": ["unplugin@3.4.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "picomatch": "^4.0.7", "webpack-virtual-modules": "^0.6.2" }, "peerDependencies": { "@farmfe/core": "*", "@rsbuild/core": "*", "@rspack/core": "*", "bun-types-no-globals": "*", "esbuild": "*", "rolldown": "*", "rollup": "*", "unloader": "*", "vite": "*", "webpack": "*" }, "optionalPeers": ["@farmfe/core", "@rsbuild/core", "@rspack/core", "bun-types-no-globals", "esbuild", "rolldown", "rollup", "unloader", "vite", "webpack"] }, "sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w=="], - "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + "update-browserslist-db": ["update-browserslist-db@1.3.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A=="], "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], @@ -2105,12 +1839,10 @@ "use-stick-to-bottom": ["use-stick-to-bottom@1.1.6", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-z3Up8jYQGTkUCsGBnwg6/wj70KgXoW5Kz1AAc1j8MtQuYMBo6ZsdhrIXoegxa7gaMMilgQYyTohTrt3p94jHog=="], - "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], + "use-sync-external-store": ["use-sync-external-store@1.7.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A=="], "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - "uuid": ["uuid@11.1.0", "", { "bin": { "uuid": "dist/esm/bin/uuid" } }, "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A=="], - "v8-compile-cache-lib": ["v8-compile-cache-lib@3.0.1", "", {}, "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="], "validate-npm-package-name": ["validate-npm-package-name@7.0.2", "", {}, "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A=="], @@ -2123,29 +1855,15 @@ "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], - "vite": ["vite@8.1.0", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.15", "rolldown": "~1.1.2", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.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" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q=="], + "vite": ["vite@8.3.4", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", "postcss": "^8.5.29", "rolldown": "~1.2.12", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.7.1", "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" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ=="], "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], - "vitest": ["vitest@4.1.9", "", { "dependencies": { "@vitest/expect": "4.1.9", "@vitest/mocker": "4.1.9", "@vitest/pretty-format": "4.1.9", "@vitest/runner": "4.1.9", "@vitest/snapshot": "4.1.9", "@vitest/spy": "4.1.9", "@vitest/utils": "4.1.9", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.9", "@vitest/browser-preview": "4.1.9", "@vitest/browser-webdriverio": "4.1.9", "@vitest/coverage-istanbul": "4.1.9", "@vitest/coverage-v8": "4.1.9", "@vitest/ui": "4.1.9", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "./vitest.mjs" } }, "sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ=="], - - "vitest-browser-react": ["vitest-browser-react@2.2.0", "", { "peerDependencies": { "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "vitest": "^4.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-oY3KM6305kwJMa6nHo92vVtkOsih7mjEf12dLKuphaF+9ywWPEc+qanIBd394SZ6m5LadVEaG6dicvvizOzmjA=="], - - "vm2": ["vm2@3.11.5", "", { "dependencies": { "acorn": "^8.15.0", "acorn-walk": "^8.3.4" }, "bin": { "vm2": "bin/vm2" } }, "sha512-RSrkBiwrj6FRU+QdqNs6KG0XdlvJCjpQ4GXiqmMbrhmwfu5k/XIMpAer0L8f6iuf0uJ3a4T1xJN126Q8yf0VIA=="], - - "vscode-jsonrpc": ["vscode-jsonrpc@8.2.0", "", {}, "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA=="], - - "vscode-languageserver": ["vscode-languageserver@9.0.1", "", { "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, "bin": { "installServerIntoExtension": "bin/installServerIntoExtension" } }, "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g=="], + "vitest": ["vitest@5.0.4", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/mocker": "5.0.4", "chai": "^6.3.0", "es-module-lexer": "^2.3.2", "expect-type": "^1.4.0", "magic-string": "^1.4.3", "obug": "^3.0.0", "picomatch": "^4.0.7", "std-env": "^4.3.0", "tinybench": "^6.2.2", "tinyexec": "^1.3.1", "tinyglobby": "^0.2.17", "why-is-node-running": "3.2.1" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "5.0.4", "@vitest/browser-preview": "5.0.4", "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0", "@vitest/coverage-istanbul": "5.0.4", "@vitest/coverage-v8": "5.0.4", "@vitest/ui": "5.0.4", "happy-dom": "*", "jsdom": "*", "vite": "^6.4.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "./vitest.mjs" } }, "sha512-z0WxZRV2Sg48wF0FSgMq3TFG8JS38/Qr96vZVZdX6+Em9raQTvnXQvdTFJe2m3rfyJnEHeHQ/snceIdi8D1pVg=="], - "vscode-languageserver-protocol": ["vscode-languageserver-protocol@3.17.5", "", { "dependencies": { "vscode-jsonrpc": "8.2.0", "vscode-languageserver-types": "3.17.5" } }, "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg=="], + "vitest-browser-react": ["vitest-browser-react@2.3.0", "", { "peerDependencies": { "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "vitest": "^4.0.0 || ^5.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-S5vdGHHA93j2Z6dbmIJI1wtxT3AXPTRlmC1Meo+ekG011yNnEutMAnHrwyj8qFlGhgBYA8ENGK6+o1Q+vnFz6A=="], - "vscode-languageserver-textdocument": ["vscode-languageserver-textdocument@1.0.12", "", {}, "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA=="], - - "vscode-languageserver-types": ["vscode-languageserver-types@3.17.5", "", {}, "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="], - - "vscode-uri": ["vscode-uri@3.1.0", "", {}, "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ=="], - - "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], + "w3c-xmlserializer": ["w3c-xmlserializer@6.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-4Nsy8K5Tr6SPDH9jhKJOHf7ChDrc1zufZTVSF7x72hwuEXBqxqk9G6cK+K2NRUtB3iELRJqjXb4JPDMBjMTl2Q=="], "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], @@ -2155,17 +1873,17 @@ "whatwg-mimetype": ["whatwg-mimetype@5.0.0", "", {}, "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw=="], - "whatwg-url": ["whatwg-url@16.0.1", "", { "dependencies": { "@exodus/bytes": "^1.11.0", "tr46": "^6.0.0", "webidl-conversions": "^8.0.1" } }, "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw=="], + "whatwg-url": ["whatwg-url@17.2.0", "", { "dependencies": { "@exodus/bytes": "^1.16.0", "tr46": "^7.0.0", "webidl-conversions": "^8.0.1" } }, "sha512-IhLIHNcBrzIixC5XXsbr4DxdjajyA5vQ5RwGZMtrUp+GbtE5Nrsge9QKau7jXrC0aTXLYGV0xiW7Tb4YS2aomw=="], "which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], - "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + "why-is-node-running": ["why-is-node-running@3.2.1", "", { "bin": { "why-is-node-running": "cli.js" } }, "sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ=="], "wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - "wsl-utils": ["wsl-utils@0.3.1", "", { "dependencies": { "is-wsl": "^3.1.0", "powershell-utils": "^0.1.0" } }, "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg=="], + "wsl-utils": ["wsl-utils@1.0.1", "", { "dependencies": { "is-wsl": "^3.1.0", "powershell-utils": "^0.2.0" } }, "sha512-c16PKLIRxBYpR3jSWsdS7SFp0COm5SOQdiFjY818dYFHJbMGuLBszpF07LBWmOS1uzrHa9VGdynsEgoeKy0oOQ=="], "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], @@ -2177,127 +1895,71 @@ "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], - "yargs": ["yargs@18.0.0", "", { "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^7.2.0", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" } }, "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg=="], + "yargs": ["yargs@18.2.0", "", { "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" } }, "sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w=="], "yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="], "yn": ["yn@3.1.1", "", {}, "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="], - "yocto-spinner": ["yocto-spinner@1.1.0", "", { "dependencies": { "yoctocolors": "^2.1.1" } }, "sha512-/BY0AUXnS7IKO354uLLA2eRcWiqDifEbd6unXCsOxkFDAkhgUL3PH9X2bFoaU0YchnDXsF+iKleeTLJGckbXfA=="], + "yocto-spinner": ["yocto-spinner@1.2.2", "", { "dependencies": { "yoctocolors": "^2.1.1" } }, "sha512-DODGl1wJjA/s5pnJFKau9lIYHT81lnhob1i3e1TjxZRxEhWRKl74nTbWE6H5KlkViQQTo/Z29YFdxzTZAMY3ng=="], - "yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="], + "yoctocolors": ["yoctocolors@2.2.0", "", {}, "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg=="], - "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], + "zod": ["zod@4.6.6", "", {}, "sha512-4UmzQUF5fxvfcYHlbjBmejU+w+hbDnWFx4aS8kBx7nPBHcO2SqPbpAG8snbdg+Xse4pRefR98hgjFgIMCI/UhA=="], "zod-to-json-schema": ["zod-to-json-schema@3.25.2", "", { "peerDependencies": { "zod": "^3.25.28 || ^4" } }, "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="], "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], - "@ai-sdk/openai/@ai-sdk/provider": ["@ai-sdk/provider@4.0.0", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-fr9Gs89prDWiuox/T+kCA+i2cJkHpxU5S+tr4megjTzRC27ZsvFhwjU/+XrqqMbvBUlfmXxTOYWy8ng45dsjIg=="], - - "@ai-sdk/openai/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@5.0.1", "", { "dependencies": { "@ai-sdk/provider": "4.0.0", "@standard-schema/spec": "^1.1.0", "@workflow/serde": "4.1.0", "eventsource-parser": "^3.0.8" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-p9Ra+dN4jjHrssXvklNf4nFvWbj1KePMfUOs7nue0NuoIMbYFBULhX4Vu0+6DWLnw3+UsLL9+RCKLtzzU43Qpg=="], - - "@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], - - "@ai-sdk/provider-utils/eventsource-parser": ["eventsource-parser@3.0.8", "", {}, "sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ=="], + "@ai-sdk/provider-utils/undici": ["undici@7.30.0", "", {}, "sha512-dkrQXeHSaoamnItlYbmzG0wFYrM0ZwDxCIg0A7aKjTyyhh9svRzCNFEzV+Vm05/yehjCzjDZ31KXfGEjYSztDQ=="], "@babel/code-frame/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "@base-ui/react/@babel/runtime": ["@babel/runtime@8.0.7", "", {}, "sha512-k0hagDDq/6w4v+0Sp4wFvIz/yswH5O7Va6aRTnD7N62Tnborp4X+YB+H3XUcWVSR4aE47WPEXiIIZchBs0GmYg=="], + + "@base-ui/utils/@babel/runtime": ["@babel/runtime@8.0.7", "", {}, "sha512-k0hagDDq/6w4v+0Sp4wFvIz/yswH5O7Va6aRTnD7N62Tnborp4X+YB+H3XUcWVSR4aE47WPEXiIIZchBs0GmYg=="], + "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], "@dotenvx/dotenvx/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], "@dotenvx/dotenvx/execa": ["execa@5.1.1", "", { "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" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], - "@jest/pattern/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], - - "@jest/types/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], + "@dotenvx/dotenvx/open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], - "@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - - "@modelcontextprotocol/sdk/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], - - "@modelcontextprotocol/sdk/zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], - - "@radix-ui/react-alert-dialog/@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw=="], - - "@radix-ui/react-dialog/@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="], - - "@radix-ui/react-dialog/@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="], - - "@radix-ui/react-dialog/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="], - - "@radix-ui/react-dialog/@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg=="], - - "@radix-ui/react-dialog/@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw=="], + "@dotenvx/dotenvx/undici": ["undici@7.30.0", "", {}, "sha512-dkrQXeHSaoamnItlYbmzG0wFYrM0ZwDxCIg0A7aKjTyyhh9svRzCNFEzV+Vm05/yehjCzjDZ31KXfGEjYSztDQ=="], - "@radix-ui/react-dialog/@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw=="], + "@jest/pattern/@types/node": ["@types/node@26.6.5", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg=="], - "@radix-ui/react-dialog/@radix-ui/react-id": ["@radix-ui/react-id@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg=="], + "@jest/types/@types/node": ["@types/node@26.6.5", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg=="], - "@radix-ui/react-dialog/@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ=="], - - "@radix-ui/react-dialog/@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.5", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ=="], - - "@radix-ui/react-dialog/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="], - - "@radix-ui/react-dialog/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], - - "@radix-ui/react-dialog/@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.2", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg=="], + "@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], - "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], - - "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], - - "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], - - "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], - - "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], + "@shadcn/registry/undici": ["undici@7.30.0", "", {}, "sha512-dkrQXeHSaoamnItlYbmzG0wFYrM0ZwDxCIg0A7aKjTyyhh9svRzCNFEzV+Vm05/yehjCzjDZ31KXfGEjYSztDQ=="], - "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "@tanstack/react-router/@tanstack/react-store": ["@tanstack/react-store@0.9.3", "", { "dependencies": { "@tanstack/store": "0.9.3", "use-sync-external-store": "^1.6.0" }, "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" } }, "sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg=="], - - "@tanstack/react-router/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], - - "@tanstack/react-start-client/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], - - "@tanstack/react-start-rsc/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], - - "@tanstack/react-start-server/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], - - "@tanstack/router-core/@tanstack/history": ["@tanstack/history@1.161.6", "", {}, "sha512-NaOGLRrddszbQj9upGat6HG/4TKvXLvu+osAIgfxPYA+eIvYKv8GKDJOrY2D3/U9MRnKfMWD7bU4jeD4xmqyIg=="], - - "@tanstack/router-devtools-core/@tanstack/router-core": ["@tanstack/router-core@1.171.2", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-sUd+BhGYkBF64LVhmOHnYsc1AutPNch/huohEXiXL4IUgmk17Gy+RkUazvjQhptVdYW5QT+qtATrUr2cQZNHFA=="], - - "@tanstack/router-generator/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], - - "@tanstack/router-plugin/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], + "@shadcn/registry/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@tanstack/router-utils/tinyglobby": ["tinyglobby@0.2.16", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg=="], + "@tailwindcss/node/lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], - "@tanstack/start-client-core/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], + "@tailwindcss/node/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "@tanstack/start-client-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" }, "bundled": true }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], - "@tanstack/start-plugin-core/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], - "@tanstack/start-plugin-core/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], - "@tanstack/start-plugin-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.5", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" }, "bundled": true }, "sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA=="], - "@tanstack/start-plugin-core/tinyglobby": ["tinyglobby@0.2.16", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg=="], + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.4", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A=="], - "@tanstack/start-server-core/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], - - "@tanstack/start-server-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@tanstack/start-storage-context/@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], + "@tanstack/router-generator/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "@testing-library/dom/aria-query": ["aria-query@5.3.0", "", { "dependencies": { "dequal": "^2.0.3" } }, "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A=="], @@ -2305,91 +1967,81 @@ "@testing-library/dom/pretty-format": ["pretty-format@27.5.1", "", { "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" } }, "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ=="], - "@vitest/expect/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + "@types/node/undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], - "ajv-formats/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], + "body-parser/content-type": ["content-type@2.1.0", "", {}, "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag=="], - "bun-types/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], + "bun-types/@types/node": ["@types/node@26.6.5", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg=="], - "cmdk/@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="], + "conf/ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], - "cmdk/@radix-ui/react-id": ["@radix-ui/react-id@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg=="], + "conf/json-schema-typed": ["json-schema-typed@7.0.3", "", {}, "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="], - "cmdk/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="], + "conf/semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - "cytoscape-fcose/cose-base": ["cose-base@2.2.0", "", { "dependencies": { "layout-base": "^2.0.0" } }, "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g=="], - - "d3-dsv/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + "dot-prop/is-obj": ["is-obj@2.0.0", "", {}, "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="], - "d3-dsv/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "enquirer/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "d3-sankey/d3-array": ["d3-array@2.12.1", "", { "dependencies": { "internmap": "^1.0.0" } }, "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ=="], - - "d3-sankey/d3-shape": ["d3-shape@1.3.7", "", { "dependencies": { "d3-path": "1" } }, "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw=="], + "express/content-type": ["content-type@2.1.0", "", {}, "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag=="], "hast-util-from-html/parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], "hast-util-raw/parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + "is-inside-container/is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], + "jest-diff/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], "jest-matcher-utils/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], "jest-message-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-mock/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], + "jest-mock/@types/node": ["@types/node@26.6.5", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg=="], - "jest-util/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], + "jest-util/@types/node": ["@types/node@26.6.5", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg=="], "jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "katex/commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], - "log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="], - "make-dir/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], - "mermaid/marked": ["marked@16.4.2", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA=="], - "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + "negotiator/content-type": ["content-type@2.1.0", "", {}, "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag=="], + "npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="], + "onetime/mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], - "radix-ui/@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw=="], - - "react-day-picker/date-fns": ["date-fns@4.1.0", "", {}, "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="], - "recast/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], "restore-cursor/onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="], - "shadcn/undici": ["undici@7.28.0", "", {}, "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA=="], + "shadcn/undici": ["undici@7.30.0", "", {}, "sha512-dkrQXeHSaoamnItlYbmzG0wFYrM0ZwDxCIg0A7aKjTyyhh9svRzCNFEzV+Vm05/yehjCzjDZ31KXfGEjYSztDQ=="], "shadcn/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "streamdown/tailwind-merge": ["tailwind-merge@3.5.0", "", {}, "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A=="], - - "strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "strip-ansi/ansi-regex": ["ansi-regex@6.4.0", "", {}, "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw=="], "ts-node/diff": ["diff@4.0.4", "", {}, "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ=="], - "typescript-json-schema/typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "type-is/content-type": ["content-type@2.1.0", "", {}, "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag=="], - "vitest/vite": ["vite@8.0.16", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.15", "rolldown": "1.0.3", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.18", "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" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw=="], + "typescript-json-schema/typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], "wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], - "@ai-sdk/openai/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + "wsl-utils/is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], - "@ai-sdk/openai/@ai-sdk/provider-utils/eventsource-parser": ["eventsource-parser@3.0.8", "", {}, "sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ=="], + "yargs/string-width": ["string-width@8.3.0", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ=="], "@dotenvx/dotenvx/execa/get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], @@ -2403,88 +2055,40 @@ "@dotenvx/dotenvx/execa/strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], - "@jest/pattern/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], - - "@jest/types/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], - - "@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - - "@radix-ui/react-dialog/@radix-ui/react-dismissable-layer/@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], - - "@radix-ui/react-dialog/@radix-ui/react-dismissable-layer/@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.1", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g=="], - - "@radix-ui/react-dialog/@radix-ui/react-focus-scope/@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], - - "@radix-ui/react-dialog/@radix-ui/react-id/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], - - "@radix-ui/react-dialog/@radix-ui/react-portal/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], - - "@radix-ui/react-dialog/@radix-ui/react-presence/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], - - "@radix-ui/react-dialog/@radix-ui/react-use-controllable-state/@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA=="], - - "@radix-ui/react-dialog/@radix-ui/react-use-controllable-state/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], - - "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + "@dotenvx/dotenvx/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], - "@tanstack/react-router/@tanstack/react-store/@tanstack/store": ["@tanstack/store@0.9.3", "", {}, "sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw=="], + "@jest/pattern/@types/node/undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], - "@tanstack/react-router/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], + "@jest/types/@types/node/undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], - "@tanstack/react-router/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], - - "@tanstack/react-start-client/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], - - "@tanstack/react-start-client/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], - - "@tanstack/react-start-rsc/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], - - "@tanstack/react-start-rsc/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], - - "@tanstack/react-start-server/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], - - "@tanstack/react-start-server/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], - - "@tanstack/router-devtools-core/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], - - "@tanstack/router-devtools-core/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], - - "@tanstack/router-generator/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], - - "@tanstack/router-generator/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], + "@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@tanstack/router-plugin/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], + "@tailwindcss/node/lightningcss/lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], - "@tanstack/router-plugin/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], + "@tailwindcss/node/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], - "@tanstack/start-client-core/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], + "@tailwindcss/node/lightningcss/lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], - "@tanstack/start-plugin-core/@babel/code-frame/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + "@tailwindcss/node/lightningcss/lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], - "@tanstack/start-plugin-core/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], + "@tailwindcss/node/lightningcss/lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], - "@tanstack/start-server-core/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], + "@tailwindcss/node/lightningcss/lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], - "@tanstack/start-storage-context/@tanstack/router-core/seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], + "@tailwindcss/node/lightningcss/lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], - "@tanstack/start-storage-context/@tanstack/router-core/seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], + "@tailwindcss/node/lightningcss/lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], - "@testing-library/dom/pretty-format/react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="], + "@tailwindcss/node/lightningcss/lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], - "bun-types/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], + "@tailwindcss/node/lightningcss/lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], - "cmdk/@radix-ui/react-id/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], + "@tailwindcss/node/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], - "cmdk/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="], + "bun-types/@types/node/undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], "cross-spawn/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "cytoscape-fcose/cose-base/layout-base": ["layout-base@2.0.1", "", {}, "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="], - - "d3-sankey/d3-array/internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], - - "d3-sankey/d3-shape/d3-path": ["d3-path@1.0.9", "", {}, "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="], - "hast-util-from-html/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], "hast-util-raw/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], @@ -2495,54 +2099,10 @@ "jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-mock/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], + "jest-mock/@types/node/undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], - "jest-util/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], + "jest-util/@types/node/undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], "jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - - "vitest/vite/rolldown": ["rolldown@1.0.3", "", { "dependencies": { "@oxc-project/types": "=0.133.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.3", "@rolldown/binding-darwin-arm64": "1.0.3", "@rolldown/binding-darwin-x64": "1.0.3", "@rolldown/binding-freebsd-x64": "1.0.3", "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", "@rolldown/binding-linux-arm64-gnu": "1.0.3", "@rolldown/binding-linux-arm64-musl": "1.0.3", "@rolldown/binding-linux-ppc64-gnu": "1.0.3", "@rolldown/binding-linux-s390x-gnu": "1.0.3", "@rolldown/binding-linux-x64-gnu": "1.0.3", "@rolldown/binding-linux-x64-musl": "1.0.3", "@rolldown/binding-openharmony-arm64": "1.0.3", "@rolldown/binding-wasm32-wasi": "1.0.3", "@rolldown/binding-win32-arm64-msvc": "1.0.3", "@rolldown/binding-win32-x64-msvc": "1.0.3" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g=="], - - "vitest/vite/rolldown/@oxc-project/types": ["@oxc-project/types@0.133.0", "", {}, "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA=="], - - "vitest/vite/rolldown/@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.3", "", { "os": "android", "cpu": "arm64" }, "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw=="], - - "vitest/vite/rolldown/@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA=="], - - "vitest/vite/rolldown/@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg=="], - - "vitest/vite/rolldown/@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g=="], - - "vitest/vite/rolldown/@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.3", "", { "os": "linux", "cpu": "arm" }, "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw=="], - - "vitest/vite/rolldown/@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw=="], - - "vitest/vite/rolldown/@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q=="], - - "vitest/vite/rolldown/@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.0.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg=="], - - "vitest/vite/rolldown/@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.0.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg=="], - - "vitest/vite/rolldown/@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg=="], - - "vitest/vite/rolldown/@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow=="], - - "vitest/vite/rolldown/@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg=="], - - "vitest/vite/rolldown/@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.3", "", { "dependencies": { "@emnapi/core": "1.10.0", "@emnapi/runtime": "1.10.0", "@napi-rs/wasm-runtime": "^1.1.4" }, "cpu": "none" }, "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg=="], - - "vitest/vite/rolldown/@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g=="], - - "vitest/vite/rolldown/@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.3", "", { "os": "win32", "cpu": "x64" }, "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA=="], - - "vitest/vite/rolldown/@rolldown/binding-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], - - "vitest/vite/rolldown/@rolldown/binding-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], - - "vitest/vite/rolldown/@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], - - "vitest/vite/rolldown/@rolldown/binding-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], - - "vitest/vite/rolldown/@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], } } diff --git a/mcp/README.md b/mcp/README.md index bbbb52c..eaaf18d 100644 --- a/mcp/README.md +++ b/mcp/README.md @@ -1,10 +1,10 @@ # Commandly MCP Server -A Model Context Protocol (MCP) server that provides access to CLI tool specifications and command generation capabilities from the Commandly tool collection. +A Model Context Protocol (MCP) server that provides access to CLI tool specifications from the Commandly tool collection. ## Tools -This MCP server exposes 3 main tools: +This MCP server exposes 2 tools: ### 1. `get-tools-list` @@ -12,7 +12,7 @@ Get a list of all available CLI tools with basic information. **Parameters:** None -**Returns:** JSON array of tools with name, displayName, description, category, tags, supportedInput, and supportedOutput. +**Returns:** JSON array with `binaryName`, `displayName`, `description`, and `metadata` for every tool in the collection. ### 2. `get-tool-details` @@ -22,19 +22,7 @@ Get detailed information about a specific CLI tool including all commands and pa - `toolName` (string): Name of the tool to get details for -**Returns:** Complete tool specification in flat JSON structure including commands, parameters, exclusion groups, etc. - -### 3. `generate-command` - -Generate a command string for a specific tool and command with given parameters. - -**Parameters:** - -- `toolName` (string): Name of the tool -- `commandName` (string): Name of the command to execute -- `parameters` (object, optional): Parameters to pass to the command (key-value pairs) - -**Returns:** JSON object with generated command string and metadata. +**Returns:** Complete tool specification, including commands, parameters, exclusion groups, etc. ## Usage @@ -54,14 +42,14 @@ Once connected, you can ask the LLM to: - "Show me all available CLI tools" - "Get detailed information about the subfinder tool" -- "Generate a subfinder command to find subdomains for example.com" -- "What parameters does the nmap tool support?" +- "What parameters does the nuclei tool support?" +- "Does httpx have a flag for following redirects?" The MCP server will automatically load and parse tool specifications from the `public/tools-collection/` directory. ## Tool Collection Format -Tools are stored as JSON files in the flat format used by Commandly, which includes: +Tools are stored as JSON files in the Commandly format, which includes: - Tool metadata (name, description, version, etc.) - Commands and subcommands with hierarchical relationships diff --git a/mcp/index.ts b/mcp/index.ts index 459ca28..1eda386 100644 --- a/mcp/index.ts +++ b/mcp/index.ts @@ -1,7 +1,7 @@ import { readFileSync, readdirSync } from "fs"; import { join } from "path"; -import { type Tool } from "@/components/commandly/types/flat"; +import { type Tool } from "@/components/commandly/types/tool"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; diff --git a/package.json b/package.json index a37c920..f48401e 100644 --- a/package.json +++ b/package.json @@ -15,92 +15,95 @@ "mcp": "bun run mcp/index.ts", "registry:build": "shadcn build", "specification:build": "bun run ./scripts/generate-specification.ts", - "start": "bun run ./.output/server/index.mjs", + "start": "bun run ./dist/server/server.js", "test": "vitest run --config ./vitest.config.ts", "test:ui": "vitest --ui", "test:watch": "vitest --config ./vitest.config.ts", - "tools:build": "bun run ./scripts/generate-tools-json.ts" + "tools:build": "bun run ./scripts/generate-tools-json.ts", + "tools:validate": "bun run ./scripts/validate-tool-collection.ts public/tools-collection/*.json" }, "dependencies": { - "@ai-sdk/anthropic": "^3.0.85", - "@ai-sdk/google": "^3.0.83", - "@ai-sdk/groq": "^3.0.42", - "@ai-sdk/mistral": "^3.0.40", - "@ai-sdk/openai": "^4.0.2", - "@ai-sdk/react": "3.0.210", - "@ai-sdk/xai": "^3.0.96", - "@base-ui/react": "^1.6.0", + "@ai-sdk/anthropic": "^4.0.78", + "@ai-sdk/google": "^4.0.93", + "@ai-sdk/groq": "^4.0.59", + "@ai-sdk/mistral": "^4.0.62", + "@ai-sdk/openai": "4.0.91", + "@ai-sdk/react": "4.0.140", + "@ai-sdk/xai": "^5.0.20", + "@base-ui/react": "^1.9.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", - "@modelcontextprotocol/sdk": "^1.29.0", - "@openrouter/ai-sdk-provider": "^2.10.0", - "@radix-ui/react-hover-card": "^1.1.17", - "@radix-ui/react-label": "^2.1.10", - "@radix-ui/react-select": "^2.3.1", - "@radix-ui/react-slot": "^1.3.0", - "@tailwindcss/postcss": "^4.3.1", - "@tailwindcss/vite": "^4.3.1", - "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-query": "^5.101.2", - "@tanstack/react-router": "1.170.16", - "@tanstack/react-router-with-query": "1.130.17", - "@tanstack/react-start": "^1.168.26", - "ai": "^6.0.208", + "@modelcontextprotocol/sdk": "^1.32.1", + "@openrouter/ai-sdk-provider": "^3.1.0", + "@radix-ui/react-hover-card": "^1.2.0", + "@radix-ui/react-label": "^2.1.17", + "@radix-ui/react-select": "^2.4.0", + "@radix-ui/react-slot": "^1.5.0", + "@tailwindcss/postcss": "^4.3.3", + "@tailwindcss/vite": "^4.3.3", + "@tanstack/react-pacer": "^0.24.1", + "@tanstack/react-router": "1.170.42", + "@tanstack/react-start": "^1.168.61", + "@tanstack/router-core": "1.171.35", + "ai": "^7.0.137", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.4.0", - "jsonpath-plus": "^10.4.0", - "lucide-react": "^1.22.0", - "motion": "^12.42.0", + "jsonpath-plus": "^11.2.0", + "lucide-react": "^1.55.0", + "motion": "^14.1.0", "next-themes": "^0.4.6", - "nuqs": "^2.8.9", - "radix-ui": "^1.6.0", - "react": "^19.2.7", - "react-day-picker": "^10.0.1", - "react-dom": "^19.2.7", - "sonner": "^2.0.7", - "streamdown": "^2.5.0", - "tailwind-merge": "^3.6.0", - "tailwindcss": "^4.3.1", + "nuqs": "^2.10.2", + "radix-ui": "^1.8.0", + "react": "^19.3.0", + "react-day-picker": "^10.0.2", + "react-dom": "^19.3.0", + "sonner": "^2.0.8", + "streamdown": "^2.7.0", + "tailwind-merge": "^3.7.0", + "tailwindcss": "^4.3.3", "tailwindcss-animate": "^1.0.7", "tokenlens": "^1.3.1", "tw-animate-css": "^1.4.0", "use-stick-to-bottom": "^1.1.6", - "zod": "^4.4.3" + "zod": "^4.6.6" }, "devDependencies": { "@mdx-js/rollup": "^3.1.1", - "@tanstack/react-query-devtools": "^5.101.2", - "@tanstack/react-router-devtools": "1.167.0", - "@tanstack/router-plugin": "1.168.18", - "@testing-library/jest-dom": "^6.9.1", - "@testing-library/react": "^16.3.2", - "@testing-library/user-event": "^14.6.1", - "@types/bun": "^1.3.14", + "@tanstack/router-plugin": "1.168.43", + "@testing-library/jest-dom": "^7.0.1", + "@testing-library/react": "^16.3.3", + "@testing-library/user-event": "^14.6.7", + "@types/bun": "^1.4.3", "@types/jest": "^30.0.0", "@types/json-schema": "^7.0.15", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", - "@typescript/native-preview": "^7.0.0-dev.20260504.1", - "@vitejs/plugin-react": "^6.0.3", - "@vitest/coverage-v8": "4.1.9", + "@types/react": "^19.3.0", + "@types/react-dom": "^19.3.0", + "@typescript/native-preview": "^7.0.0-dev.20260707.2", + "@vitejs/plugin-react": "^6.1.2", + "@vitest/coverage-v8": "5.0.4", "ajv": "^8.20.0", "fake-indexeddb": "^6.2.5", - "jsdom": "^29.1.1", - "oxfmt": "^0.56.0", - "oxlint": "^1.71.0", - "oxlint-tsgolint": "^0.23.0", - "rehype-pretty-code": "^0.14.3", + "jsdom": "^30.1.2", + "oxfmt": "^0.72.0", + "oxlint": "^1.87.0", + "oxlint-tsgolint": "^7.0.2004", + "rehype-pretty-code": "^0.14.5", "remark-gfm": "^4.0.1", - "shadcn": "^4.12.0", - "shiki": "^4.3.0", - "typescript": "^6.0.3", - "typescript-json-schema": "^0.67.4", - "vite": "^8.1.0", - "vitest": "^4.1.9", - "vitest-browser-react": "^2.2.0" + "shadcn": "^4.21.4", + "shiki": "^4.5.0", + "typescript": "^7.0.2", + "typescript-json-schema": "^0.68.0", + "vite": "^8.3.4", + "vitest": "^5.0.4", + "vitest-browser-react": "^2.3.0" + }, + "overrides": { + "@modelcontextprotocol/sdk": { + "zod": "^4.4.3" + } } } diff --git a/public/r/command-tree.json b/public/r/command-tree.json new file mode 100644 index 0000000..e2591f7 --- /dev/null +++ b/public/r/command-tree.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "command-tree", + "title": "Command Tree", + "description": "A searchable command tree for navigating a tool's commands and subcommands.", + "dependencies": [ + "react", + "lucide-react" + ], + "registryDependencies": [ + "badge", + "collapsible", + "input", + "scroll-area" + ], + "files": [ + { + "path": "registry/commandly/command-tree.tsx", + "content": "import { Command, Tool } from \"@/components/commandly/types/tool\";\nimport {\n getCommandPath,\n getAllCommands,\n isInheritedParameter,\n} from \"@/components/commandly/utils/tool\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"@/components/ui/collapsible\";\nimport { Input } from \"@/components/ui/input\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { cn } from \"@/lib/utils\";\nimport { ChevronRightIcon, FolderIcon, KeyboardIcon, SearchIcon, TerminalIcon } from \"lucide-react\";\nimport { useMemo, useState } from \"react\";\n\n/** The parameter-count badge shown beside a command in the tree. */\nexport function CountBadge({\n count,\n variant = \"secondary\",\n}: {\n count: number;\n variant?: \"secondary\" | \"outline\";\n}) {\n if (count <= 0) return null;\n return (\n \n {count}\n \n );\n}\n\n/** A command matches on the path its result row shows, plus what it does and its other names. */\nconst matches = (command: Command, path: string, query: string): boolean => {\n const haystack = [path, command.description, ...(command.aliases ?? [])]\n .filter(Boolean)\n .join(\" \")\n .toLowerCase();\n return haystack.includes(query);\n};\n\ninterface CommandNodeProps {\n command: Command;\n /** How many ancestors the row is nested under; drives its indent. */\n depth: number;\n selectedCommand?: Command | null;\n onSelectCommand: (command: Command | null) => void;\n}\n\n/** One row of the tree, and for a branch command the subtree it opens. */\nfunction CommandNode({ command, depth, selectedCommand, onSelectCommand }: CommandNodeProps) {\n const [open, setOpen] = useState(true);\n\n const subcommands = command.commands ?? [];\n const isSelected = selectedCommand?.key === command.key;\n const parameterCount = command.parameters?.length ?? 0;\n\n const rowClass = cn(\n \"flex w-full items-center gap-1.5 rounded px-2 py-1.5 text-left text-sm hover:bg-muted\",\n isSelected && \"bg-muted font-medium\",\n );\n\n const label = (\n \n {command.displayName}\n {command.interactive && (\n \n )}\n {parameterCount > 0 && }\n \n );\n\n if (subcommands.length === 0) {\n return (\n onSelectCommand(command)}\n title={command.description}\n >\n {label}\n \n );\n }\n\n return (\n \n onSelectCommand(command)}\n title={command.description}\n >\n \n {label}\n \n \n {subcommands.map((subcommand) => (\n \n ))}\n \n \n );\n}\n\ninterface CommandTreeProps {\n tool: Tool;\n selectedCommand?: Command | null;\n onSelectCommand: (command: Command | null) => void;\n className?: string;\n}\n\nexport function CommandTree({\n tool,\n selectedCommand,\n onSelectCommand,\n className,\n}: CommandTreeProps) {\n const [query, setQuery] = useState(\"\");\n const normalizedQuery = query.trim().toLowerCase();\n\n const searchResults = useMemo(\n () =>\n normalizedQuery\n ? getAllCommands(tool).filter((command) =>\n matches(command, getCommandPath(command, tool), normalizedQuery),\n )\n : [],\n [normalizedQuery, tool],\n );\n\n const rootParameterCount = tool.parameters.filter((parameter) => !parameter.recursive).length;\n const inheritedParameterCount = tool.parameters.filter(isInheritedParameter).length;\n const isRootSelected = selectedCommand === null;\n\n return (\n // `h-full` lets a bounded parent cap the tree, so a long one scrolls here instead of\n // stretching the page.\n

\n
\n \n setQuery(event.target.value)}\n placeholder=\"Search commands\"\n aria-label=\"Search commands\"\n className=\"pl-8\"\n />\n
\n\n \n
\n {normalizedQuery ? (\n searchResults.length === 0 ? (\n

No command found.

\n ) : (\n searchResults.map((command) => (\n onSelectCommand(command)}\n title={command.description}\n >\n {getCommandPath(command, tool)}\n \n ))\n )\n ) : (\n <>\n onSelectCommand(null)}\n >\n \n {tool.binaryName}\n \n \n \n {tool.commands.map((command) => (\n \n ))}\n \n )}\n
\n
\n\n {tool.commands.length > 0 && (\n

\n \n {getAllCommands(tool).length} commands\n

\n )}\n
\n );\n}\n", + "type": "registry:component", + "target": "components/commandly/command-tree.tsx" + }, + { + "path": "registry/commandly/types/tool.ts", + "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Human-readable display name of the command. */\n displayName: string;\n /** Alternate spellings that invoke this command in place of its name. */\n aliases?: string[];\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters accepted by this command. Keys are unique among them. Omit for grouping commands. */\n parameters?: Parameter[];\n /** Groups of this command's parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Subcommands nested beneath this command. */\n commands?: Command[];\n}\n\nexport type InstallationMethod = \"package_manager\" | \"binary\" | \"docker\" | \"script\";\n\nexport interface InstallationSource {\n /** Unique identifier for this installation source within the tool. */\n key: string;\n /** How the tool is installed. */\n method: InstallationMethod;\n /** Package manager name, set only when method is \"package_manager\" (e.g. \"brew\", \"go\"). */\n manager?: string;\n /** The command that installs the tool. */\n command: string;\n /** Documentation URL describing this installation method. */\n url?: string;\n /** Platforms this installation method applies to. */\n os?: Array<\"linux\" | \"macos\" | \"windows\">;\n /** Additional context for this installation source. */\n note?: string;\n}\n\nexport interface Installation {\n /** The list of documented ways to install the tool. */\n sources: InstallationSource[];\n}\n\nexport interface InstallationMethodOption {\n method: InstallationMethod;\n /** Human-readable label for the method. */\n label: string;\n}\n\n/** The methods in presentation order; a new method must be given a position here. */\nexport const INSTALLATION_METHODS: InstallationMethodOption[] = [\n { method: \"package_manager\", label: \"Package manager\" },\n { method: \"binary\", label: \"Release binary\" },\n { method: \"docker\", label: \"Docker\" },\n { method: \"script\", label: \"Script\" },\n];\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier among its command's parameters. For flags and options this is the full flag, dashes included (e.g. \"--output\", \"-list\"). */\n key: string;\n /** Human-readable display name of the parameter. */\n displayName: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Short names and other alternate invocation forms (e.g. [\"-o\"]). The full flag is `key`. */\n aliases?: string[];\n /** Whether this parameter is also accessible from the subcommands of its command, recursively. */\n recursive?: boolean;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Human-readable name for this exclusion group. */\n displayName: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** Structured installation instructions for the tool. */\n installation?: Installation;\n /**\n * Parameters accepted by the tool itself, before a command is chosen. A tool's own flags live\n * here; do not model the root invocation as a command named after the binary, or the root would\n * be described twice.\n */\n parameters: Parameter[];\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Groups of the tool's own parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "type": "registry:file", + "target": "components/commandly/types/tool.ts" + }, + { + "path": "registry/commandly/utils/tool.ts", + "content": "import type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/tool\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nconst flattenCommands = (commands: Command[], sink: Command[] = []): Command[] => {\n for (const command of commands) {\n sink.push(command);\n if (command.commands?.length) flattenCommands(command.commands, sink);\n }\n return sink;\n};\n\n/** Every command in the tool, depth-first, each parent before its children. */\nexport const getAllCommands = (tool: Tool): Command[] => flattenCommands(tool.commands ?? []);\n\n/** Every command beneath `command`, depth-first. */\nexport const getAllSubcommands = (command: Command): Command[] =>\n flattenCommands(command.commands ?? []);\n\n/** The command with this key anywhere in the tree. */\nexport const findCommand = (tool: Tool, key: string): Command | undefined =>\n getAllCommands(tool).find((command) => command.key === key);\n\n/**\n * The command to show when the caller has not chosen one: the command named after the binary when\n * there is one, otherwise the first command in the tree.\n */\nexport const getDefaultCommand = (tool: Tool): Command | null => {\n const commands = getAllCommands(tool);\n return (\n commands.find(\n (command) => command.displayName.toLowerCase() === tool.binaryName.toLowerCase(),\n ) ??\n commands[0] ??\n null\n );\n};\n\n/** The chain of commands from the outermost ancestor down to the one with this key. */\nexport const getCommandChain = (tool: Tool, key: string): Command[] => {\n const walk = (commands: Command[], path: Command[]): Command[] | null => {\n for (const command of commands) {\n const next = [...path, command];\n if (command.key === key) return next;\n const found = walk(command.commands ?? [], next);\n if (found) return found;\n }\n return null;\n };\n return walk(tool.commands ?? [], []) ?? [];\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const chain = getCommandChain(tool, command.key);\n if (chain.length === 0) return command.displayName;\n return chain.map((step) => step.displayName).join(\" \");\n};\n\n/**\n * A recursive parameter is inherited: it belongs to its command and to every command below it.\n * Root-scoped, it is inherited by the whole tree.\n */\nexport const isInheritedParameter = (param: Parameter): boolean => param.recursive === true;\n\n/**\n * Resolves the parameters that apply to the currently selected command: its own parameters,\n * plus those inherited from its ancestors via `recursive`, outermost ancestor first.\n */\nexport const resolveApplicableParameters = (\n tool: Tool,\n selectedCommand?: Command | null,\n): Parameter[] => {\n const rootParameters = tool.parameters ?? [];\n\n if (!selectedCommand) return rootParameters;\n\n // Tool-level recursive parameters are inherited by every command in the tree.\n const resolved: Parameter[] = rootParameters.filter(isInheritedParameter);\n const chain = getCommandChain(tool, selectedCommand.key);\n\n for (const command of chain) {\n for (const parameter of command.parameters ?? []) {\n if (command.key === selectedCommand.key || parameter.recursive) {\n resolved.push(parameter);\n }\n }\n }\n\n return resolved;\n};\n\n/** The parameters declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getCommandParameters = (tool: Tool, commandKey: string | null): Parameter[] => {\n if (commandKey === null) return tool.parameters ?? [];\n return findCommand(tool, commandKey)?.parameters ?? [];\n};\n\n/** The exclusion groups declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getExclusionGroups = (tool: Tool, commandKey: string | null): ExclusionGroup[] => {\n if (commandKey === null) return tool.exclusionGroups ?? [];\n return findCommand(tool, commandKey)?.exclusionGroups ?? [];\n};\n\n/** Every exclusion group in the tool, root invocation first, in command order. */\nexport const getAllExclusionGroups = (tool: Tool): ExclusionGroup[] =>\n (tool.exclusionGroups ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.exclusionGroups ?? []),\n );\n\n/** Whether a parameter's current value counts as provided. */\nexport const hasParameterValue = (value: ParameterValue | undefined): boolean =>\n value !== undefined &&\n value !== \"\" &&\n value !== false &&\n !(Array.isArray(value) && value.every((entry) => entry === \"\"));\n\n/**\n * The exclusion groups that constrain a selection: those with at least one member among the\n * parameters that apply to `selectedCommand`.\n */\nexport const resolveExclusionGroups = (\n tool: Tool,\n selectedCommand?: Command | null,\n): ExclusionGroup[] => {\n const applicable = new Set(resolveApplicableParameters(tool, selectedCommand).map((p) => p.key));\n return getAllExclusionGroups(tool).filter((group) =>\n group.parameterKeys.some((key) => applicable.has(key)),\n );\n};\n\n/**\n * The parameters a mutually exclusive group rules out, keyed by parameter, given what is\n * provided. Its members are alternatives to one another, so once one is provided every other\n * member is ruled out; the first provided member of each group keeps its place.\n */\nexport const excludedParameters = (\n groups: ExclusionGroup[],\n values: Record,\n): Map => {\n const excluded = new Map();\n for (const group of groups) {\n if (group.exclusionType !== \"mutual_exclusive\") continue;\n const [provided] = group.parameterKeys.filter((key) => hasParameterValue(values[key]));\n if (provided === undefined) continue;\n for (const key of group.parameterKeys) {\n if (key !== provided) excluded.set(key, group);\n }\n }\n return excluded;\n};\n\n/** The parameters a `required_one_of` group makes mandatory, while none of its members is provided. */\nexport const requiredParameterKeys = (\n groups: ExclusionGroup[],\n values: Record,\n): Set => {\n const required = new Set();\n for (const group of groups) {\n if (group.exclusionType !== \"required_one_of\") continue;\n if (group.parameterKeys.some((key) => hasParameterValue(values[key]))) continue;\n for (const key of group.parameterKeys) required.add(key);\n }\n return required;\n};\n\n/** Every parameter in the tool, root invocation first, in command order. */\nexport const getAllParameters = (tool: Tool): Parameter[] =>\n (tool.parameters ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.parameters ?? []),\n );\n\n/**\n * Rewrites a command tree bottom-up, handing `transform` each command with its children already\n * mapped. Walks that drop commands need their own traversal, since this one is one-to-one.\n */\nexport const mapCommandTree = (\n commands: Command[],\n transform: (command: Command) => Command,\n): Command[] =>\n commands.map((command) =>\n transform(\n command.commands?.length\n ? { ...command, commands: mapCommandTree(command.commands, transform) }\n : command,\n ),\n );\n\n/** Applies `update` to the command with `key` anywhere in the tree, leaving every other command alone. */\nexport const updateCommand = (\n tool: Tool,\n key: string,\n update: (command: Command) => Command,\n): Tool => ({\n ...tool,\n commands: mapCommandTree(tool.commands ?? [], (command) =>\n command.key === key ? update(command) : command,\n ),\n});\n\n/** Drops the command with `key` and everything nested beneath it. */\nexport const removeCommand = (tool: Tool, key: string): Tool => ({\n ...tool,\n commands: dropCommand(tool.commands ?? [], key),\n});\n\nconst dropCommand = (commands: Command[], key: string): Command[] =>\n commands\n .filter((command) => command.key !== key)\n .map((command) =>\n command.commands?.length\n ? { ...command, commands: dropCommand(command.commands, key) }\n : command,\n );\n\n/**\n * Applies `update` to the parameters an owner declares: the command with `ownerKey`, or the tool's\n * own parameters when it is null. `recursive` decides where a parameter *applies*, never where it\n * is written, so this deliberately does not touch inherited parameters.\n */\nexport const updateParameters = (\n tool: Tool,\n ownerKey: string | null,\n update: (parameters: Parameter[]) => Parameter[],\n): Tool =>\n ownerKey === null\n ? { ...tool, parameters: update(tool.parameters ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n parameters: update(command.parameters ?? []),\n }));\n\n/** Same as {@link updateParameters} for the exclusion groups an owner declares. */\nexport const updateExclusionGroups = (\n tool: Tool,\n ownerKey: string | null,\n update: (groups: ExclusionGroup[]) => ExclusionGroup[],\n): Tool =>\n ownerKey === null\n ? { ...tool, exclusionGroups: update(tool.exclusionGroups ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n exclusionGroups: update(command.exclusionGroups ?? []),\n }));\n\n/** Drops the parameter with `key` from the set an owner declares. */\nexport const removeParameter = (tool: Tool, ownerKey: string | null, key: string): Tool =>\n updateParameters(tool, ownerKey, (parameters) =>\n parameters.filter((parameter) => parameter.key !== key),\n );\n\n/** Reorders `items` so the given keys take those positions, stamping each item's `sortOrder`. */\nexport const reorderByKeys = (\n items: T[],\n keys: string[],\n): T[] => {\n const slots: number[] = [];\n const byKey = new Map();\n const reordered = new Set(keys);\n\n items.forEach((item, index) => {\n byKey.set(item.key, item);\n if (reordered.has(item.key)) slots.push(index);\n });\n\n const next = [...items];\n keys.forEach((key, sortOrder) => {\n const slot = slots[sortOrder];\n const item = byKey.get(key);\n if (slot !== undefined && item) next[slot] = { ...item, sortOrder };\n });\n return next;\n};\n", + "type": "registry:file", + "target": "components/commandly/utils/tool.ts" + } + ], + "type": "registry:component" +} \ No newline at end of file diff --git a/public/r/generated-command.json b/public/r/generated-command.json index 6e78377..ed2a22d 100644 --- a/public/r/generated-command.json +++ b/public/r/generated-command.json @@ -9,38 +9,41 @@ "sonner" ], "registryDependencies": [ - "button" + "button", + "card", + "label", + "select" ], "files": [ { "path": "registry/commandly/generated-command.tsx", - "content": "import { ParameterValue, Tool, Command } from \"@/components/commandly/types/flat\";\nimport { generateCommand } from \"@/components/commandly/utils/flat\";\nimport { Button } from \"@/components/ui/button\";\nimport { CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Label } from \"@/components/ui/label\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { cn } from \"@/lib/utils\";\nimport { TerminalIcon, CopyIcon, SaveIcon } from \"lucide-react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\nimport { toast } from \"sonner\";\n\ninterface GeneratedCommandProps {\n tool: Tool;\n selectedCommand?: Command | null;\n parameterValues: Record;\n onSaveCommand?: (command: string) => void;\n useLongFlag?: boolean;\n children?: ReactNode;\n}\n\ninterface GeneratedCommandContextValue {\n generatedCommand: string;\n useLongFlag: boolean;\n setUseLongFlag: (value: boolean) => void;\n supportsFlagPreference: boolean;\n onCopyCommand: () => void;\n onSaveCommand?: (command: string) => void;\n}\n\nconst GeneratedCommandContext = createContext(null);\n\nfunction useGeneratedCommandContext() {\n const context = useContext(GeneratedCommandContext);\n\n if (!context) {\n throw new Error(\"GeneratedCommand compound components must be used within GeneratedCommand.\");\n }\n\n return context;\n}\n\nfunction GeneratedCommandRoot({\n tool,\n selectedCommand: providedCommand,\n parameterValues,\n onSaveCommand,\n useLongFlag = false,\n children,\n}: GeneratedCommandProps) {\n const [prefersLongFlag, setPrefersLongFlag] = useState(useLongFlag);\n const supportsFlagPreference = useMemo(\n () =>\n tool.parameters.some(\n (parameter) =>\n parameter.parameterType !== \"Argument\" &&\n Boolean(parameter.shortFlag) &&\n Boolean(parameter.longFlag),\n ),\n [tool.parameters],\n );\n\n useEffect(() => {\n setPrefersLongFlag(useLongFlag);\n }, [useLongFlag]);\n\n const generatedCommand = useMemo(\n () =>\n generateCommand(tool, parameterValues, {\n selectedCommand: providedCommand,\n useLongFlag: prefersLongFlag,\n }),\n [tool, parameterValues, providedCommand, prefersLongFlag],\n );\n\n const copyCommand = useCallback(() => {\n navigator.clipboard.writeText(generatedCommand);\n toast(\"Command copied!\");\n }, [generatedCommand]);\n\n const contextValue = useMemo(\n () => ({\n generatedCommand,\n useLongFlag: prefersLongFlag,\n setUseLongFlag: setPrefersLongFlag,\n supportsFlagPreference,\n onCopyCommand: copyCommand,\n onSaveCommand,\n }),\n [generatedCommand, prefersLongFlag, supportsFlagPreference, copyCommand, onSaveCommand],\n );\n\n return (\n \n {generatedCommand ? (\n (children ?? (\n
\n \n \n
\n ))\n ) : (\n \n )}\n
\n );\n}\n\nfunction GeneratedCommandToolbar({ className, ...props }: ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction GeneratedCommandHeader({\n children,\n className,\n ...props\n}: ComponentProps) {\n return (\n \n \n \n Generated Command\n \n {children}\n \n );\n}\n\nfunction GeneratedCommandFlagPreference({\n className,\n ...props\n}: Omit, \"checked\" | \"onCheckedChange\">) {\n const { supportsFlagPreference, useLongFlag, setUseLongFlag } = useGeneratedCommandContext();\n\n if (!supportsFlagPreference) return null;\n\n return (\n \n );\n}\n\nfunction GeneratedCommandOutput({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand } = useGeneratedCommandContext();\n\n return (\n \n
{generatedCommand}
\n \n );\n}\n\nfunction GeneratedCommandActions({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand, onCopyCommand, onSaveCommand } = useGeneratedCommandContext();\n\n return (\n \n \n \n Copy Command\n \n {onSaveCommand && (\n onSaveCommand(generatedCommand)}\n variant=\"outline\"\n className=\"w-full sm:flex-1\"\n >\n \n Save Command\n \n )}\n \n );\n}\n\nfunction GeneratedCommandEmptyState() {\n return (\n
\n \n

Configure parameters to generate the command.

\n
\n );\n}\n\nexport const GeneratedCommand = Object.assign(GeneratedCommandRoot, {\n Header: GeneratedCommandHeader,\n Toolbar: GeneratedCommandToolbar,\n FlagPreference: GeneratedCommandFlagPreference,\n Output: GeneratedCommandOutput,\n Actions: GeneratedCommandActions,\n EmptyState: GeneratedCommandEmptyState,\n});\n", + "content": "import { ParameterValue, Tool, Command } from \"@/components/commandly/types/tool\";\nimport { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport { generateCommand, getToolFlagForms } from \"@/components/commandly/utils/generate-command\";\nimport { Button } from \"@/components/ui/button\";\nimport { CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Label } from \"@/components/ui/label\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { cn } from \"@/lib/utils\";\nimport { TerminalIcon, CopyIcon, SaveIcon } from \"lucide-react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\nimport { toast } from \"sonner\";\n\ninterface GeneratedCommandProps {\n tool: Tool;\n selectedCommand?: Command | null;\n parameterValues: Record;\n onSaveCommand?: (command: string) => void;\n /** Position emitted by default: 0 is a parameter's full flag, later positions its aliases. */\n defaultFlagFormIndex?: number;\n children?: ReactNode;\n}\n\ninterface FlagFormOption {\n index: number;\n label: string;\n}\n\ninterface GeneratedCommandContextValue {\n generatedCommand: string;\n flagFormIndex: number;\n setFlagFormIndex: (value: number) => void;\n flagFormOptions: FlagFormOption[];\n onCopyCommand: () => void;\n onSaveCommand?: (command: string) => void;\n}\n\nconst GeneratedCommandContext = createContext(null);\n\nfunction useGeneratedCommandContext() {\n const context = useContext(GeneratedCommandContext);\n\n if (!context) {\n throw new Error(\"GeneratedCommand compound components must be used within GeneratedCommand.\");\n }\n\n return context;\n}\n\nfunction GeneratedCommandRoot({\n tool,\n selectedCommand: providedCommand,\n parameterValues,\n onSaveCommand,\n defaultFlagFormIndex = 0,\n children,\n}: GeneratedCommandProps) {\n const [flagFormIndex, setFlagFormIndex] = useState(defaultFlagFormIndex);\n\n const flagFormOptions = useMemo(\n () => getToolFlagForms(tool).map((label, index) => ({ index, label })),\n [tool],\n );\n\n const generatedCommand = useMemo(\n () =>\n generateCommand(tool, parameterValues, {\n selectedCommand: providedCommand,\n flagFormIndex,\n }),\n [tool, parameterValues, providedCommand, flagFormIndex],\n );\n\n const copyCommand = useCallback(() => {\n writeClipboard(generatedCommand).then(\n () => toast(\"Command copied!\"),\n () => toast.error(\"Copy failed\"),\n );\n }, [generatedCommand]);\n\n const contextValue = useMemo(\n () => ({\n generatedCommand,\n flagFormIndex,\n setFlagFormIndex,\n flagFormOptions,\n onCopyCommand: copyCommand,\n onSaveCommand,\n }),\n [generatedCommand, flagFormIndex, flagFormOptions, copyCommand, onSaveCommand],\n );\n\n return (\n \n {generatedCommand ? (\n (children ?? (\n
\n \n \n
\n ))\n ) : (\n \n )}\n
\n );\n}\n\nfunction GeneratedCommandToolbar({ className, ...props }: ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction GeneratedCommandHeader({\n children,\n className,\n ...props\n}: ComponentProps) {\n return (\n \n \n \n Generated Command\n \n {children}\n \n );\n}\n\nfunction GeneratedCommandFlagFormPreference({\n className,\n ...props\n}: Omit, \"value\" | \"onValueChange\">) {\n const { flagFormIndex, setFlagFormIndex, flagFormOptions } = useGeneratedCommandContext();\n\n if (flagFormOptions.length < 2) return null;\n\n return (\n
\n \n setFlagFormIndex(Number(value))}\n >\n \n \n \n \n {flagFormOptions.map((option) => (\n \n {option.label}\n \n ))}\n \n \n
\n );\n}\n\nfunction GeneratedCommandOutput({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand } = useGeneratedCommandContext();\n\n return (\n \n
{generatedCommand}
\n \n );\n}\n\nfunction GeneratedCommandActions({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand, onCopyCommand, onSaveCommand } = useGeneratedCommandContext();\n\n return (\n \n \n \n Copy Command\n \n {onSaveCommand && (\n onSaveCommand(generatedCommand)}\n variant=\"outline\"\n className=\"w-full sm:flex-1\"\n >\n \n Save Command\n \n )}\n \n );\n}\n\nfunction GeneratedCommandEmptyState() {\n return (\n
\n \n

Configure parameters to generate the command.

\n
\n );\n}\n\nexport const GeneratedCommand = Object.assign(GeneratedCommandRoot, {\n Header: GeneratedCommandHeader,\n Toolbar: GeneratedCommandToolbar,\n FlagFormPreference: GeneratedCommandFlagFormPreference,\n Output: GeneratedCommandOutput,\n Actions: GeneratedCommandActions,\n EmptyState: GeneratedCommandEmptyState,\n});\n", "type": "registry:component", "target": "components/commandly/generated-command.tsx" }, { - "path": "registry/commandly/types/flat.ts", - "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Key of the parent command; used to represent subcommand nesting. */\n parentCommandKey?: string;\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier for this parameter within the tool. */\n key: string;\n /** Human-readable display name of the parameter. */\n name: string;\n /** Key of the command this parameter belongs to; omit for global parameters. */\n commandKey?: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Key of the command this exclusion group belongs to; omit for global groups. */\n commandKey?: string;\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Flat list of all parameters across all commands and global scope. */\n parameters: Parameter[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/types/tool.ts", + "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Human-readable display name of the command. */\n displayName: string;\n /** Alternate spellings that invoke this command in place of its name. */\n aliases?: string[];\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters accepted by this command. Keys are unique among them. Omit for grouping commands. */\n parameters?: Parameter[];\n /** Groups of this command's parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Subcommands nested beneath this command. */\n commands?: Command[];\n}\n\nexport type InstallationMethod = \"package_manager\" | \"binary\" | \"docker\" | \"script\";\n\nexport interface InstallationSource {\n /** Unique identifier for this installation source within the tool. */\n key: string;\n /** How the tool is installed. */\n method: InstallationMethod;\n /** Package manager name, set only when method is \"package_manager\" (e.g. \"brew\", \"go\"). */\n manager?: string;\n /** The command that installs the tool. */\n command: string;\n /** Documentation URL describing this installation method. */\n url?: string;\n /** Platforms this installation method applies to. */\n os?: Array<\"linux\" | \"macos\" | \"windows\">;\n /** Additional context for this installation source. */\n note?: string;\n}\n\nexport interface Installation {\n /** The list of documented ways to install the tool. */\n sources: InstallationSource[];\n}\n\nexport interface InstallationMethodOption {\n method: InstallationMethod;\n /** Human-readable label for the method. */\n label: string;\n}\n\n/** The methods in presentation order; a new method must be given a position here. */\nexport const INSTALLATION_METHODS: InstallationMethodOption[] = [\n { method: \"package_manager\", label: \"Package manager\" },\n { method: \"binary\", label: \"Release binary\" },\n { method: \"docker\", label: \"Docker\" },\n { method: \"script\", label: \"Script\" },\n];\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier among its command's parameters. For flags and options this is the full flag, dashes included (e.g. \"--output\", \"-list\"). */\n key: string;\n /** Human-readable display name of the parameter. */\n displayName: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Short names and other alternate invocation forms (e.g. [\"-o\"]). The full flag is `key`. */\n aliases?: string[];\n /** Whether this parameter is also accessible from the subcommands of its command, recursively. */\n recursive?: boolean;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Human-readable name for this exclusion group. */\n displayName: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** Structured installation instructions for the tool. */\n installation?: Installation;\n /**\n * Parameters accepted by the tool itself, before a command is chosen. A tool's own flags live\n * here; do not model the root invocation as a command named after the binary, or the root would\n * be described twice.\n */\n parameters: Parameter[];\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Groups of the tool's own parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", "type": "registry:file", - "target": "components/commandly/types/flat.ts" + "target": "components/commandly/types/tool.ts" }, { - "path": "registry/commandly/types/nested.ts", - "content": "import type {\n ExclusionType,\n ParameterDataType,\n ParameterDependencyType,\n ParameterEnumValues,\n ParameterMetadata,\n ParameterType,\n ParameterValidationType,\n ToolInfo,\n ToolMetadata,\n} from \"@/components/commandly/types/flat\";\n\nexport interface NestedParameterValidation {\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. max length number or regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport interface NestedParameterDependency {\n /** Name of the parameter this dependency references. */\n dependsOnParameter: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport interface NestedParameter {\n /** Human-readable display name of the parameter. */\n name: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: NestedParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: NestedParameterDependency[];\n}\n\nexport interface NestedCommand {\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters that belong directly to this command. */\n parameters: NestedParameter[];\n /** Nested subcommands of this command. */\n subcommands: NestedCommand[] /** Groups of parameters with mutual exclusion or required-one-of constraints scoped to this command. */;\n exclusionGroups?: NestedExclusionGroup[];\n}\n\nexport interface NestedExclusionGroup {\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Names of the parameters that participate in this exclusion group. */\n parameters: string[];\n}\n\nexport interface NestedTool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n /** Parameters that belong to the root invocation when no commands exist. */\n rootParameters: NestedParameter[];\n /** Parameters that apply to all commands globally. */\n globalParameters: NestedParameter[];\n /** Hierarchical list of commands and their nested subcommands. */\n commands: NestedCommand[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: NestedExclusionGroup[] | null;\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/utils/tool.ts", + "content": "import type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/tool\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nconst flattenCommands = (commands: Command[], sink: Command[] = []): Command[] => {\n for (const command of commands) {\n sink.push(command);\n if (command.commands?.length) flattenCommands(command.commands, sink);\n }\n return sink;\n};\n\n/** Every command in the tool, depth-first, each parent before its children. */\nexport const getAllCommands = (tool: Tool): Command[] => flattenCommands(tool.commands ?? []);\n\n/** Every command beneath `command`, depth-first. */\nexport const getAllSubcommands = (command: Command): Command[] =>\n flattenCommands(command.commands ?? []);\n\n/** The command with this key anywhere in the tree. */\nexport const findCommand = (tool: Tool, key: string): Command | undefined =>\n getAllCommands(tool).find((command) => command.key === key);\n\n/**\n * The command to show when the caller has not chosen one: the command named after the binary when\n * there is one, otherwise the first command in the tree.\n */\nexport const getDefaultCommand = (tool: Tool): Command | null => {\n const commands = getAllCommands(tool);\n return (\n commands.find(\n (command) => command.displayName.toLowerCase() === tool.binaryName.toLowerCase(),\n ) ??\n commands[0] ??\n null\n );\n};\n\n/** The chain of commands from the outermost ancestor down to the one with this key. */\nexport const getCommandChain = (tool: Tool, key: string): Command[] => {\n const walk = (commands: Command[], path: Command[]): Command[] | null => {\n for (const command of commands) {\n const next = [...path, command];\n if (command.key === key) return next;\n const found = walk(command.commands ?? [], next);\n if (found) return found;\n }\n return null;\n };\n return walk(tool.commands ?? [], []) ?? [];\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const chain = getCommandChain(tool, command.key);\n if (chain.length === 0) return command.displayName;\n return chain.map((step) => step.displayName).join(\" \");\n};\n\n/**\n * A recursive parameter is inherited: it belongs to its command and to every command below it.\n * Root-scoped, it is inherited by the whole tree.\n */\nexport const isInheritedParameter = (param: Parameter): boolean => param.recursive === true;\n\n/**\n * Resolves the parameters that apply to the currently selected command: its own parameters,\n * plus those inherited from its ancestors via `recursive`, outermost ancestor first.\n */\nexport const resolveApplicableParameters = (\n tool: Tool,\n selectedCommand?: Command | null,\n): Parameter[] => {\n const rootParameters = tool.parameters ?? [];\n\n if (!selectedCommand) return rootParameters;\n\n // Tool-level recursive parameters are inherited by every command in the tree.\n const resolved: Parameter[] = rootParameters.filter(isInheritedParameter);\n const chain = getCommandChain(tool, selectedCommand.key);\n\n for (const command of chain) {\n for (const parameter of command.parameters ?? []) {\n if (command.key === selectedCommand.key || parameter.recursive) {\n resolved.push(parameter);\n }\n }\n }\n\n return resolved;\n};\n\n/** The parameters declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getCommandParameters = (tool: Tool, commandKey: string | null): Parameter[] => {\n if (commandKey === null) return tool.parameters ?? [];\n return findCommand(tool, commandKey)?.parameters ?? [];\n};\n\n/** The exclusion groups declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getExclusionGroups = (tool: Tool, commandKey: string | null): ExclusionGroup[] => {\n if (commandKey === null) return tool.exclusionGroups ?? [];\n return findCommand(tool, commandKey)?.exclusionGroups ?? [];\n};\n\n/** Every exclusion group in the tool, root invocation first, in command order. */\nexport const getAllExclusionGroups = (tool: Tool): ExclusionGroup[] =>\n (tool.exclusionGroups ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.exclusionGroups ?? []),\n );\n\n/** Whether a parameter's current value counts as provided. */\nexport const hasParameterValue = (value: ParameterValue | undefined): boolean =>\n value !== undefined &&\n value !== \"\" &&\n value !== false &&\n !(Array.isArray(value) && value.every((entry) => entry === \"\"));\n\n/**\n * The exclusion groups that constrain a selection: those with at least one member among the\n * parameters that apply to `selectedCommand`.\n */\nexport const resolveExclusionGroups = (\n tool: Tool,\n selectedCommand?: Command | null,\n): ExclusionGroup[] => {\n const applicable = new Set(resolveApplicableParameters(tool, selectedCommand).map((p) => p.key));\n return getAllExclusionGroups(tool).filter((group) =>\n group.parameterKeys.some((key) => applicable.has(key)),\n );\n};\n\n/**\n * The parameters a mutually exclusive group rules out, keyed by parameter, given what is\n * provided. Its members are alternatives to one another, so once one is provided every other\n * member is ruled out; the first provided member of each group keeps its place.\n */\nexport const excludedParameters = (\n groups: ExclusionGroup[],\n values: Record,\n): Map => {\n const excluded = new Map();\n for (const group of groups) {\n if (group.exclusionType !== \"mutual_exclusive\") continue;\n const [provided] = group.parameterKeys.filter((key) => hasParameterValue(values[key]));\n if (provided === undefined) continue;\n for (const key of group.parameterKeys) {\n if (key !== provided) excluded.set(key, group);\n }\n }\n return excluded;\n};\n\n/** The parameters a `required_one_of` group makes mandatory, while none of its members is provided. */\nexport const requiredParameterKeys = (\n groups: ExclusionGroup[],\n values: Record,\n): Set => {\n const required = new Set();\n for (const group of groups) {\n if (group.exclusionType !== \"required_one_of\") continue;\n if (group.parameterKeys.some((key) => hasParameterValue(values[key]))) continue;\n for (const key of group.parameterKeys) required.add(key);\n }\n return required;\n};\n\n/** Every parameter in the tool, root invocation first, in command order. */\nexport const getAllParameters = (tool: Tool): Parameter[] =>\n (tool.parameters ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.parameters ?? []),\n );\n\n/**\n * Rewrites a command tree bottom-up, handing `transform` each command with its children already\n * mapped. Walks that drop commands need their own traversal, since this one is one-to-one.\n */\nexport const mapCommandTree = (\n commands: Command[],\n transform: (command: Command) => Command,\n): Command[] =>\n commands.map((command) =>\n transform(\n command.commands?.length\n ? { ...command, commands: mapCommandTree(command.commands, transform) }\n : command,\n ),\n );\n\n/** Applies `update` to the command with `key` anywhere in the tree, leaving every other command alone. */\nexport const updateCommand = (\n tool: Tool,\n key: string,\n update: (command: Command) => Command,\n): Tool => ({\n ...tool,\n commands: mapCommandTree(tool.commands ?? [], (command) =>\n command.key === key ? update(command) : command,\n ),\n});\n\n/** Drops the command with `key` and everything nested beneath it. */\nexport const removeCommand = (tool: Tool, key: string): Tool => ({\n ...tool,\n commands: dropCommand(tool.commands ?? [], key),\n});\n\nconst dropCommand = (commands: Command[], key: string): Command[] =>\n commands\n .filter((command) => command.key !== key)\n .map((command) =>\n command.commands?.length\n ? { ...command, commands: dropCommand(command.commands, key) }\n : command,\n );\n\n/**\n * Applies `update` to the parameters an owner declares: the command with `ownerKey`, or the tool's\n * own parameters when it is null. `recursive` decides where a parameter *applies*, never where it\n * is written, so this deliberately does not touch inherited parameters.\n */\nexport const updateParameters = (\n tool: Tool,\n ownerKey: string | null,\n update: (parameters: Parameter[]) => Parameter[],\n): Tool =>\n ownerKey === null\n ? { ...tool, parameters: update(tool.parameters ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n parameters: update(command.parameters ?? []),\n }));\n\n/** Same as {@link updateParameters} for the exclusion groups an owner declares. */\nexport const updateExclusionGroups = (\n tool: Tool,\n ownerKey: string | null,\n update: (groups: ExclusionGroup[]) => ExclusionGroup[],\n): Tool =>\n ownerKey === null\n ? { ...tool, exclusionGroups: update(tool.exclusionGroups ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n exclusionGroups: update(command.exclusionGroups ?? []),\n }));\n\n/** Drops the parameter with `key` from the set an owner declares. */\nexport const removeParameter = (tool: Tool, ownerKey: string | null, key: string): Tool =>\n updateParameters(tool, ownerKey, (parameters) =>\n parameters.filter((parameter) => parameter.key !== key),\n );\n\n/** Reorders `items` so the given keys take those positions, stamping each item's `sortOrder`. */\nexport const reorderByKeys = (\n items: T[],\n keys: string[],\n): T[] => {\n const slots: number[] = [];\n const byKey = new Map();\n const reordered = new Set(keys);\n\n items.forEach((item, index) => {\n byKey.set(item.key, item);\n if (reordered.has(item.key)) slots.push(index);\n });\n\n const next = [...items];\n keys.forEach((key, sortOrder) => {\n const slot = slots[sortOrder];\n const item = byKey.get(key);\n if (slot !== undefined && item) next[slot] = { ...item, sortOrder };\n });\n return next;\n};\n", "type": "registry:file", - "target": "components/commandly/types/nested.ts" + "target": "components/commandly/utils/tool.ts" }, { - "path": "registry/commandly/utils/flat.ts", - "content": "import { SCHEMA_URL } from \"@/components/ai-chat/tool-rules\";\nimport type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterMetadata,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/flat\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const allCommands = tool.commands;\n const findCommandPath = (\n targetKey: string,\n commands: Command[],\n path: string[] = [],\n ): string[] | null => {\n for (const cmd of commands) {\n if (cmd.name === targetKey) {\n return [...path, cmd.name];\n }\n\n const childCommands = allCommands.filter((c) => c.parentCommandKey === cmd.key);\n if (childCommands.length > 0) {\n const subPath = findCommandPath(targetKey, childCommands, [...path, cmd.name]);\n if (subPath) {\n return subPath;\n }\n }\n }\n return null;\n };\n\n const rootCommands = tool.commands.filter((c) => !c.parentCommandKey);\n const path = findCommandPath(command.name, rootCommands);\n\n if (!path) return command.name;\n\n return path.join(\" \");\n};\n\nexport const getAllSubcommands = (commandKey: string, commands: Command[]): Command[] => {\n const result: Command[] = [];\n\n const findSubcommands = (parentKey: string) => {\n commands.forEach((cmd) => {\n if (cmd.parentCommandKey === parentKey) {\n result.push(cmd);\n findSubcommands(cmd.key);\n }\n });\n };\n\n findSubcommands(commandKey);\n return result;\n};\n\nexport interface GenerateCommandOptions {\n selectedCommand?: Command | null;\n useLongFlag?: boolean;\n}\n\nfunction getPreferredFlag(param: Parameter, useLongFlag: boolean): string | undefined {\n return useLongFlag ? param.longFlag || param.shortFlag : param.shortFlag || param.longFlag;\n}\n\nexport function generateCommand(\n tool: Tool,\n parameterValues: Record,\n options: GenerateCommandOptions = {},\n): string {\n const hasCommands = tool.commands.length > 0;\n const selectedCommand =\n options.selectedCommand === undefined ? (tool.commands[0] ?? null) : options.selectedCommand;\n const useLongFlag = options.useLongFlag ?? false;\n\n let command = tool.binaryName;\n\n if (hasCommands && selectedCommand) {\n const commandPath = getCommandPath(selectedCommand, tool);\n if (tool.binaryName !== commandPath) {\n command = `${tool.binaryName} ${commandPath}`;\n }\n }\n\n const parametersWithValues: Array<{\n param: Parameter;\n value: ParameterValue;\n }> = [];\n const globalParameters = tool.parameters?.filter((param) => param.isGlobal) ?? [];\n const rootParameters =\n hasCommands && selectedCommand\n ? []\n : (tool.parameters?.filter((param) => !param.commandKey && !param.isGlobal) ?? []);\n const currentParameters = selectedCommand\n ? (tool.parameters?.filter(\n (param) => param.commandKey === selectedCommand.key && !param.isGlobal,\n ) ?? [])\n : [];\n\n [...globalParameters, ...rootParameters, ...currentParameters].forEach((param) => {\n const value = parameterValues[param.key];\n if (value !== undefined && value !== \"\" && value !== false) {\n parametersWithValues.push({ param, value });\n }\n });\n\n const positionalParams = parametersWithValues\n .filter(({ param }) => param.parameterType === \"Argument\")\n .sort((a, b) => (a.param.position || 0) - (b.param.position || 0));\n\n parametersWithValues.forEach(({ param, value }) => {\n if (param.parameterType === \"Flag\") {\n if (value === true) {\n const flag = getPreferredFlag(param, useLongFlag);\n if (flag) command += ` ${flag}`;\n } else if (param.isRepeatable && typeof value === \"number\" && value > 0) {\n const flag = getPreferredFlag(param, useLongFlag);\n if (flag) command += ` ${flag}`.repeat(value);\n }\n return;\n }\n\n if (param.parameterType === \"Option\") {\n const flag = getPreferredFlag(param, useLongFlag);\n if (!flag) return;\n\n const separator = param.keyValueSeparator ?? \" \";\n if (Array.isArray(value)) {\n const entries = value.filter((entry) => entry !== \"\");\n if (entries.length === 0) return;\n\n if (param.arraySeparator) {\n command += ` ${flag}${separator}${entries.join(param.arraySeparator)}`;\n return;\n }\n\n entries.forEach((entry) => {\n command += ` ${flag}${separator}${entry}`;\n });\n return;\n }\n\n command += ` ${flag}${separator}${value}`;\n }\n });\n\n positionalParams.forEach(({ value }) => {\n if (!Array.isArray(value)) {\n command += ` ${value}`;\n }\n });\n\n return command;\n}\n\nexport const exportToStructuredJSON = (tool: Tool) => {\n return {\n $schema: SCHEMA_URL,\n name: tool.binaryName,\n displayName: tool.displayName,\n info: tool.info,\n commands: tool.commands.map((cmd) => ({ ...cmd })),\n parameters: tool.parameters.map(({ metadata: _metadata, ...param }) => param),\n exclusionGroups: tool.exclusionGroups,\n metadata: tool.metadata,\n };\n};\n\nfunction isEmptyArray(value: unknown): boolean {\n return Array.isArray(value) && value.length === 0;\n}\n\nfunction isEmptyObject(value: unknown): boolean {\n return (\n value != null &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n Object.keys(value).length === 0\n );\n}\n\nfunction cleanParameter(param: Parameter): Parameter {\n const cleaned = { ...param };\n\n if (cleaned.isRequired === false) delete cleaned.isRequired;\n if (cleaned.isRepeatable === false) delete cleaned.isRepeatable;\n if (cleaned.isGlobal === false) delete cleaned.isGlobal;\n if (cleaned.keyValueSeparator === \" \") delete cleaned.keyValueSeparator;\n if (cleaned.arraySeparator === \",\" && cleaned.isRepeatable !== true)\n delete cleaned.arraySeparator;\n\n if (!cleaned.enum || isEmptyArray(cleaned.enum.values)) delete cleaned.enum;\n if (isEmptyArray(cleaned.validations)) delete cleaned.validations;\n if (isEmptyArray(cleaned.dependencies)) delete cleaned.dependencies;\n\n if (cleaned.metadata) {\n const meta = { ...cleaned.metadata } as ParameterMetadata;\n if (isEmptyArray(meta.tags)) delete meta.tags;\n if (isEmptyObject(meta)) {\n delete cleaned.metadata;\n } else {\n cleaned.metadata = meta;\n }\n }\n\n return cleaned;\n}\n\nfunction cleanCommand(cmd: Command): Command {\n const cleaned = { ...cmd };\n if (cleaned.interactive === false) delete cleaned.interactive;\n return cleaned;\n}\n\nfunction cleanExclusionGroup(group: ExclusionGroup): ExclusionGroup {\n return { ...group };\n}\n\nexport interface FixToolOptions {\n addSchema?: boolean;\n removeMetadata?: boolean;\n}\n\nexport function fixTool(tool: Tool, options?: FixToolOptions): Tool {\n const addSchema = options?.addSchema ?? false;\n const removeMetadata = options?.removeMetadata ?? false;\n\n const cleaned: Record = { ...tool };\n\n if (addSchema) {\n cleaned[\"$schema\"] = SCHEMA_URL;\n }\n\n if (cleaned.interactive === false) delete cleaned.interactive;\n if (isEmptyObject(cleaned.metadata) || removeMetadata) delete cleaned.metadata;\n if (isEmptyArray(cleaned.exclusionGroups)) delete cleaned.exclusionGroups;\n\n if (\"description\" in cleaned && cleaned.info == null) {\n cleaned.info = { description: cleaned.description as string };\n delete cleaned.description;\n }\n\n if (\"version\" in cleaned && typeof cleaned.version === \"string\") {\n if (cleaned.info && typeof cleaned.info === \"object\") {\n (cleaned.info as Record).version = cleaned.version;\n } else {\n cleaned.info = { version: cleaned.version as string };\n }\n delete cleaned.version;\n }\n\n if (Array.isArray(cleaned.commands)) {\n cleaned.commands = (cleaned.commands as Command[]).map(cleanCommand);\n }\n\n if (Array.isArray(cleaned.parameters)) {\n cleaned.parameters = (cleaned.parameters as Parameter[]).map((p) => {\n const fixed = cleanParameter(p);\n if (removeMetadata) delete fixed.metadata;\n return fixed;\n });\n }\n\n if (\n Array.isArray(cleaned.exclusionGroups) &&\n (cleaned.exclusionGroups as ExclusionGroup[]).length > 0\n ) {\n cleaned.exclusionGroups = (cleaned.exclusionGroups as ExclusionGroup[]).map(\n cleanExclusionGroup,\n );\n }\n\n return cleaned as unknown as Tool;\n}\n", + "path": "registry/commandly/utils/generate-command.ts", + "content": "import type { Command, Parameter, ParameterValue, Tool } from \"@/components/commandly/types/tool\";\nimport {\n excludedParameters,\n getAllParameters,\n getCommandPath,\n getDefaultCommand,\n hasParameterValue,\n resolveApplicableParameters,\n resolveExclusionGroups,\n} from \"@/components/commandly/utils/tool\";\n\nexport interface GenerateCommandOptions {\n selectedCommand?: Command | null;\n /** Index into a parameter's flag forms to emit; falls back to the canonical form. */\n flagFormIndex?: number;\n}\n\n/**\n * The full flag for a parameter. For `Flag` and `Option` types this is the key itself, which\n * carries its own dashes (e.g. \"--output\", \"-list\"). Positional arguments have no flag.\n */\nexport const getCanonicalFlag = (param: Parameter): string => param.key;\n\n/** Every form that invokes a parameter: the full flag first, then its short and other names. */\nexport const getFlagForms = (param: Parameter): string[] => {\n if (param.parameterType === \"Argument\") return [];\n const forms = [param.key, ...(param.aliases ?? [])];\n return forms.filter((form, index) => forms.indexOf(form) === index);\n};\n\n/** The highest number of flag forms any parameter offers: its canonical flag plus its aliases. */\nexport const getFlagFormCount = (tool: Tool): number =>\n getAllParameters(tool).reduce((max, param) => Math.max(max, getFlagForms(param).length), 0);\n\n/** Labels for the flag positions: position 0 is the parameter's own key, the rest are its aliases. */\nconst FLAG_FORM_LABELS = [\"Full name\", \"Short name\"];\n\n/** One label per flag position any parameter of the tool offers. */\nexport const getToolFlagForms = (tool: Tool): string[] =>\n Array.from(\n { length: getFlagFormCount(tool) },\n (_, index) => FLAG_FORM_LABELS[index] ?? `Alternate ${index}`,\n );\n\nexport function generateCommand(\n tool: Tool,\n parameterValues: Record,\n options: GenerateCommandOptions = {},\n): string {\n const hasCommands = tool.commands.length > 0;\n const selectedCommand =\n options.selectedCommand === undefined ? getDefaultCommand(tool) : options.selectedCommand;\n const flagFormIndex = options.flagFormIndex ?? 0;\n\n let command = tool.binaryName;\n\n if (hasCommands && selectedCommand) {\n const commandPath = getCommandPath(selectedCommand, tool);\n if (tool.binaryName !== commandPath) {\n command = `${tool.binaryName} ${commandPath}`;\n }\n }\n\n const excluded = excludedParameters(\n resolveExclusionGroups(tool, selectedCommand),\n parameterValues,\n );\n\n const parametersWithValues = resolveApplicableParameters(tool, selectedCommand)\n .filter((param) => !excluded.has(param.key))\n .map((param) => ({ param, value: parameterValues[param.key] }))\n .filter(({ value }) => hasParameterValue(value));\n\n const positionalParams = parametersWithValues\n .filter(({ param }) => param.parameterType === \"Argument\")\n .sort((a, b) => (a.param.position || 0) - (b.param.position || 0));\n\n parametersWithValues.forEach(({ param, value }) => {\n if (param.parameterType === \"Flag\") {\n const flag = getFlagForms(param)[flagFormIndex] ?? getCanonicalFlag(param);\n if (value === true) {\n command += ` ${flag}`;\n } else if (param.isRepeatable && typeof value === \"number\" && value > 0) {\n command += ` ${flag}`.repeat(value);\n }\n return;\n }\n\n if (param.parameterType === \"Option\") {\n const flag = getFlagForms(param)[flagFormIndex] ?? getCanonicalFlag(param);\n\n const separator = param.keyValueSeparator ?? \" \";\n if (Array.isArray(value)) {\n const entries = value.filter((entry) => entry !== \"\");\n if (entries.length === 0) return;\n\n if (param.arraySeparator) {\n command += ` ${flag}${separator}${entries.join(param.arraySeparator)}`;\n return;\n }\n\n entries.forEach((entry) => {\n command += ` ${flag}${separator}${entry}`;\n });\n return;\n }\n\n command += ` ${flag}${separator}${value}`;\n }\n });\n\n positionalParams.forEach(({ value }) => {\n if (!Array.isArray(value)) {\n command += ` ${value}`;\n }\n });\n\n return command;\n}\n", "type": "registry:file", - "target": "components/commandly/utils/flat.ts" + "target": "components/commandly/utils/generate-command.ts" }, { - "path": "registry/commandly/utils/nested.ts", - "content": "import type { Tool, Command, Parameter } from \"@/components/commandly/types/flat\";\nimport {\n NestedCommand,\n NestedExclusionGroup,\n NestedParameter,\n NestedTool,\n} from \"@/components/commandly/types/nested\";\n\nexport const convertToNestedStructure = (tool: Tool): NestedTool => {\n const globalParameters = tool.parameters.filter((p) => p.isGlobal);\n\n const convertParameter = (param: Parameter): NestedParameter => {\n const { ...rest } = param;\n return {\n ...rest,\n validations: param.validations?.map((v) => {\n return {\n validationType: v.validationType,\n validationValue: v.validationValue,\n errorMessage: v.errorMessage,\n };\n }),\n metadata: param.metadata,\n dataType: param.dataType,\n dependencies: param.dependencies?.map((dep) => {\n const dependsOnParam = tool.parameters.find((p) => p.key === dep.dependsOnParameterKey);\n return {\n dependsOnParameter: dependsOnParam?.longFlag || \"\",\n dependencyType: dep.dependencyType,\n conditionValue: dep.conditionValue,\n };\n }),\n };\n };\n\n const buildNestedCommands = (commands: Command[], parentKey?: string): NestedCommand[] => {\n return commands\n .filter((cmd) => cmd.parentCommandKey === parentKey)\n .map((cmd) => {\n const commandParameters = tool.parameters.filter(\n (p) => p.commandKey === cmd.key && !p.isGlobal,\n );\n const commandExclusionGroups = tool.exclusionGroups\n ?.filter((g) => g.commandKey === cmd.key)\n .map((group) => ({\n name: group.name,\n exclusionType: group.exclusionType,\n parameters: group.parameterKeys.map((pk) => {\n const param = tool.parameters.find((p) => p.key === pk);\n return param?.longFlag || \"\";\n }),\n }));\n return {\n name: cmd.name,\n description: cmd.description,\n interactive: cmd.interactive,\n sortOrder: cmd.sortOrder ?? 0,\n parameters: commandParameters.map(convertParameter),\n subcommands: buildNestedCommands(commands, cmd.key),\n ...(commandExclusionGroups?.length ? { exclusionGroups: commandExclusionGroups } : {}),\n };\n });\n };\n\n const nestedExclusionGroups: NestedExclusionGroup[] | undefined = tool.exclusionGroups\n ?.filter((g) => !g.commandKey)\n .map((group) => ({\n name: group.name,\n exclusionType: group.exclusionType,\n parameters: group.parameterKeys.map((pk) => {\n const param = tool.parameters.find((p) => p.key === pk);\n return param?.longFlag || \"\";\n }),\n }));\n\n const rootParameters =\n tool.commands.length === 0 ? tool.parameters.filter((p) => !p.commandKey && !p.isGlobal) : [];\n\n return {\n binaryName: tool.binaryName,\n url: tool.info?.url,\n displayName: tool.displayName,\n interactive: tool.interactive,\n info: tool.info,\n metadata: tool.metadata,\n rootParameters: rootParameters.map(convertParameter),\n globalParameters: globalParameters.map(convertParameter),\n commands: buildNestedCommands(tool.commands),\n exclusionGroups: nestedExclusionGroups,\n };\n};\n", + "path": "registry/commandly/utils/clipboard.ts", + "content": "/** Writes `text` to the clipboard, rejecting when the browser refuses access. */\nexport async function writeClipboard(text: string): Promise {\n if (!navigator.clipboard) throw new Error(\"Clipboard unavailable\");\n await navigator.clipboard.writeText(text);\n}\n", "type": "registry:file", - "target": "components/commandly/utils/nested.ts" + "target": "components/commandly/utils/clipboard.ts" } ], "type": "registry:component" diff --git a/public/r/installation.json b/public/r/installation.json new file mode 100644 index 0000000..986e0c7 --- /dev/null +++ b/public/r/installation.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "installation", + "title": "Installation Section", + "description": "Renders a tool's structured installation sources grouped by install method.", + "dependencies": [ + "react", + "lucide-react" + ], + "registryDependencies": [ + "badge", + "button", + "tabs" + ], + "files": [ + { + "path": "registry/commandly/installation.tsx", + "content": "import {\n Installation,\n INSTALLATION_METHODS,\n InstallationMethodOption,\n InstallationSource,\n} from \"@/components/commandly/types/tool\";\nimport { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, CopyIcon, ExternalLinkIcon } from \"lucide-react\";\nimport { useState } from \"react\";\n\n/** The methods the tool documents, in presentation order. */\nconst usedMethods = (sources: InstallationSource[]): InstallationMethodOption[] =>\n INSTALLATION_METHODS.filter(({ method }) => sources.some((source) => source.method === method));\n\n/**\n * A source's tab label. The package manager is the distinguishing name where there is one;\n * otherwise the key reads as a title, since a release binary or a container has no manager.\n */\nconst sourceLabel = (source: InstallationSource): string => {\n if (source.manager) return source.manager;\n const words = source.key.replace(/[-_]+/g, \" \").trim();\n return words.charAt(0).toUpperCase() + words.slice(1);\n};\n\ninterface InstallationSourceCardProps {\n source: InstallationSource;\n /**\n * The name shown for this source directly above the card, when a tab selects it. The manager\n * badge is skipped when it would only repeat that name.\n */\n label?: string;\n copied: boolean;\n onCopy: () => void;\n}\n\nfunction InstallationSourceCard({ source, label, copied, onCopy }: InstallationSourceCardProps) {\n const showManager = !!source.manager && source.manager !== label;\n\n return (\n
\n {showManager && (\n
\n \n {source.manager}\n \n
\n )}\n\n
\n \n {source.command}\n \n \n {copied ? : }\n \n
\n\n {source.note &&

{source.note}

}\n\n {source.url && (\n \n Installation docs\n \n \n )}\n
\n );\n}\n\ninterface InstallationSectionProps {\n installation?: Installation;\n className?: string;\n}\n\nexport function InstallationSection({ installation, className }: InstallationSectionProps) {\n const [copiedKey, setCopiedKey] = useState(null);\n\n const sources = installation?.sources ?? [];\n if (sources.length === 0) return null;\n\n const copy = async (key: string, command: string) => {\n try {\n await writeClipboard(command);\n } catch {\n return;\n }\n setCopiedKey(key);\n setTimeout(() => setCopiedKey((current) => (current === key ? null : current)), 1500);\n };\n\n return (\n
\n
\n

Installation

\n

Ways to install this tool.

\n
\n\n {usedMethods(sources).map(({ method, label }) => {\n const group = sources.filter((source) => source.method === method);\n const tabbed = group.length > 1;\n const card = (source: InstallationSource) => (\n copy(source.key, source.command)}\n />\n );\n\n return (\n \n

\n {label}\n

\n\n {tabbed ? (\n \n \n {group.map((source) => (\n \n {sourceLabel(source)}\n \n ))}\n \n {group.map((source) => (\n \n {card(source)}\n \n ))}\n \n ) : (\n card(group[0])\n )}\n \n );\n })}\n
\n );\n}\n", + "type": "registry:component", + "target": "components/commandly/installation.tsx" + }, + { + "path": "registry/commandly/types/tool.ts", + "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Human-readable display name of the command. */\n displayName: string;\n /** Alternate spellings that invoke this command in place of its name. */\n aliases?: string[];\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters accepted by this command. Keys are unique among them. Omit for grouping commands. */\n parameters?: Parameter[];\n /** Groups of this command's parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Subcommands nested beneath this command. */\n commands?: Command[];\n}\n\nexport type InstallationMethod = \"package_manager\" | \"binary\" | \"docker\" | \"script\";\n\nexport interface InstallationSource {\n /** Unique identifier for this installation source within the tool. */\n key: string;\n /** How the tool is installed. */\n method: InstallationMethod;\n /** Package manager name, set only when method is \"package_manager\" (e.g. \"brew\", \"go\"). */\n manager?: string;\n /** The command that installs the tool. */\n command: string;\n /** Documentation URL describing this installation method. */\n url?: string;\n /** Platforms this installation method applies to. */\n os?: Array<\"linux\" | \"macos\" | \"windows\">;\n /** Additional context for this installation source. */\n note?: string;\n}\n\nexport interface Installation {\n /** The list of documented ways to install the tool. */\n sources: InstallationSource[];\n}\n\nexport interface InstallationMethodOption {\n method: InstallationMethod;\n /** Human-readable label for the method. */\n label: string;\n}\n\n/** The methods in presentation order; a new method must be given a position here. */\nexport const INSTALLATION_METHODS: InstallationMethodOption[] = [\n { method: \"package_manager\", label: \"Package manager\" },\n { method: \"binary\", label: \"Release binary\" },\n { method: \"docker\", label: \"Docker\" },\n { method: \"script\", label: \"Script\" },\n];\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier among its command's parameters. For flags and options this is the full flag, dashes included (e.g. \"--output\", \"-list\"). */\n key: string;\n /** Human-readable display name of the parameter. */\n displayName: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Short names and other alternate invocation forms (e.g. [\"-o\"]). The full flag is `key`. */\n aliases?: string[];\n /** Whether this parameter is also accessible from the subcommands of its command, recursively. */\n recursive?: boolean;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Human-readable name for this exclusion group. */\n displayName: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** Structured installation instructions for the tool. */\n installation?: Installation;\n /**\n * Parameters accepted by the tool itself, before a command is chosen. A tool's own flags live\n * here; do not model the root invocation as a command named after the binary, or the root would\n * be described twice.\n */\n parameters: Parameter[];\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Groups of the tool's own parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "type": "registry:file", + "target": "components/commandly/types/tool.ts" + }, + { + "path": "registry/commandly/utils/clipboard.ts", + "content": "/** Writes `text` to the clipboard, rejecting when the browser refuses access. */\nexport async function writeClipboard(text: string): Promise {\n if (!navigator.clipboard) throw new Error(\"Clipboard unavailable\");\n await navigator.clipboard.writeText(text);\n}\n", + "type": "registry:file", + "target": "components/commandly/utils/clipboard.ts" + } + ], + "type": "registry:component" +} \ No newline at end of file diff --git a/public/r/json-output.json b/public/r/json-output.json index 39adee6..49ea90a 100644 --- a/public/r/json-output.json +++ b/public/r/json-output.json @@ -2,44 +2,67 @@ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "json-output", "title": "JSON Output", - "description": "A component for displaying formatted JSON output with syntax highlighting and copy functionality.", + "description": "A component for displaying a tool definition as a collapsible JSON tree with search, copy, and diff functionality.", "dependencies": [ - "react" + "react", + "lucide-react", + "sonner" ], "registryDependencies": [ + "badge", "button", - "scroll-area" + "card", + "scroll-area", + "textarea" ], "files": [ { "path": "registry/commandly/json-output.tsx", - "content": "import { Tool } from \"@/components/commandly/types/flat\";\nimport { exportToStructuredJSON } from \"@/components/commandly/utils/flat\";\nimport { convertToNestedStructure } from \"@/components/commandly/utils/nested\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardAction, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport {\n Command as UICommand,\n CommandGroup,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { ScrollArea, ScrollBar } from \"@/components/ui/scroll-area\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, ChevronsUpDownIcon, CopyIcon, Edit2Icon, XIcon } from \"lucide-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { toast } from \"sonner\";\n\nconst jsonOptions = [\n { value: \"nested\", label: \"Nested\" },\n { value: \"flat\", label: \"Flat\" },\n];\n\ntype DiffLine = { type: \"same\" | \"added\" | \"removed\"; text: string };\n\nfunction diffLines(before: string, after: string): DiffLine[] {\n const a = before.split(\"\\n\");\n const b = after.split(\"\\n\");\n const m = a.length;\n const n = b.length;\n const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));\n for (let i = 1; i <= m; i++)\n for (let j = 1; j <= n; j++)\n dp[i][j] =\n a[i - 1] === b[j - 1] ? dp[i - 1][j - 1] + 1 : Math.max(dp[i - 1][j], dp[i][j - 1]);\n const result: DiffLine[] = [];\n let i = m,\n j = n;\n while (i > 0 || j > 0) {\n if (i > 0 && j > 0 && a[i - 1] === b[j - 1]) {\n result.unshift({ type: \"same\", text: a[i - 1] });\n i--;\n j--;\n } else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {\n result.unshift({ type: \"added\", text: b[j - 1] });\n j--;\n } else {\n result.unshift({ type: \"removed\", text: a[i - 1] });\n i--;\n }\n }\n return result;\n}\n\ninterface JsonTypeComponentProps {\n tool: Tool;\n originalTool?: Tool;\n onApply?: (tool: Tool) => void;\n}\n\nexport function JsonOutput({ tool, originalTool, onApply }: JsonTypeComponentProps) {\n const [open, setOpen] = useState(false);\n const [jsonString, setJsonString] = useState();\n const [originalJsonString, setOriginalJsonString] = useState();\n const [jsonType, setJsonType] = useState<\"nested\" | \"flat\">(\"flat\");\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState(\"\");\n const [showDiff, setShowDiff] = useState(true);\n\n useEffect(() => {\n const config =\n jsonType === \"flat\" ? exportToStructuredJSON(tool) : convertToNestedStructure(tool);\n setJsonString(JSON.stringify(config, null, 2));\n }, [jsonType, tool]);\n\n useEffect(() => {\n if (!originalTool) {\n setOriginalJsonString(undefined);\n return;\n }\n const config =\n jsonType === \"flat\"\n ? exportToStructuredJSON(originalTool)\n : convertToNestedStructure(originalTool);\n setOriginalJsonString(JSON.stringify(config, null, 2));\n }, [jsonType, originalTool]);\n\n const diff = useMemo(() => {\n if (!originalJsonString || !jsonString || originalJsonString === jsonString) return null;\n return diffLines(originalJsonString, jsonString);\n }, [originalJsonString, jsonString]);\n\n const diffStats = useMemo(() => {\n if (!diff) return null;\n const added = diff.filter((l) => l.type === \"added\").length;\n const removed = diff.filter((l) => l.type === \"removed\").length;\n return { added, removed };\n }, [diff]);\n\n const handleEditToggle = () => {\n setEditValue(jsonString ?? \"\");\n setIsEditing(true);\n };\n\n const handleApply = () => {\n try {\n const parsed = JSON.parse(editValue) as Tool;\n onApply!(parsed);\n setIsEditing(false);\n } catch {\n toast.error(\"Invalid JSON\", { description: \"Please fix the JSON before applying.\" });\n }\n };\n\n const handleCancel = () => {\n setIsEditing(false);\n setEditValue(\"\");\n };\n\n return (\n \n \n \n
\n Output type:\n \n \n \n {jsonOptions.find((option) => option.value === jsonType)?.label}\n \n \n \n \n \n \n \n {jsonOptions.map((option) => (\n {\n setJsonType(currentValue as \"nested\" | \"flat\");\n setOpen(false);\n }}\n >\n {option.label}\n \n \n ))}\n \n \n \n \n \n
\n
\n
\n {onApply && !isEditing && (\n \n \n \n )}\n {onApply && isEditing && (\n \n \n \n )}\n {\n navigator.clipboard.writeText(jsonString!);\n toast(\"Copied!\");\n }}\n >\n \n \n
\n
\n \n {diffStats && !isEditing && (\n
\n {diffStats.added > 0 && (\n \n +{diffStats.added} added\n \n )}\n {diffStats.removed > 0 && (\n \n -{diffStats.removed} removed\n \n )}\n setShowDiff((v) => !v)}\n >\n {showDiff ? \"Full view\" : \"Diff view\"}\n \n
\n )}\n {isEditing ? (\n
\n \n setEditValue(e.target.value)}\n spellCheck={false}\n />\n \n \n \n
\n \n Cancel\n \n \n Apply\n \n
\n
\n ) : diff && showDiff ? (\n \n
\n              {diff.map((line, idx) => (\n                \n                  \n                    {line.type === \"added\" ? \"+ \" : line.type === \"removed\" ? \"- \" : \"  \"}\n                  \n                  {line.text}\n                \n              ))}\n            
\n \n \n \n ) : (\n \n
\n              {jsonString}\n            
\n \n \n \n )}\n
\n
\n );\n}\n", + "content": "import { JsonTree } from \"@/components/commandly/json-tree\";\nimport { Tool } from \"@/components/commandly/types/tool\";\nimport { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport { collapseUnchanged, diffLines, type DiffLineType } from \"@/components/commandly/utils/diff\";\nimport { exportToStructuredJSON } from \"@/components/commandly/utils/tool-file\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardAction, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { ScrollArea, ScrollBar } from \"@/components/ui/scroll-area\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { cn } from \"@/lib/utils\";\nimport { CopyIcon, Edit2Icon, XIcon } from \"lucide-react\";\nimport { useMemo, useState } from \"react\";\nimport { toast } from \"sonner\";\n\ninterface JsonOutputProps {\n tool: Tool;\n originalTool?: Tool;\n onApply?: (tool: Tool) => void;\n}\n\n/** The gutter marker for each kind of diff line. */\nconst DIFF_MARKER: Record = { same: \" \", added: \"+ \", removed: \"- \" };\n\n/** The row tones for each kind of diff line. */\nconst DIFF_TONE: Record = {\n same: \"text-foreground/80\",\n added: \"bg-green-500/10 text-green-700 dark:text-green-400\",\n removed: \"bg-red-500/10 text-red-700 dark:text-red-400\",\n};\n\nexport function JsonOutput({ tool, originalTool, onApply }: JsonOutputProps) {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState(\"\");\n const [showDiff, setShowDiff] = useState(true);\n\n const jsonString = useMemo(() => JSON.stringify(exportToStructuredJSON(tool), null, 2), [tool]);\n const originalJsonString = useMemo(\n () =>\n originalTool ? JSON.stringify(exportToStructuredJSON(originalTool), null, 2) : undefined,\n [originalTool],\n );\n const data = useMemo(() => JSON.parse(jsonString) as unknown, [jsonString]);\n\n const diff = useMemo(() => {\n if (!originalJsonString || originalJsonString === jsonString) return null;\n return collapseUnchanged(diffLines(originalJsonString, jsonString));\n }, [originalJsonString, jsonString]);\n\n const diffStats = useMemo(() => {\n if (!diff) return null;\n const added = diff.filter((l) => l.type === \"added\").length;\n const removed = diff.filter((l) => l.type === \"removed\").length;\n return { added, removed };\n }, [diff]);\n\n const handleEditToggle = () => {\n setEditValue(jsonString);\n setIsEditing(true);\n };\n\n const handleApply = () => {\n if (!onApply) return;\n try {\n const parsed = JSON.parse(editValue) as Tool;\n onApply(parsed);\n setIsEditing(false);\n } catch {\n toast.error(\"Invalid JSON\", { description: \"Please fix the JSON before applying.\" });\n }\n };\n\n const handleCancel = () => {\n setIsEditing(false);\n setEditValue(\"\");\n };\n\n return (\n \n \n \n
\n \n Structured JSON output for this tool.\n \n
\n
\n
\n {onApply && !isEditing && (\n \n \n \n )}\n {onApply && isEditing && (\n \n \n \n )}\n {\n writeClipboard(jsonString).then(\n () => toast(\"Copied!\"),\n () => toast.error(\"Copy failed\"),\n );\n }}\n >\n \n \n
\n
\n \n {diffStats && !isEditing && (\n
\n {diffStats.added > 0 && (\n \n +{diffStats.added} added\n \n )}\n {diffStats.removed > 0 && (\n \n -{diffStats.removed} removed\n \n )}\n setShowDiff((v) => !v)}\n >\n {showDiff ? \"Full view\" : \"Diff view\"}\n \n
\n )}\n {isEditing ? (\n
\n \n setEditValue(e.target.value)}\n spellCheck={false}\n />\n \n \n \n
\n \n Cancel\n \n \n Apply\n \n
\n
\n ) : diff && showDiff ? (\n \n
\n              {diff.map((row, idx) =>\n                row.type === \"gap\" ? (\n                  \n                    … {row.count} unchanged {row.count === 1 ? \"line\" : \"lines\"}\n                  \n                ) : (\n                  \n                    {DIFF_MARKER[row.type]}\n                    {row.text}\n                  \n                ),\n              )}\n            
\n \n \n \n ) : (\n \n )}\n
\n
\n );\n}\n", "type": "registry:component", "target": "components/commandly/json-output.tsx" }, { - "path": "registry/commandly/types/flat.ts", - "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Key of the parent command; used to represent subcommand nesting. */\n parentCommandKey?: string;\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier for this parameter within the tool. */\n key: string;\n /** Human-readable display name of the parameter. */\n name: string;\n /** Key of the command this parameter belongs to; omit for global parameters. */\n commandKey?: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Key of the command this exclusion group belongs to; omit for global groups. */\n commandKey?: string;\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Flat list of all parameters across all commands and global scope. */\n parameters: Parameter[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/json-tree.tsx", + "content": "import { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport {\n allBranches,\n branchesToDepth,\n childPath,\n copyText,\n countLabel,\n entries,\n isBranch,\n primitiveText,\n searchJson,\n type JsonValueType,\n typeOf,\n within,\n} from \"@/components/commandly/utils/json-tree\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ChevronDownIcon,\n ChevronRightIcon,\n ChevronsDownUpIcon,\n ChevronsUpDownIcon,\n ChevronUpIcon,\n CopyIcon,\n Link2Icon,\n SearchIcon,\n} from \"lucide-react\";\nimport type { KeyboardEvent as ReactKeyboardEvent, ReactNode } from \"react\";\nimport { useCallback, useId, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { toast } from \"sonner\";\n\nconst INDENT = 14;\n\nconst VALUE_CLASS: Record = {\n object: \"text-sky-600 dark:text-sky-400\",\n array: \"text-sky-600 dark:text-sky-400\",\n string: \"text-emerald-600 dark:text-emerald-400\",\n number: \"text-amber-600 dark:text-amber-400\",\n boolean: \"text-violet-600 dark:text-violet-400\",\n null: \"text-muted-foreground italic\",\n other: \"text-muted-foreground\",\n};\n\nfunction Highlight({ text, needle, current }: { text: string; needle: string; current: boolean }) {\n if (!needle) return <>{text};\n const lower = text.toLowerCase();\n const parts: ReactNode[] = [];\n let from = 0;\n let at = lower.indexOf(needle);\n while (at !== -1) {\n if (at > from) parts.push(text.slice(from, at));\n parts.push(\n \n {text.slice(at, at + needle.length)}\n ,\n );\n from = at + needle.length;\n at = lower.indexOf(needle, from);\n }\n if (from < text.length) parts.push(text.slice(from));\n return <>{parts};\n}\n\ntype TreeRow = {\n id: string;\n kind: \"node\" | \"more\";\n level: number;\n name: string | number | null;\n value: unknown;\n type: JsonValueType;\n count: number;\n open: boolean;\n parent: string | null;\n posinset: number;\n setsize: number;\n hidden?: number;\n};\n\nexport interface JsonTreeProps {\n data: unknown;\n rootName?: string;\n defaultExpandDepth?: number;\n pageSize?: number;\n className?: string;\n}\n\nfunction IconAction({\n label,\n onClick,\n disabled,\n tabIndex,\n children,\n}: {\n label: string;\n onClick: () => void;\n disabled?: boolean;\n tabIndex?: number;\n children: ReactNode;\n}) {\n return (\n {\n event.stopPropagation();\n onClick();\n }}\n >\n {children}\n \n );\n}\n\nexport function JsonTree({\n data,\n rootName = \"root\",\n defaultExpandDepth = 2,\n pageSize = 50,\n className,\n}: JsonTreeProps) {\n const treeId = useId();\n const searchRef = useRef(null);\n const rowRefs = useRef(new Map());\n\n const [expanded, setExpanded] = useState(() =>\n branchesToDepth(data, rootName, defaultExpandDepth),\n );\n const base = useMemo(() => new Set(expanded), [expanded]);\n\n const [query, setQuery] = useState(\"\");\n const needle = query.trim().toLowerCase();\n const search = useMemo(\n () => (needle ? searchJson(data, rootName, needle) : null),\n [data, needle, rootName],\n );\n const [closedWhileSearching, setClosedWhileSearching] = useState<{\n needle: string;\n ids: Set;\n }>({ needle: \"\", ids: new Set() });\n const closed = closedWhileSearching.needle === needle ? closedWhileSearching.ids : null;\n const [matchIndex, setMatchIndex] = useState(0);\n const matches = search?.matches ?? [];\n const matchCount = matches.length;\n const matchSet = useMemo(() => new Set(search?.matches ?? []), [search]);\n const currentMatch = matchCount ? matches[Math.min(matchIndex, matchCount - 1)] : null;\n\n const isOpen = useCallback(\n (id: string) => (search?.ancestors.has(id) ? !closed?.has(id) : base.has(id)),\n [base, closed, search],\n );\n\n const [pages, setPages] = useState>({});\n const limitOf = useCallback(\n (id: string) => Math.max((pages[id] ?? 1) * pageSize, search?.needed.get(id) ?? 0),\n [pageSize, pages, search],\n );\n\n const rows = useMemo(() => {\n const out: TreeRow[] = [];\n const visit = (\n value: unknown,\n id: string,\n name: string | number | null,\n level: number,\n parent: string | null,\n posinset: number,\n setsize: number,\n ) => {\n const type = typeOf(value);\n const list = isBranch(type) ? entries(value) : [];\n const open = isBranch(type) && isOpen(id);\n out.push({\n id,\n kind: \"node\",\n level,\n name,\n value,\n type,\n count: list.length,\n open,\n parent,\n posinset,\n setsize,\n });\n if (!open) return;\n const shown = list.slice(0, limitOf(id));\n const hidden = list.length - shown.length;\n const size = shown.length + (hidden > 0 ? 1 : 0);\n shown.forEach(([key, child], index) =>\n visit(child, childPath(id, key), key, level + 1, id, index + 1, size),\n );\n if (hidden > 0) {\n out.push({\n id: `${id}::more`,\n kind: \"more\",\n level: level + 1,\n name: null,\n value: null,\n type: \"other\",\n count: 0,\n open: false,\n parent: id,\n posinset: size,\n setsize: size,\n hidden,\n });\n }\n };\n visit(data, rootName, null, 1, null, 1, 1);\n return out;\n }, [data, isOpen, limitOf, rootName]);\n\n const [activeRaw, setActiveRaw] = useState(rootName);\n const active = useMemo(() => {\n if (rows.some((row) => row.id === activeRaw)) return activeRaw;\n let best = rootName;\n for (const row of rows) {\n if (row.kind === \"node\" && within(row.id, activeRaw) && row.id.length > best.length) {\n best = row.id;\n }\n }\n return best;\n }, [activeRaw, rootName, rows]);\n const activeIndex = Math.max(\n 0,\n rows.findIndex((row) => row.id === active),\n );\n const activeRow = rows[activeIndex];\n\n const pendingFocus = useRef(false);\n const pendingReveal = useRef(false);\n\n useLayoutEffect(() => {\n if (pendingFocus.current) {\n pendingFocus.current = false;\n rowRefs.current.get(active)?.focus({ preventScroll: true });\n }\n if (pendingReveal.current) {\n pendingReveal.current = false;\n rowRefs.current.get(active)?.scrollIntoView({ block: \"nearest\" });\n }\n }, [active, rows]);\n\n const moveTo = (id: string, focus = true, reveal = true) => {\n if (id === activeRaw) {\n if (focus) rowRefs.current.get(id)?.focus({ preventScroll: true });\n if (reveal) rowRefs.current.get(id)?.scrollIntoView({ block: \"nearest\" });\n return;\n }\n pendingFocus.current = focus;\n pendingReveal.current = reveal;\n setActiveRaw(id);\n };\n\n // Reveal the first match once the search has recomputed for the new query.\n const revealedFor = useRef(null);\n useLayoutEffect(() => {\n if (revealedFor.current === needle) return;\n revealedFor.current = needle;\n const first = search?.matches[0];\n if (!first) return;\n pendingReveal.current = true;\n setActiveRaw(first);\n }, [needle, search]);\n\n const toggle = (id: string, next?: boolean) => {\n const open = isOpen(id);\n const want = next ?? !open;\n if (want === open) return;\n if (search?.ancestors.has(id)) {\n const ids = new Set(closed ?? []);\n if (want) ids.delete(id);\n else ids.add(id);\n setClosedWhileSearching({ needle, ids });\n if (want && !base.has(id)) setExpanded([...base, id]);\n return;\n }\n setExpanded(want ? [...base, id] : [...base].filter((item) => item !== id));\n };\n\n const expandAll = () => {\n setExpanded(allBranches(data, rootName));\n setClosedWhileSearching({ needle, ids: new Set() });\n setPages({});\n moveTo(active, false);\n };\n\n const collapseAll = () => {\n setExpanded(isBranch(typeOf(data)) ? [rootName] : []);\n setClosedWhileSearching({\n needle,\n ids: new Set([...(search?.ancestors ?? [])].filter((id) => id !== rootName)),\n });\n setPages({});\n moveTo(rootName, false, false);\n };\n\n const showMore = (parent: string) =>\n setPages((current) => ({ ...current, [parent]: Math.ceil(limitOf(parent) / pageSize) + 1 }));\n\n const copy = (row: TreeRow, kind: \"value\" | \"path\") => {\n const text = kind === \"path\" ? row.id : copyText(row.value, row.type);\n writeClipboard(text).then(\n () => toast(kind === \"path\" ? \"Copied path\" : \"Copied value\"),\n () => toast.error(\"Copy failed\"),\n );\n };\n\n const stepMatch = (step: number) => {\n if (!matchCount) return;\n const next =\n (((Math.min(matchIndex, matchCount - 1) + step) % matchCount) + matchCount) % matchCount;\n setMatchIndex(next);\n moveTo(matches[next], false);\n };\n\n const onQuery = (next: string) => {\n setQuery(next);\n setMatchIndex(0);\n };\n\n const onSearchKeyDown = (event: ReactKeyboardEvent) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n stepMatch(event.shiftKey ? -1 : 1);\n } else if (event.key === \"Escape\" && query) {\n event.preventDefault();\n event.stopPropagation();\n onQuery(\"\");\n } else if (event.key === \"ArrowDown\") {\n event.preventDefault();\n moveTo(active);\n }\n };\n\n const onTreeKeyDown = (event: ReactKeyboardEvent) => {\n const row = rows[activeIndex];\n if (!row || event.altKey) return;\n const mod = event.metaKey || event.ctrlKey;\n if (mod && event.key.toLowerCase() === \"c\") {\n if (row.kind === \"node\" && !window.getSelection()?.toString()) {\n event.preventDefault();\n copy(row, event.shiftKey ? \"path\" : \"value\");\n }\n return;\n }\n if (mod) return;\n const go = (index: number) => {\n event.preventDefault();\n const target = rows[Math.max(0, Math.min(rows.length - 1, index))];\n if (target) moveTo(target.id);\n };\n switch (event.key) {\n case \"ArrowDown\":\n go(activeIndex + 1);\n break;\n case \"ArrowUp\":\n go(activeIndex - 1);\n break;\n case \"Home\":\n go(0);\n break;\n case \"End\":\n go(rows.length - 1);\n break;\n case \"ArrowRight\":\n event.preventDefault();\n if (row.kind === \"node\" && isBranch(row.type)) {\n if (!row.open) toggle(row.id, true);\n else if (row.count) go(activeIndex + 1);\n }\n break;\n case \"ArrowLeft\":\n event.preventDefault();\n if (row.kind === \"node\" && row.open) toggle(row.id, false);\n else if (row.parent) moveTo(row.parent);\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n if (row.kind === \"more\") showMore(row.parent ?? rootName);\n else if (isBranch(row.type)) toggle(row.id);\n break;\n case \"/\":\n event.preventDefault();\n searchRef.current?.focus();\n searchRef.current?.select();\n break;\n default:\n break;\n }\n };\n\n const describe = (row: TreeRow) => {\n const name = row.name === null ? rootName : String(row.name);\n if (row.kind === \"more\") {\n return `Show ${Math.min(pageSize, row.hidden ?? 0)} more, ${row.hidden} hidden`;\n }\n if (isBranch(row.type)) return `${name}, ${row.type}, ${countLabel(row.type, row.count)}`;\n const text = primitiveText(row.value, row.type);\n return `${name}: ${text.length > 60 ? `${text.slice(0, 60)}…` : text}`;\n };\n\n const pathOf = (row: TreeRow) => (row.kind === \"node\" ? row.id : (row.parent ?? \"\"));\n\n return (\n
\n
\n \n
\n \n \n \n \n \n \n
\n
\n\n
\n \n {rows.map((row) => {\n const isActive = row.id === active;\n const branch = isBranch(row.type);\n const mark = search && row.kind === \"node\" && matchSet.has(row.id) ? needle : \"\";\n const current = row.id === currentMatch;\n return (\n {\n if (node) rowRefs.current.set(row.id, node);\n else rowRefs.current.delete(row.id);\n }}\n role=\"treeitem\"\n tabIndex={isActive ? 0 : -1}\n aria-level={row.level}\n aria-posinset={row.posinset}\n aria-setsize={row.setsize}\n aria-expanded={row.kind === \"node\" && branch ? row.open : undefined}\n aria-selected={isActive}\n aria-label={describe(row)}\n className={cn(\n \"group relative flex h-7.5 items-center gap-1 pr-1 text-sm outline-none\",\n \"focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset\",\n isActive ? \"bg-accent/60\" : \"hover:bg-muted/60\",\n )}\n style={{ paddingLeft: (row.level - 1) * INDENT + 4 }}\n onFocus={(event) => {\n if (event.target === event.currentTarget && row.id !== active) {\n setActiveRaw(row.id);\n }\n }}\n onClick={() => {\n if (row.kind === \"more\") {\n showMore(row.parent ?? rootName);\n moveTo(row.id);\n return;\n }\n if (branch) toggle(row.id);\n moveTo(row.id);\n }}\n >\n {row.kind === \"more\" ? (\n \n Show {Math.min(pageSize, row.hidden ?? 0)} more\n {row.hidden} hidden\n \n ) : (\n <>\n \n {branch ? (\n \n ) : null}\n \n \n {row.name === null ? (\n rootName\n ) : typeof row.name === \"number\" ? (\n row.name\n ) : (\n \n )}\n \n \n {row.name === null && branch ? \"\" : \":\"}\n \n {branch ? (\n \n {!row.open ? (\n \n {row.type === \"array\"\n ? \"[…]\"\n : `{ ${entries(row.value)\n .slice(0, 3)\n .map(([key]) => key)\n .join(\", \")}${row.count > 3 ? \", …\" : \"\"} }`}\n \n ) : null}\n \n {countLabel(row.type, row.count)}\n \n \n ) : (\n 40\n ? (row.value as string)\n : undefined\n }\n >\n {row.type === \"string\" ? (\n <>\n "\n \n "\n \n ) : (\n \n )}\n \n )}\n \n copy(row, \"value\")}\n >\n \n \n copy(row, \"path\")}\n >\n \n \n \n \n )}\n
\n );\n })}\n
\n \n\n {activeRow ? (\n
\n \n {pathOf(activeRow)}\n \n \n {activeRow.kind === \"node\"\n ? isBranch(activeRow.type)\n ? `${activeRow.type}, ${countLabel(activeRow.type, activeRow.count)}`\n : activeRow.type\n : \"page\"}\n \n {activeRow.kind === \"node\" ? (\n copy(activeRow, \"path\")}\n >\n \n \n ) : null}\n
\n ) : null}\n \n );\n}\n", + "type": "registry:component", + "target": "components/commandly/json-tree.tsx" + }, + { + "path": "registry/commandly/types/tool.ts", + "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Human-readable display name of the command. */\n displayName: string;\n /** Alternate spellings that invoke this command in place of its name. */\n aliases?: string[];\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters accepted by this command. Keys are unique among them. Omit for grouping commands. */\n parameters?: Parameter[];\n /** Groups of this command's parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Subcommands nested beneath this command. */\n commands?: Command[];\n}\n\nexport type InstallationMethod = \"package_manager\" | \"binary\" | \"docker\" | \"script\";\n\nexport interface InstallationSource {\n /** Unique identifier for this installation source within the tool. */\n key: string;\n /** How the tool is installed. */\n method: InstallationMethod;\n /** Package manager name, set only when method is \"package_manager\" (e.g. \"brew\", \"go\"). */\n manager?: string;\n /** The command that installs the tool. */\n command: string;\n /** Documentation URL describing this installation method. */\n url?: string;\n /** Platforms this installation method applies to. */\n os?: Array<\"linux\" | \"macos\" | \"windows\">;\n /** Additional context for this installation source. */\n note?: string;\n}\n\nexport interface Installation {\n /** The list of documented ways to install the tool. */\n sources: InstallationSource[];\n}\n\nexport interface InstallationMethodOption {\n method: InstallationMethod;\n /** Human-readable label for the method. */\n label: string;\n}\n\n/** The methods in presentation order; a new method must be given a position here. */\nexport const INSTALLATION_METHODS: InstallationMethodOption[] = [\n { method: \"package_manager\", label: \"Package manager\" },\n { method: \"binary\", label: \"Release binary\" },\n { method: \"docker\", label: \"Docker\" },\n { method: \"script\", label: \"Script\" },\n];\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier among its command's parameters. For flags and options this is the full flag, dashes included (e.g. \"--output\", \"-list\"). */\n key: string;\n /** Human-readable display name of the parameter. */\n displayName: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Short names and other alternate invocation forms (e.g. [\"-o\"]). The full flag is `key`. */\n aliases?: string[];\n /** Whether this parameter is also accessible from the subcommands of its command, recursively. */\n recursive?: boolean;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Human-readable name for this exclusion group. */\n displayName: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** Structured installation instructions for the tool. */\n installation?: Installation;\n /**\n * Parameters accepted by the tool itself, before a command is chosen. A tool's own flags live\n * here; do not model the root invocation as a command named after the binary, or the root would\n * be described twice.\n */\n parameters: Parameter[];\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Groups of the tool's own parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "type": "registry:file", + "target": "components/commandly/types/tool.ts" + }, + { + "path": "registry/commandly/utils/tool.ts", + "content": "import type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/tool\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nconst flattenCommands = (commands: Command[], sink: Command[] = []): Command[] => {\n for (const command of commands) {\n sink.push(command);\n if (command.commands?.length) flattenCommands(command.commands, sink);\n }\n return sink;\n};\n\n/** Every command in the tool, depth-first, each parent before its children. */\nexport const getAllCommands = (tool: Tool): Command[] => flattenCommands(tool.commands ?? []);\n\n/** Every command beneath `command`, depth-first. */\nexport const getAllSubcommands = (command: Command): Command[] =>\n flattenCommands(command.commands ?? []);\n\n/** The command with this key anywhere in the tree. */\nexport const findCommand = (tool: Tool, key: string): Command | undefined =>\n getAllCommands(tool).find((command) => command.key === key);\n\n/**\n * The command to show when the caller has not chosen one: the command named after the binary when\n * there is one, otherwise the first command in the tree.\n */\nexport const getDefaultCommand = (tool: Tool): Command | null => {\n const commands = getAllCommands(tool);\n return (\n commands.find(\n (command) => command.displayName.toLowerCase() === tool.binaryName.toLowerCase(),\n ) ??\n commands[0] ??\n null\n );\n};\n\n/** The chain of commands from the outermost ancestor down to the one with this key. */\nexport const getCommandChain = (tool: Tool, key: string): Command[] => {\n const walk = (commands: Command[], path: Command[]): Command[] | null => {\n for (const command of commands) {\n const next = [...path, command];\n if (command.key === key) return next;\n const found = walk(command.commands ?? [], next);\n if (found) return found;\n }\n return null;\n };\n return walk(tool.commands ?? [], []) ?? [];\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const chain = getCommandChain(tool, command.key);\n if (chain.length === 0) return command.displayName;\n return chain.map((step) => step.displayName).join(\" \");\n};\n\n/**\n * A recursive parameter is inherited: it belongs to its command and to every command below it.\n * Root-scoped, it is inherited by the whole tree.\n */\nexport const isInheritedParameter = (param: Parameter): boolean => param.recursive === true;\n\n/**\n * Resolves the parameters that apply to the currently selected command: its own parameters,\n * plus those inherited from its ancestors via `recursive`, outermost ancestor first.\n */\nexport const resolveApplicableParameters = (\n tool: Tool,\n selectedCommand?: Command | null,\n): Parameter[] => {\n const rootParameters = tool.parameters ?? [];\n\n if (!selectedCommand) return rootParameters;\n\n // Tool-level recursive parameters are inherited by every command in the tree.\n const resolved: Parameter[] = rootParameters.filter(isInheritedParameter);\n const chain = getCommandChain(tool, selectedCommand.key);\n\n for (const command of chain) {\n for (const parameter of command.parameters ?? []) {\n if (command.key === selectedCommand.key || parameter.recursive) {\n resolved.push(parameter);\n }\n }\n }\n\n return resolved;\n};\n\n/** The parameters declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getCommandParameters = (tool: Tool, commandKey: string | null): Parameter[] => {\n if (commandKey === null) return tool.parameters ?? [];\n return findCommand(tool, commandKey)?.parameters ?? [];\n};\n\n/** The exclusion groups declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getExclusionGroups = (tool: Tool, commandKey: string | null): ExclusionGroup[] => {\n if (commandKey === null) return tool.exclusionGroups ?? [];\n return findCommand(tool, commandKey)?.exclusionGroups ?? [];\n};\n\n/** Every exclusion group in the tool, root invocation first, in command order. */\nexport const getAllExclusionGroups = (tool: Tool): ExclusionGroup[] =>\n (tool.exclusionGroups ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.exclusionGroups ?? []),\n );\n\n/** Whether a parameter's current value counts as provided. */\nexport const hasParameterValue = (value: ParameterValue | undefined): boolean =>\n value !== undefined &&\n value !== \"\" &&\n value !== false &&\n !(Array.isArray(value) && value.every((entry) => entry === \"\"));\n\n/**\n * The exclusion groups that constrain a selection: those with at least one member among the\n * parameters that apply to `selectedCommand`.\n */\nexport const resolveExclusionGroups = (\n tool: Tool,\n selectedCommand?: Command | null,\n): ExclusionGroup[] => {\n const applicable = new Set(resolveApplicableParameters(tool, selectedCommand).map((p) => p.key));\n return getAllExclusionGroups(tool).filter((group) =>\n group.parameterKeys.some((key) => applicable.has(key)),\n );\n};\n\n/**\n * The parameters a mutually exclusive group rules out, keyed by parameter, given what is\n * provided. Its members are alternatives to one another, so once one is provided every other\n * member is ruled out; the first provided member of each group keeps its place.\n */\nexport const excludedParameters = (\n groups: ExclusionGroup[],\n values: Record,\n): Map => {\n const excluded = new Map();\n for (const group of groups) {\n if (group.exclusionType !== \"mutual_exclusive\") continue;\n const [provided] = group.parameterKeys.filter((key) => hasParameterValue(values[key]));\n if (provided === undefined) continue;\n for (const key of group.parameterKeys) {\n if (key !== provided) excluded.set(key, group);\n }\n }\n return excluded;\n};\n\n/** The parameters a `required_one_of` group makes mandatory, while none of its members is provided. */\nexport const requiredParameterKeys = (\n groups: ExclusionGroup[],\n values: Record,\n): Set => {\n const required = new Set();\n for (const group of groups) {\n if (group.exclusionType !== \"required_one_of\") continue;\n if (group.parameterKeys.some((key) => hasParameterValue(values[key]))) continue;\n for (const key of group.parameterKeys) required.add(key);\n }\n return required;\n};\n\n/** Every parameter in the tool, root invocation first, in command order. */\nexport const getAllParameters = (tool: Tool): Parameter[] =>\n (tool.parameters ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.parameters ?? []),\n );\n\n/**\n * Rewrites a command tree bottom-up, handing `transform` each command with its children already\n * mapped. Walks that drop commands need their own traversal, since this one is one-to-one.\n */\nexport const mapCommandTree = (\n commands: Command[],\n transform: (command: Command) => Command,\n): Command[] =>\n commands.map((command) =>\n transform(\n command.commands?.length\n ? { ...command, commands: mapCommandTree(command.commands, transform) }\n : command,\n ),\n );\n\n/** Applies `update` to the command with `key` anywhere in the tree, leaving every other command alone. */\nexport const updateCommand = (\n tool: Tool,\n key: string,\n update: (command: Command) => Command,\n): Tool => ({\n ...tool,\n commands: mapCommandTree(tool.commands ?? [], (command) =>\n command.key === key ? update(command) : command,\n ),\n});\n\n/** Drops the command with `key` and everything nested beneath it. */\nexport const removeCommand = (tool: Tool, key: string): Tool => ({\n ...tool,\n commands: dropCommand(tool.commands ?? [], key),\n});\n\nconst dropCommand = (commands: Command[], key: string): Command[] =>\n commands\n .filter((command) => command.key !== key)\n .map((command) =>\n command.commands?.length\n ? { ...command, commands: dropCommand(command.commands, key) }\n : command,\n );\n\n/**\n * Applies `update` to the parameters an owner declares: the command with `ownerKey`, or the tool's\n * own parameters when it is null. `recursive` decides where a parameter *applies*, never where it\n * is written, so this deliberately does not touch inherited parameters.\n */\nexport const updateParameters = (\n tool: Tool,\n ownerKey: string | null,\n update: (parameters: Parameter[]) => Parameter[],\n): Tool =>\n ownerKey === null\n ? { ...tool, parameters: update(tool.parameters ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n parameters: update(command.parameters ?? []),\n }));\n\n/** Same as {@link updateParameters} for the exclusion groups an owner declares. */\nexport const updateExclusionGroups = (\n tool: Tool,\n ownerKey: string | null,\n update: (groups: ExclusionGroup[]) => ExclusionGroup[],\n): Tool =>\n ownerKey === null\n ? { ...tool, exclusionGroups: update(tool.exclusionGroups ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n exclusionGroups: update(command.exclusionGroups ?? []),\n }));\n\n/** Drops the parameter with `key` from the set an owner declares. */\nexport const removeParameter = (tool: Tool, ownerKey: string | null, key: string): Tool =>\n updateParameters(tool, ownerKey, (parameters) =>\n parameters.filter((parameter) => parameter.key !== key),\n );\n\n/** Reorders `items` so the given keys take those positions, stamping each item's `sortOrder`. */\nexport const reorderByKeys = (\n items: T[],\n keys: string[],\n): T[] => {\n const slots: number[] = [];\n const byKey = new Map();\n const reordered = new Set(keys);\n\n items.forEach((item, index) => {\n byKey.set(item.key, item);\n if (reordered.has(item.key)) slots.push(index);\n });\n\n const next = [...items];\n keys.forEach((key, sortOrder) => {\n const slot = slots[sortOrder];\n const item = byKey.get(key);\n if (slot !== undefined && item) next[slot] = { ...item, sortOrder };\n });\n return next;\n};\n", + "type": "registry:file", + "target": "components/commandly/utils/tool.ts" + }, + { + "path": "registry/commandly/utils/tool-file.ts", + "content": "import type { Command, ExclusionGroup, Parameter, Tool } from \"@/components/commandly/types/tool\";\nimport { mapCommandTree, slugify } from \"@/components/commandly/utils/tool\";\n\n/** URL of the published JSON Schema for tool files, written to `$schema` on export. */\nexport const SCHEMA_URL = \"https://commandly.divyeshio.in/specification/tool.json\";\n\nfunction isEmptyArray(value: unknown): boolean {\n return Array.isArray(value) && value.length === 0;\n}\n\nfunction isEmptyObject(value: unknown): boolean {\n return (\n value != null &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n Object.keys(value).length === 0\n );\n}\n\n/**\n * How a tool is normalised for output. The published JSON keeps the defaults the user typed; the\n * file written to disk drops them.\n */\ninterface CleanToolOptions {\n /** Drop `metadata`, which the published JSON does not carry. */\n removeMetadata: boolean;\n /** Drop fields whose value already encodes the default. */\n removeDefaults: boolean;\n}\n\nfunction cleanParameter(param: Parameter, options: CleanToolOptions): Parameter {\n const cleaned: Parameter = { ...param };\n\n if (options.removeDefaults) {\n if (cleaned.isRequired === false) delete cleaned.isRequired;\n if (cleaned.isRepeatable === false) delete cleaned.isRepeatable;\n if (cleaned.recursive === false) delete cleaned.recursive;\n if (cleaned.keyValueSeparator === \" \") delete cleaned.keyValueSeparator;\n if (cleaned.arraySeparator === \",\" && cleaned.isRepeatable !== true)\n delete cleaned.arraySeparator;\n\n if (isEmptyArray(cleaned.aliases)) delete cleaned.aliases;\n if (!cleaned.enum || isEmptyArray(cleaned.enum.values)) delete cleaned.enum;\n if (isEmptyArray(cleaned.validations)) delete cleaned.validations;\n if (isEmptyArray(cleaned.dependencies)) delete cleaned.dependencies;\n }\n\n if (options.removeMetadata) {\n delete cleaned.metadata;\n } else if (cleaned.metadata) {\n const metadata = { ...cleaned.metadata };\n if (isEmptyArray(metadata.tags)) delete metadata.tags;\n if (isEmptyObject(metadata)) delete cleaned.metadata;\n else cleaned.metadata = metadata;\n }\n\n return cleaned;\n}\n\nfunction cleanCommandTree(commands: Command[], options: CleanToolOptions): Command[] {\n return mapCommandTree(commands, (command) => {\n const cleaned: Command = { ...command };\n\n if (options.removeDefaults) {\n if (cleaned.interactive === false) delete cleaned.interactive;\n if (cleaned.exclusionGroups?.length === 0) delete cleaned.exclusionGroups;\n }\n if (cleaned.parameters) {\n cleaned.parameters = cleaned.parameters.map((param) => cleanParameter(param, options));\n }\n if (cleaned.commands?.length === 0) delete cleaned.commands;\n\n return cleaned;\n });\n}\n\n/** The published JSON: the user's defaults are kept, `metadata` is dropped. */\nconst EXPORT_OPTIONS: CleanToolOptions = { removeMetadata: true, removeDefaults: false };\n\nexport const exportToStructuredJSON = (tool: Tool) => ({\n $schema: SCHEMA_URL,\n binaryName: tool.binaryName,\n displayName: tool.displayName,\n interactive: tool.interactive,\n info: tool.info,\n installation: tool.installation,\n parameters: tool.parameters.map((param) => cleanParameter(param, EXPORT_OPTIONS)),\n commands: cleanCommandTree(tool.commands, EXPORT_OPTIONS),\n exclusionGroups: tool.exclusionGroups,\n metadata: tool.metadata,\n});\n\n/** The tool as it is written to disk or published: `$schema` is added on request. */\nexport type ToolFile = Tool & { $schema?: string };\n\nexport interface FixToolOptions {\n addSchema?: boolean;\n removeMetadata?: boolean;\n}\n\n/** Normalises a tool into the shape the specification expects, dropping defaults that say nothing. */\nexport function fixTool(tool: Tool, options?: FixToolOptions): ToolFile {\n const cleanOptions: CleanToolOptions = {\n removeMetadata: options?.removeMetadata ?? false,\n removeDefaults: true,\n };\n\n const cleaned: ToolFile = { ...tool };\n\n if (options?.addSchema) cleaned.$schema = SCHEMA_URL;\n if (cleaned.interactive === false) delete cleaned.interactive;\n if (cleanOptions.removeMetadata || isEmptyObject(cleaned.metadata)) delete cleaned.metadata;\n if (isEmptyArray(cleaned.exclusionGroups)) delete cleaned.exclusionGroups;\n if (isEmptyArray(cleaned.installation?.sources)) delete cleaned.installation;\n\n cleaned.parameters = (cleaned.parameters ?? []).map((param) =>\n cleanParameter(param, cleanOptions),\n );\n cleaned.commands = cleanCommandTree(cleaned.commands ?? [], cleanOptions);\n\n return cleaned;\n}\n\n/** A group always needs a key: that is how the editor finds it again to edit or remove it. */\nconst slugifyGroupKey = (group: ExclusionGroup): ExclusionGroup => ({\n ...group,\n key: slugify(group.displayName),\n});\n\n/**\n * Rebuilds the keys a generated tool may have drifted on: command and exclusion-group keys become\n * slugs of their display names. Parameter keys are the flags themselves, so they are left alone.\n */\nexport const normalizeKeys = (tool: Tool): Tool => ({\n ...tool,\n ...(tool.exclusionGroups ? { exclusionGroups: tool.exclusionGroups.map(slugifyGroupKey) } : {}),\n commands: mapCommandTree(tool.commands ?? [], (command) => ({\n ...command,\n key: slugify(command.displayName),\n ...(command.exclusionGroups\n ? { exclusionGroups: command.exclusionGroups.map(slugifyGroupKey) }\n : {}),\n })),\n});\n", "type": "registry:file", - "target": "components/commandly/types/flat.ts" + "target": "components/commandly/utils/tool-file.ts" }, { - "path": "registry/commandly/types/nested.ts", - "content": "import type {\n ExclusionType,\n ParameterDataType,\n ParameterDependencyType,\n ParameterEnumValues,\n ParameterMetadata,\n ParameterType,\n ParameterValidationType,\n ToolInfo,\n ToolMetadata,\n} from \"@/components/commandly/types/flat\";\n\nexport interface NestedParameterValidation {\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. max length number or regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport interface NestedParameterDependency {\n /** Name of the parameter this dependency references. */\n dependsOnParameter: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport interface NestedParameter {\n /** Human-readable display name of the parameter. */\n name: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: NestedParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: NestedParameterDependency[];\n}\n\nexport interface NestedCommand {\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters that belong directly to this command. */\n parameters: NestedParameter[];\n /** Nested subcommands of this command. */\n subcommands: NestedCommand[] /** Groups of parameters with mutual exclusion or required-one-of constraints scoped to this command. */;\n exclusionGroups?: NestedExclusionGroup[];\n}\n\nexport interface NestedExclusionGroup {\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Names of the parameters that participate in this exclusion group. */\n parameters: string[];\n}\n\nexport interface NestedTool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n /** Parameters that belong to the root invocation when no commands exist. */\n rootParameters: NestedParameter[];\n /** Parameters that apply to all commands globally. */\n globalParameters: NestedParameter[];\n /** Hierarchical list of commands and their nested subcommands. */\n commands: NestedCommand[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: NestedExclusionGroup[] | null;\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/utils/diff.ts", + "content": "export type DiffLineType = \"same\" | \"added\" | \"removed\";\n\nexport interface DiffLine {\n type: DiffLineType;\n text: string;\n}\n\n/** An unchanged run the display collapsed into a single row. */\nexport interface DiffGap {\n type: \"gap\";\n /** How many unchanged lines the gap stands for. */\n count: number;\n}\n\n/** A diff as the display wants it: a line, or a collapsed run of unchanged lines. */\nexport type DiffRow = DiffLine | DiffGap;\n\n/**\n * Above this many differing lines on either side the comparison falls back to a plain\n * replacement: the longest-common-subsequence matrix is quadratic in memory and time. Only the\n * lines between the shared head and tail are ever compared, so a localised edit to a very large\n * file still diffs exactly.\n */\nexport const MAX_DIFF_LINES = 2000;\n\n/** How many unchanged lines the display keeps on either side of a change. */\nexport const DIFF_CONTEXT_LINES = 3;\n\nconst same = (text: string): DiffLine => ({ type: \"same\", text });\n\n/** How many leading lines `a` and `b` have in common. */\nconst sharedHead = (a: string[], b: string[]): number => {\n const max = Math.min(a.length, b.length);\n let head = 0;\n while (head < max && a[head] === b[head]) head++;\n return head;\n};\n\n/** How many trailing lines `a` and `b` have in common, past the `head` already claimed. */\nconst sharedTail = (a: string[], b: string[], head: number): number => {\n const max = Math.min(a.length, b.length) - head;\n let tail = 0;\n while (tail < max && a[a.length - 1 - tail] === b[b.length - 1 - tail]) tail++;\n return tail;\n};\n\nconst replaceBlock = (removed: string[], added: string[]): DiffLine[] => [\n ...removed.map((text): DiffLine => ({ type: \"removed\", text })),\n ...added.map((text): DiffLine => ({ type: \"added\", text })),\n];\n\n/** The longest-common-subsequence comparison of two line arrays. */\nconst compareLines = (before: string[], after: string[]): DiffLine[] => {\n if (before.length > MAX_DIFF_LINES || after.length > MAX_DIFF_LINES) {\n return replaceBlock(before, after);\n }\n\n const rows = before.length;\n const columns = after.length;\n const lengths = Array.from({ length: rows + 1 }, () => new Array(columns + 1).fill(0));\n\n for (let i = 1; i <= rows; i++) {\n for (let j = 1; j <= columns; j++) {\n lengths[i][j] =\n before[i - 1] === after[j - 1]\n ? lengths[i - 1][j - 1] + 1\n : Math.max(lengths[i - 1][j], lengths[i][j - 1]);\n }\n }\n\n const diff: DiffLine[] = [];\n let i = rows;\n let j = columns;\n\n while (i > 0 || j > 0) {\n if (i > 0 && j > 0 && before[i - 1] === after[j - 1]) {\n diff.unshift(same(before[i - 1]));\n i--;\n j--;\n } else if (j > 0 && (i === 0 || lengths[i][j - 1] >= lengths[i - 1][j])) {\n diff.unshift({ type: \"added\", text: after[j - 1] });\n j--;\n } else {\n diff.unshift({ type: \"removed\", text: before[i - 1] });\n i--;\n }\n }\n\n return diff;\n};\n\n/** A line-level diff of two texts, unchanged lines included. */\nexport const diffLines = (before: string, after: string): DiffLine[] => {\n const beforeLines = before.split(\"\\n\");\n const afterLines = after.split(\"\\n\");\n\n const head = sharedHead(beforeLines, afterLines);\n const tail = sharedTail(beforeLines, afterLines, head);\n\n return [\n ...beforeLines.slice(0, head).map(same),\n ...compareLines(\n beforeLines.slice(head, beforeLines.length - tail),\n afterLines.slice(head, afterLines.length - tail),\n ),\n ...beforeLines.slice(beforeLines.length - tail).map(same),\n ];\n};\n\n/**\n * The rows a diff should be drawn with: an unchanged run longer than two context windows collapses\n * to a single gap, so a large file with a small edit stays readable.\n */\nexport const collapseUnchanged = (diff: DiffLine[], context = DIFF_CONTEXT_LINES): DiffRow[] => {\n const rows: DiffRow[] = [];\n\n for (let index = 0; index < diff.length;) {\n if (diff[index].type !== \"same\") {\n rows.push(diff[index]);\n index++;\n continue;\n }\n\n let end = index;\n while (end < diff.length && diff[end].type === \"same\") end++;\n\n if (end - index > context * 2) {\n rows.push(\n ...diff.slice(index, index + context),\n { type: \"gap\", count: end - index - context * 2 },\n ...diff.slice(end - context, end),\n );\n } else {\n rows.push(...diff.slice(index, end));\n }\n index = end;\n }\n\n return rows;\n};\n", "type": "registry:file", - "target": "components/commandly/types/nested.ts" + "target": "components/commandly/utils/diff.ts" }, { - "path": "registry/commandly/utils/flat.ts", - "content": "import { SCHEMA_URL } from \"@/components/ai-chat/tool-rules\";\nimport type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterMetadata,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/flat\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const allCommands = tool.commands;\n const findCommandPath = (\n targetKey: string,\n commands: Command[],\n path: string[] = [],\n ): string[] | null => {\n for (const cmd of commands) {\n if (cmd.name === targetKey) {\n return [...path, cmd.name];\n }\n\n const childCommands = allCommands.filter((c) => c.parentCommandKey === cmd.key);\n if (childCommands.length > 0) {\n const subPath = findCommandPath(targetKey, childCommands, [...path, cmd.name]);\n if (subPath) {\n return subPath;\n }\n }\n }\n return null;\n };\n\n const rootCommands = tool.commands.filter((c) => !c.parentCommandKey);\n const path = findCommandPath(command.name, rootCommands);\n\n if (!path) return command.name;\n\n return path.join(\" \");\n};\n\nexport const getAllSubcommands = (commandKey: string, commands: Command[]): Command[] => {\n const result: Command[] = [];\n\n const findSubcommands = (parentKey: string) => {\n commands.forEach((cmd) => {\n if (cmd.parentCommandKey === parentKey) {\n result.push(cmd);\n findSubcommands(cmd.key);\n }\n });\n };\n\n findSubcommands(commandKey);\n return result;\n};\n\nexport interface GenerateCommandOptions {\n selectedCommand?: Command | null;\n useLongFlag?: boolean;\n}\n\nfunction getPreferredFlag(param: Parameter, useLongFlag: boolean): string | undefined {\n return useLongFlag ? param.longFlag || param.shortFlag : param.shortFlag || param.longFlag;\n}\n\nexport function generateCommand(\n tool: Tool,\n parameterValues: Record,\n options: GenerateCommandOptions = {},\n): string {\n const hasCommands = tool.commands.length > 0;\n const selectedCommand =\n options.selectedCommand === undefined ? (tool.commands[0] ?? null) : options.selectedCommand;\n const useLongFlag = options.useLongFlag ?? false;\n\n let command = tool.binaryName;\n\n if (hasCommands && selectedCommand) {\n const commandPath = getCommandPath(selectedCommand, tool);\n if (tool.binaryName !== commandPath) {\n command = `${tool.binaryName} ${commandPath}`;\n }\n }\n\n const parametersWithValues: Array<{\n param: Parameter;\n value: ParameterValue;\n }> = [];\n const globalParameters = tool.parameters?.filter((param) => param.isGlobal) ?? [];\n const rootParameters =\n hasCommands && selectedCommand\n ? []\n : (tool.parameters?.filter((param) => !param.commandKey && !param.isGlobal) ?? []);\n const currentParameters = selectedCommand\n ? (tool.parameters?.filter(\n (param) => param.commandKey === selectedCommand.key && !param.isGlobal,\n ) ?? [])\n : [];\n\n [...globalParameters, ...rootParameters, ...currentParameters].forEach((param) => {\n const value = parameterValues[param.key];\n if (value !== undefined && value !== \"\" && value !== false) {\n parametersWithValues.push({ param, value });\n }\n });\n\n const positionalParams = parametersWithValues\n .filter(({ param }) => param.parameterType === \"Argument\")\n .sort((a, b) => (a.param.position || 0) - (b.param.position || 0));\n\n parametersWithValues.forEach(({ param, value }) => {\n if (param.parameterType === \"Flag\") {\n if (value === true) {\n const flag = getPreferredFlag(param, useLongFlag);\n if (flag) command += ` ${flag}`;\n } else if (param.isRepeatable && typeof value === \"number\" && value > 0) {\n const flag = getPreferredFlag(param, useLongFlag);\n if (flag) command += ` ${flag}`.repeat(value);\n }\n return;\n }\n\n if (param.parameterType === \"Option\") {\n const flag = getPreferredFlag(param, useLongFlag);\n if (!flag) return;\n\n const separator = param.keyValueSeparator ?? \" \";\n if (Array.isArray(value)) {\n const entries = value.filter((entry) => entry !== \"\");\n if (entries.length === 0) return;\n\n if (param.arraySeparator) {\n command += ` ${flag}${separator}${entries.join(param.arraySeparator)}`;\n return;\n }\n\n entries.forEach((entry) => {\n command += ` ${flag}${separator}${entry}`;\n });\n return;\n }\n\n command += ` ${flag}${separator}${value}`;\n }\n });\n\n positionalParams.forEach(({ value }) => {\n if (!Array.isArray(value)) {\n command += ` ${value}`;\n }\n });\n\n return command;\n}\n\nexport const exportToStructuredJSON = (tool: Tool) => {\n return {\n $schema: SCHEMA_URL,\n name: tool.binaryName,\n displayName: tool.displayName,\n info: tool.info,\n commands: tool.commands.map((cmd) => ({ ...cmd })),\n parameters: tool.parameters.map(({ metadata: _metadata, ...param }) => param),\n exclusionGroups: tool.exclusionGroups,\n metadata: tool.metadata,\n };\n};\n\nfunction isEmptyArray(value: unknown): boolean {\n return Array.isArray(value) && value.length === 0;\n}\n\nfunction isEmptyObject(value: unknown): boolean {\n return (\n value != null &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n Object.keys(value).length === 0\n );\n}\n\nfunction cleanParameter(param: Parameter): Parameter {\n const cleaned = { ...param };\n\n if (cleaned.isRequired === false) delete cleaned.isRequired;\n if (cleaned.isRepeatable === false) delete cleaned.isRepeatable;\n if (cleaned.isGlobal === false) delete cleaned.isGlobal;\n if (cleaned.keyValueSeparator === \" \") delete cleaned.keyValueSeparator;\n if (cleaned.arraySeparator === \",\" && cleaned.isRepeatable !== true)\n delete cleaned.arraySeparator;\n\n if (!cleaned.enum || isEmptyArray(cleaned.enum.values)) delete cleaned.enum;\n if (isEmptyArray(cleaned.validations)) delete cleaned.validations;\n if (isEmptyArray(cleaned.dependencies)) delete cleaned.dependencies;\n\n if (cleaned.metadata) {\n const meta = { ...cleaned.metadata } as ParameterMetadata;\n if (isEmptyArray(meta.tags)) delete meta.tags;\n if (isEmptyObject(meta)) {\n delete cleaned.metadata;\n } else {\n cleaned.metadata = meta;\n }\n }\n\n return cleaned;\n}\n\nfunction cleanCommand(cmd: Command): Command {\n const cleaned = { ...cmd };\n if (cleaned.interactive === false) delete cleaned.interactive;\n return cleaned;\n}\n\nfunction cleanExclusionGroup(group: ExclusionGroup): ExclusionGroup {\n return { ...group };\n}\n\nexport interface FixToolOptions {\n addSchema?: boolean;\n removeMetadata?: boolean;\n}\n\nexport function fixTool(tool: Tool, options?: FixToolOptions): Tool {\n const addSchema = options?.addSchema ?? false;\n const removeMetadata = options?.removeMetadata ?? false;\n\n const cleaned: Record = { ...tool };\n\n if (addSchema) {\n cleaned[\"$schema\"] = SCHEMA_URL;\n }\n\n if (cleaned.interactive === false) delete cleaned.interactive;\n if (isEmptyObject(cleaned.metadata) || removeMetadata) delete cleaned.metadata;\n if (isEmptyArray(cleaned.exclusionGroups)) delete cleaned.exclusionGroups;\n\n if (\"description\" in cleaned && cleaned.info == null) {\n cleaned.info = { description: cleaned.description as string };\n delete cleaned.description;\n }\n\n if (\"version\" in cleaned && typeof cleaned.version === \"string\") {\n if (cleaned.info && typeof cleaned.info === \"object\") {\n (cleaned.info as Record).version = cleaned.version;\n } else {\n cleaned.info = { version: cleaned.version as string };\n }\n delete cleaned.version;\n }\n\n if (Array.isArray(cleaned.commands)) {\n cleaned.commands = (cleaned.commands as Command[]).map(cleanCommand);\n }\n\n if (Array.isArray(cleaned.parameters)) {\n cleaned.parameters = (cleaned.parameters as Parameter[]).map((p) => {\n const fixed = cleanParameter(p);\n if (removeMetadata) delete fixed.metadata;\n return fixed;\n });\n }\n\n if (\n Array.isArray(cleaned.exclusionGroups) &&\n (cleaned.exclusionGroups as ExclusionGroup[]).length > 0\n ) {\n cleaned.exclusionGroups = (cleaned.exclusionGroups as ExclusionGroup[]).map(\n cleanExclusionGroup,\n );\n }\n\n return cleaned as unknown as Tool;\n}\n", + "path": "registry/commandly/utils/clipboard.ts", + "content": "/** Writes `text` to the clipboard, rejecting when the browser refuses access. */\nexport async function writeClipboard(text: string): Promise {\n if (!navigator.clipboard) throw new Error(\"Clipboard unavailable\");\n await navigator.clipboard.writeText(text);\n}\n", "type": "registry:file", - "target": "components/commandly/utils/flat.ts" + "target": "components/commandly/utils/clipboard.ts" }, { - "path": "registry/commandly/utils/nested.ts", - "content": "import type { Tool, Command, Parameter } from \"@/components/commandly/types/flat\";\nimport {\n NestedCommand,\n NestedExclusionGroup,\n NestedParameter,\n NestedTool,\n} from \"@/components/commandly/types/nested\";\n\nexport const convertToNestedStructure = (tool: Tool): NestedTool => {\n const globalParameters = tool.parameters.filter((p) => p.isGlobal);\n\n const convertParameter = (param: Parameter): NestedParameter => {\n const { ...rest } = param;\n return {\n ...rest,\n validations: param.validations?.map((v) => {\n return {\n validationType: v.validationType,\n validationValue: v.validationValue,\n errorMessage: v.errorMessage,\n };\n }),\n metadata: param.metadata,\n dataType: param.dataType,\n dependencies: param.dependencies?.map((dep) => {\n const dependsOnParam = tool.parameters.find((p) => p.key === dep.dependsOnParameterKey);\n return {\n dependsOnParameter: dependsOnParam?.longFlag || \"\",\n dependencyType: dep.dependencyType,\n conditionValue: dep.conditionValue,\n };\n }),\n };\n };\n\n const buildNestedCommands = (commands: Command[], parentKey?: string): NestedCommand[] => {\n return commands\n .filter((cmd) => cmd.parentCommandKey === parentKey)\n .map((cmd) => {\n const commandParameters = tool.parameters.filter(\n (p) => p.commandKey === cmd.key && !p.isGlobal,\n );\n const commandExclusionGroups = tool.exclusionGroups\n ?.filter((g) => g.commandKey === cmd.key)\n .map((group) => ({\n name: group.name,\n exclusionType: group.exclusionType,\n parameters: group.parameterKeys.map((pk) => {\n const param = tool.parameters.find((p) => p.key === pk);\n return param?.longFlag || \"\";\n }),\n }));\n return {\n name: cmd.name,\n description: cmd.description,\n interactive: cmd.interactive,\n sortOrder: cmd.sortOrder ?? 0,\n parameters: commandParameters.map(convertParameter),\n subcommands: buildNestedCommands(commands, cmd.key),\n ...(commandExclusionGroups?.length ? { exclusionGroups: commandExclusionGroups } : {}),\n };\n });\n };\n\n const nestedExclusionGroups: NestedExclusionGroup[] | undefined = tool.exclusionGroups\n ?.filter((g) => !g.commandKey)\n .map((group) => ({\n name: group.name,\n exclusionType: group.exclusionType,\n parameters: group.parameterKeys.map((pk) => {\n const param = tool.parameters.find((p) => p.key === pk);\n return param?.longFlag || \"\";\n }),\n }));\n\n const rootParameters =\n tool.commands.length === 0 ? tool.parameters.filter((p) => !p.commandKey && !p.isGlobal) : [];\n\n return {\n binaryName: tool.binaryName,\n url: tool.info?.url,\n displayName: tool.displayName,\n interactive: tool.interactive,\n info: tool.info,\n metadata: tool.metadata,\n rootParameters: rootParameters.map(convertParameter),\n globalParameters: globalParameters.map(convertParameter),\n commands: buildNestedCommands(tool.commands),\n exclusionGroups: nestedExclusionGroups,\n };\n};\n", + "path": "registry/commandly/utils/json-tree.ts", + "content": "export type JsonValueType = \"object\" | \"array\" | \"string\" | \"number\" | \"boolean\" | \"null\" | \"other\";\n\nconst IDENTIFIER = /^[A-Za-z_$][\\w$]*$/;\n\n/** How many matches a search collects before giving up. */\nconst MAX_MATCHES = 2000;\n\nexport function typeOf(value: unknown): JsonValueType {\n if (value === null) return \"null\";\n if (Array.isArray(value)) return \"array\";\n switch (typeof value) {\n case \"object\":\n return \"object\";\n case \"string\":\n return \"string\";\n case \"number\":\n case \"bigint\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"other\";\n }\n}\n\nexport const isBranch = (type: JsonValueType) => type === \"object\" || type === \"array\";\n\nexport function entries(value: unknown): [string | number, unknown][] {\n if (Array.isArray(value)) return value.map((item, index) => [index, item]);\n if (value && typeof value === \"object\") return Object.entries(value as Record);\n return [];\n}\n\n/** The dot/bracket path of a child within its parent, e.g. `root.items[2].name`. */\nexport const childPath = (parent: string, key: string | number) =>\n typeof key === \"number\"\n ? `${parent}[${key}]`\n : IDENTIFIER.test(key)\n ? `${parent}.${key}`\n : `${parent}[${JSON.stringify(key)}]`;\n\n/** Whether `id` is `ancestor` or sits beneath it. */\nexport const within = (ancestor: string, id: string) =>\n id === ancestor || id.startsWith(`${ancestor}.`) || id.startsWith(`${ancestor}[`);\n\nexport function primitiveText(value: unknown, type: JsonValueType) {\n if (type === \"string\") return value as string;\n if (type === \"null\") return \"null\";\n return String(value);\n}\n\n/** The text a copy action should place on the clipboard for this value. */\nexport function copyText(value: unknown, type: JsonValueType) {\n if (type === \"string\") return value as string;\n if (isBranch(type)) return JSON.stringify(value, null, 2);\n return primitiveText(value, type);\n}\n\nconst plural = (count: number, one: string, many: string) => `${count} ${count === 1 ? one : many}`;\n\nexport const countLabel = (type: JsonValueType, count: number) =>\n type === \"array\" ? plural(count, \"item\", \"items\") : plural(count, \"key\", \"keys\");\n\n/** The paths of every branch in the data, root first. */\nexport function allBranches(data: unknown, rootName: string) {\n const out: string[] = [];\n const visit = (value: unknown, id: string) => {\n if (!isBranch(typeOf(value))) return;\n out.push(id);\n for (const [key, child] of entries(value)) visit(child, childPath(id, key));\n };\n visit(data, rootName);\n return out;\n}\n\n/** The paths of every branch within the first `depth` levels. */\nexport function branchesToDepth(data: unknown, rootName: string, depth: number) {\n const out: string[] = [];\n const visit = (value: unknown, id: string, level: number) => {\n if (level >= depth || !isBranch(typeOf(value))) return;\n out.push(id);\n for (const [key, child] of entries(value)) visit(child, childPath(id, key), level + 1);\n };\n visit(data, rootName, 0);\n return out;\n}\n\nexport interface SearchResult {\n /** The paths of every matching row, in document order. */\n matches: string[];\n /** The branches that must be open for every match to be reachable. */\n ancestors: Set;\n /** Per branch, how many of its children must be listed for every match to be reachable. */\n needed: Map;\n}\n\n/** A case-insensitive search over keys and primitive values. */\nexport function searchJson(data: unknown, rootName: string, needle: string): SearchResult {\n const matches: string[] = [];\n const ancestors = new Set();\n const needed = new Map();\n const frames: [string, number][] = [];\n const visit = (value: unknown, id: string, name: string | number | null) => {\n if (matches.length >= MAX_MATCHES) return;\n const type = typeOf(value);\n const inKey = typeof name === \"string\" && name.toLowerCase().includes(needle);\n const inValue = !isBranch(type) && primitiveText(value, type).toLowerCase().includes(needle);\n if (inKey || inValue) {\n matches.push(id);\n for (const [frame, index] of frames) {\n ancestors.add(frame);\n needed.set(frame, Math.max(needed.get(frame) ?? 0, index + 1));\n }\n }\n if (!isBranch(type)) return;\n entries(value).forEach(([key, child], index) => {\n frames.push([id, index]);\n visit(child, childPath(id, key), key);\n frames.pop();\n });\n };\n visit(data, rootName, null);\n return { matches, ancestors, needed };\n}\n", "type": "registry:file", - "target": "components/commandly/utils/nested.ts" + "target": "components/commandly/utils/json-tree.ts" } ], "type": "registry:component" diff --git a/public/r/registry.json b/public/r/registry.json index 0a6f89f..d5cc196 100644 --- a/public/r/registry.json +++ b/public/r/registry.json @@ -8,13 +8,20 @@ "type": "registry:block", "title": "Basic UI", "description": "Basic components to render previews, command generation and json output", - "dependencies": ["react", "lucide-react", "sonner"], + "dependencies": ["react", "lucide-react", "sonner", "class-variance-authority"], "registryDependencies": [ + "badge", "button", + "card", + "collapsible", + "command", "dialog", "input", "label", + "popover", "select", + "separator", + "switch", "textarea", "tabs", "tooltip", @@ -22,6 +29,11 @@ "hover-card" ], "files": [ + { + "path": "src/components/ui/multi-select.tsx", + "type": "registry:file", + "target": "components/ui/multi-select.tsx" + }, { "path": "registry/commandly/generated-command.tsx", "type": "registry:component", @@ -32,34 +44,64 @@ "type": "registry:component", "target": "components/commandly/json-output.tsx" }, + { + "path": "registry/commandly/json-tree.tsx", + "type": "registry:component", + "target": "components/commandly/json-tree.tsx" + }, { "path": "registry/commandly/tool-renderer.tsx", "type": "registry:component", "target": "components/commandly/tool-renderer.tsx" }, + { + "path": "registry/commandly/command-tree.tsx", + "type": "registry:component", + "target": "components/commandly/command-tree.tsx" + }, + { + "path": "registry/commandly/installation.tsx", + "type": "registry:component", + "target": "components/commandly/installation.tsx" + }, { "target": "components/commandly/types/renderer.ts", "path": "registry/commandly/types/renderer.ts", "type": "registry:file" }, { - "target": "components/commandly/types/flat.ts", - "path": "registry/commandly/types/flat.ts", + "target": "components/commandly/types/tool.ts", + "path": "registry/commandly/types/tool.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/tool.ts", + "path": "registry/commandly/utils/tool.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/generate-command.ts", + "path": "registry/commandly/utils/generate-command.ts", "type": "registry:file" }, { - "target": "components/commandly/types/nested.ts", - "path": "registry/commandly/types/nested.ts", + "target": "components/commandly/utils/tool-file.ts", + "path": "registry/commandly/utils/tool-file.ts", "type": "registry:file" }, { - "target": "components/commandly/utils/flat.ts", - "path": "registry/commandly/utils/flat.ts", + "target": "components/commandly/utils/diff.ts", + "path": "registry/commandly/utils/diff.ts", "type": "registry:file" }, { - "target": "components/commandly/utils/nested.ts", - "path": "registry/commandly/utils/nested.ts", + "target": "components/commandly/utils/clipboard.ts", + "path": "registry/commandly/utils/clipboard.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/json-tree.ts", + "path": "registry/commandly/utils/json-tree.ts", "type": "registry:file" } ] @@ -70,7 +112,7 @@ "title": "Generated Command", "description": "A component that generates CLI commands based on tool configuration and parameter values with copy and save functionality.", "dependencies": ["react", "lucide-react", "sonner"], - "registryDependencies": ["button"], + "registryDependencies": ["button", "card", "label", "select"], "files": [ { "path": "registry/commandly/generated-command.tsx", @@ -78,23 +120,23 @@ "target": "components/commandly/generated-command.tsx" }, { - "target": "components/commandly/types/flat.ts", - "path": "registry/commandly/types/flat.ts", + "target": "components/commandly/types/tool.ts", + "path": "registry/commandly/types/tool.ts", "type": "registry:file" }, { - "target": "components/commandly/types/nested.ts", - "path": "registry/commandly/types/nested.ts", + "target": "components/commandly/utils/tool.ts", + "path": "registry/commandly/utils/tool.ts", "type": "registry:file" }, { - "target": "components/commandly/utils/flat.ts", - "path": "registry/commandly/utils/flat.ts", + "target": "components/commandly/utils/generate-command.ts", + "path": "registry/commandly/utils/generate-command.ts", "type": "registry:file" }, { - "target": "components/commandly/utils/nested.ts", - "path": "registry/commandly/utils/nested.ts", + "target": "components/commandly/utils/clipboard.ts", + "path": "registry/commandly/utils/clipboard.ts", "type": "registry:file" } ] @@ -103,9 +145,9 @@ "name": "json-output", "type": "registry:component", "title": "JSON Output", - "description": "A component for displaying formatted JSON output with syntax highlighting and copy functionality.", - "dependencies": ["react"], - "registryDependencies": ["button", "scroll-area"], + "description": "A component for displaying a tool definition as a collapsible JSON tree with search, copy, and diff functionality.", + "dependencies": ["react", "lucide-react", "sonner"], + "registryDependencies": ["badge", "button", "card", "scroll-area", "textarea"], "files": [ { "path": "registry/commandly/json-output.tsx", @@ -113,23 +155,88 @@ "target": "components/commandly/json-output.tsx" }, { - "target": "components/commandly/types/flat.ts", - "path": "registry/commandly/types/flat.ts", + "path": "registry/commandly/json-tree.tsx", + "type": "registry:component", + "target": "components/commandly/json-tree.tsx" + }, + { + "target": "components/commandly/types/tool.ts", + "path": "registry/commandly/types/tool.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/tool.ts", + "path": "registry/commandly/utils/tool.ts", "type": "registry:file" }, { - "target": "components/commandly/types/nested.ts", - "path": "registry/commandly/types/nested.ts", + "target": "components/commandly/utils/tool-file.ts", + "path": "registry/commandly/utils/tool-file.ts", "type": "registry:file" }, { - "target": "components/commandly/utils/flat.ts", - "path": "registry/commandly/utils/flat.ts", + "target": "components/commandly/utils/diff.ts", + "path": "registry/commandly/utils/diff.ts", "type": "registry:file" }, { - "target": "components/commandly/utils/nested.ts", - "path": "registry/commandly/utils/nested.ts", + "target": "components/commandly/utils/clipboard.ts", + "path": "registry/commandly/utils/clipboard.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/json-tree.ts", + "path": "registry/commandly/utils/json-tree.ts", + "type": "registry:file" + } + ] + }, + { + "name": "command-tree", + "type": "registry:component", + "title": "Command Tree", + "description": "A searchable command tree for navigating a tool's commands and subcommands.", + "dependencies": ["react", "lucide-react"], + "registryDependencies": ["badge", "collapsible", "input", "scroll-area"], + "files": [ + { + "path": "registry/commandly/command-tree.tsx", + "type": "registry:component", + "target": "components/commandly/command-tree.tsx" + }, + { + "target": "components/commandly/types/tool.ts", + "path": "registry/commandly/types/tool.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/tool.ts", + "path": "registry/commandly/utils/tool.ts", + "type": "registry:file" + } + ] + }, + { + "name": "installation", + "type": "registry:component", + "title": "Installation Section", + "description": "Renders a tool's structured installation sources grouped by install method.", + "dependencies": ["react", "lucide-react"], + "registryDependencies": ["badge", "button", "tabs"], + "files": [ + { + "path": "registry/commandly/installation.tsx", + "type": "registry:component", + "target": "components/commandly/installation.tsx" + }, + { + "target": "components/commandly/types/tool.ts", + "path": "registry/commandly/types/tool.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/clipboard.ts", + "path": "registry/commandly/utils/clipboard.ts", "type": "registry:file" } ] @@ -139,27 +246,49 @@ "type": "registry:component", "title": "Tool Renderer", "description": "A component that provides real-time preview of CLI command execution and output.", - "dependencies": ["react"], - "registryDependencies": ["button", "scroll-area", "tabs"], + "dependencies": ["react", "lucide-react", "class-variance-authority"], + "registryDependencies": [ + "badge", + "button", + "command", + "input", + "label", + "popover", + "scroll-area", + "separator", + "switch", + "tabs", + "tooltip" + ], "files": [ { "path": "registry/commandly/tool-renderer.tsx", "type": "registry:component", "target": "components/commandly/tool-renderer.tsx" }, + { + "path": "src/components/ui/multi-select.tsx", + "type": "registry:file", + "target": "components/ui/multi-select.tsx" + }, { "target": "components/commandly/types/renderer.ts", "path": "registry/commandly/types/renderer.ts", "type": "registry:file" }, { - "target": "components/commandly/types/flat.ts", - "path": "registry/commandly/types/flat.ts", + "target": "components/commandly/types/tool.ts", + "path": "registry/commandly/types/tool.ts", + "type": "registry:file" + }, + { + "target": "components/commandly/utils/tool.ts", + "path": "registry/commandly/utils/tool.ts", "type": "registry:file" }, { - "target": "components/commandly/types/nested.ts", - "path": "registry/commandly/types/nested.ts", + "target": "components/commandly/utils/generate-command.ts", + "path": "registry/commandly/utils/generate-command.ts", "type": "registry:file" } ] diff --git a/public/r/tool-renderer.json b/public/r/tool-renderer.json index c57da7f..8d87b73 100644 --- a/public/r/tool-renderer.json +++ b/public/r/tool-renderer.json @@ -4,37 +4,59 @@ "title": "Tool Renderer", "description": "A component that provides real-time preview of CLI command execution and output.", "dependencies": [ - "react" + "react", + "lucide-react", + "class-variance-authority" ], "registryDependencies": [ + "badge", "button", + "command", + "input", + "label", + "popover", "scroll-area", - "tabs" + "separator", + "switch", + "tabs", + "tooltip" ], "files": [ { "path": "registry/commandly/tool-renderer.tsx", - "content": "import { ParameterValue } from \"@/components/commandly/types/flat\";\nimport { Command, Tool } from \"@/components/commandly/types/flat\";\nimport {\n ParameterRenderContext,\n ParameterRendererEntry,\n} from \"@/components/commandly/types/renderer\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Command as UICommand,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { MultiSelect } from \"@/components/ui/multi-select\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, ChevronsUpDownIcon, InfoIcon, PlusIcon, XIcon } from \"lucide-react\";\nimport React, { useMemo } from \"react\";\n\nconst findDefaultCommand = (tool: Tool): Command | null => {\n const nameMatchCommand = tool.commands.find(\n (command) => command.name.toLowerCase() === tool.binaryName.toLowerCase(),\n );\n if (nameMatchCommand) return nameMatchCommand;\n\n return tool.commands.length > 0 ? tool.commands[0] : null;\n};\n\ninterface ParameterLabelProps {\n name: string;\n longFlag?: string;\n shortFlag?: string;\n isRequired?: boolean;\n isGlobal?: boolean;\n description?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nfunction ParameterLabel({\n name,\n longFlag,\n shortFlag,\n isRequired,\n isGlobal,\n description,\n className,\n children,\n}: ParameterLabelProps) {\n return (\n \n );\n}\n\nfunction FlagInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n \n \n
\n );\n}\n\nfunction OptionEnumInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n const [open, setOpen] = React.useState(false);\n const separator = parameter.enum?.separator || \",\";\n const options =\n parameter.enum?.values?.map((e) => ({\n value: e.value,\n label: e.displayName || e.value,\n })) ?? [];\n\n const label = (\n \n );\n\n if (parameter.enum?.allowMultiple) {\n const selected = Array.isArray(value)\n ? (value as string[]).filter(Boolean)\n : value\n ? (value as string).split(separator).filter(Boolean)\n : [];\n return (\n
\n {label}\n onUpdate(vals.join(separator))}\n placeholder=\"Select options\"\n />\n
\n );\n }\n\n return (\n
\n {label}\n \n \n \n {options.find((o) => o.value === value)?.label ?? \"Select an option\"}\n \n \n \n \n \n \n \n No option found.\n \n {options.map((option) => (\n {\n onUpdate(currentValue === value ? \"\" : currentValue);\n setOpen(false);\n }}\n >\n {option.label}\n \n \n ))}\n \n \n \n \n \n
\n );\n}\n\nfunction OptionBooleanInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n onUpdate(checked.toString())}\n />\n \n
\n );\n}\n\nfunction OptionTextInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n />\n
\n );\n}\n\nfunction ArgumentInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n \n \n {parameter.parameterType}\n {parameter.position !== undefined && ` (${parameter.position})`}\n \n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n />\n
\n );\n}\n\ninterface RepeatableWrapperProps {\n parameter: ParameterRenderContext[\"parameter\"];\n value: ParameterRenderContext[\"value\"];\n onUpdate: ParameterRenderContext[\"onUpdate\"];\n renderEntry: ParameterRendererEntry[\"component\"];\n}\n\nfunction RepeatableWrapper({ parameter, value, onUpdate, renderEntry }: RepeatableWrapperProps) {\n const toArray = (v: ParameterRenderContext[\"value\"]): string[] => {\n if (Array.isArray(v)) return v;\n if (v !== undefined && v !== \"\" && v !== false) return [String(v)];\n return [\"\"];\n };\n\n const values = toArray(value);\n\n const updateAt = (index: number, val: ParameterRenderContext[\"value\"]) => {\n const next = [...values];\n next[index] = String(val);\n onUpdate(next);\n };\n\n const addRow = () => onUpdate([...values, \"\"]);\n\n const removeAt = (index: number) => {\n const next = values.filter((_, i) => i !== index);\n onUpdate(next);\n };\n\n return (\n
\n {values.map((val, index) => (\n \n
\n {renderEntry({ parameter, value: val, onUpdate: (v) => updateAt(index, v) })}\n
\n {index > 0 && (\n removeAt(index)}\n >\n \n \n )}\n
\n ))}\n \n \n Add another\n \n \n );\n}\n\nexport function defaultComponents(): ParameterRendererEntry[] {\n return [\n { condition: (p) => p.parameterType === \"Flag\", component: (ctx) => },\n {\n condition: (p) => p.parameterType === \"Argument\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Enum\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Boolean\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\",\n component: (ctx) => ,\n },\n ];\n}\n\ninterface ToolRendererProps {\n selectedCommand?: Command | null;\n tool: Tool;\n catalog?: ParameterRendererEntry[];\n parameterValues: Record;\n updateParameterValue: (parameterKey: string, value: ParameterValue) => void;\n}\n\nexport function ToolRenderer({\n selectedCommand: providedCommand,\n tool,\n catalog = defaultComponents(),\n parameterValues,\n updateParameterValue,\n}: ToolRendererProps) {\n const selectedCommand =\n providedCommand === undefined ? findDefaultCommand(tool) : providedCommand;\n const hasCommands = tool.commands.length > 0;\n\n const visibleParameters = useMemo(() => {\n if (!hasCommands || !selectedCommand) {\n return tool.parameters.filter((p) => !p.commandKey || p.isGlobal);\n }\n return tool.parameters.filter(\n (param) => param.commandKey === selectedCommand?.key || param.isGlobal,\n );\n }, [tool, hasCommands, selectedCommand]);\n\n return (\n \n
\n {visibleParameters.length > 0 ? (\n visibleParameters.map((parameter) => {\n const value = parameterValues[parameter.key] ?? \"\";\n const onUpdate = (val: ParameterValue) => updateParameterValue(parameter.key, val);\n const entry = catalog.find((e) => e.condition(parameter));\n if (!entry) return null;\n return (\n \n {parameter.isRepeatable ? (\n \n ) : (\n entry.component({ parameter, value, onUpdate })\n )}\n \n );\n })\n ) : (\n

No parameters available for this command.

\n )}\n
\n
\n );\n}\n", + "content": "import {\n ParameterRenderContext,\n ParameterRendererEntry,\n} from \"@/components/commandly/types/renderer\";\nimport { Command, ParameterValue, Tool } from \"@/components/commandly/types/tool\";\nimport { getFlagForms } from \"@/components/commandly/utils/generate-command\";\nimport {\n excludedParameters,\n getDefaultCommand,\n requiredParameterKeys,\n resolveApplicableParameters,\n resolveExclusionGroups,\n} from \"@/components/commandly/utils/tool\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Command as UICommand,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { MultiSelect } from \"@/components/ui/multi-select\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, ChevronsUpDownIcon, InfoIcon, PlusIcon, XIcon } from \"lucide-react\";\nimport React, { useMemo } from \"react\";\n\ninterface ParameterLabelProps {\n name: string;\n flags?: string[];\n isRequired?: boolean;\n recursive?: boolean;\n excludedBy?: string;\n description?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nfunction ParameterLabel({\n name,\n flags,\n isRequired,\n recursive,\n excludedBy,\n description,\n className,\n children,\n}: ParameterLabelProps) {\n return (\n \n );\n}\n\nfunction FlagInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n \n \n
\n );\n}\n\nfunction OptionEnumInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n const [open, setOpen] = React.useState(false);\n const separator = parameter.enum?.separator || \",\";\n const options =\n parameter.enum?.values?.map((e) => ({\n value: e.value,\n label: e.displayName || e.value,\n })) ?? [];\n\n const label = (\n \n );\n\n if (parameter.enum?.allowMultiple) {\n const selected = Array.isArray(value)\n ? (value as string[]).filter(Boolean)\n : value\n ? (value as string).split(separator).filter(Boolean)\n : [];\n return (\n
\n {label}\n onUpdate(vals.join(separator))}\n placeholder=\"Select options\"\n disabled={!!excludedBy}\n />\n
\n );\n }\n\n return (\n
\n {label}\n \n \n \n {options.find((o) => o.value === value)?.label ?? \"Select an option\"}\n \n \n \n \n \n \n \n No option found.\n \n {options.map((option) => (\n {\n onUpdate(currentValue === value ? \"\" : currentValue);\n setOpen(false);\n }}\n >\n {option.label}\n \n \n ))}\n \n \n \n \n \n
\n );\n}\n\nfunction OptionBooleanInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n onUpdate(checked.toString())}\n disabled={!!excludedBy}\n />\n \n
\n );\n}\n\nfunction OptionTextInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n disabled={!!excludedBy}\n />\n
\n );\n}\n\nfunction ArgumentInput({\n parameter,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n \n \n {parameter.parameterType}\n {parameter.position !== undefined && ` (${parameter.position})`}\n \n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n disabled={!!excludedBy}\n />\n
\n );\n}\n\ninterface RepeatableWrapperProps {\n context: ParameterRenderContext;\n renderEntry: ParameterRendererEntry[\"component\"];\n}\n\nfunction RepeatableWrapper({ context, renderEntry }: RepeatableWrapperProps) {\n const toArray = (value: ParameterValue): string[] => {\n if (Array.isArray(value)) return value;\n if (value !== undefined && value !== \"\" && value !== false) return [String(value)];\n return [\"\"];\n };\n\n const values = toArray(context.value);\n\n const updateAt = (index: number, value: ParameterValue) => {\n const next = [...values];\n next[index] = String(value);\n context.onUpdate(next);\n };\n\n const addRow = () => context.onUpdate([...values, \"\"]);\n\n const removeAt = (index: number) => context.onUpdate(values.filter((_, i) => i !== index));\n\n return (\n
\n {values.map((value, index) => (\n \n
\n {renderEntry({ ...context, value, onUpdate: (v) => updateAt(index, v) })}\n
\n {index > 0 && (\n removeAt(index)}\n >\n \n \n )}\n
\n ))}\n \n \n Add another\n \n \n );\n}\n\nexport function defaultComponents(): ParameterRendererEntry[] {\n return [\n { condition: (p) => p.parameterType === \"Flag\", component: (ctx) => },\n {\n condition: (p) => p.parameterType === \"Argument\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Enum\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Boolean\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\",\n component: (ctx) => ,\n },\n ];\n}\n\ninterface ToolRendererProps {\n selectedCommand?: Command | null;\n tool: Tool;\n catalog?: ParameterRendererEntry[];\n parameterValues: Record;\n updateParameterValue: (parameterKey: string, value: ParameterValue) => void;\n}\n\nexport function ToolRenderer({\n selectedCommand: providedCommand,\n tool,\n catalog = defaultComponents(),\n parameterValues,\n updateParameterValue,\n}: ToolRendererProps) {\n const selectedCommand = providedCommand === undefined ? getDefaultCommand(tool) : providedCommand;\n\n const visibleParameters = useMemo(\n () => resolveApplicableParameters(tool, selectedCommand),\n [tool, selectedCommand],\n );\n\n const exclusionGroups = useMemo(\n () => resolveExclusionGroups(tool, selectedCommand),\n [tool, selectedCommand],\n );\n const excluded = useMemo(\n () => excludedParameters(exclusionGroups, parameterValues),\n [exclusionGroups, parameterValues],\n );\n const required = useMemo(\n () => requiredParameterKeys(exclusionGroups, parameterValues),\n [exclusionGroups, parameterValues],\n );\n\n return (\n
\n {visibleParameters.length > 0 ? (\n visibleParameters.map((parameter) => {\n const entry = catalog.find((e) => e.condition(parameter));\n if (!entry) return null;\n\n const context: ParameterRenderContext = {\n parameter,\n flags: getFlagForms(parameter),\n value: parameterValues[parameter.key] ?? \"\",\n onUpdate: (value) => updateParameterValue(parameter.key, value),\n isRequired: parameter.isRequired || required.has(parameter.key),\n excludedBy: excluded.get(parameter.key)?.displayName,\n };\n\n return (\n \n {parameter.isRepeatable ? (\n \n ) : (\n entry.component(context)\n )}\n \n );\n })\n ) : (\n

No parameters available for this command.

\n )}\n
\n );\n}\n", "type": "registry:component", "target": "components/commandly/tool-renderer.tsx" }, + { + "path": "src/components/ui/multi-select.tsx", + "content": "import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport {\r\n CheckIcon,\r\n XCircleIcon,\r\n ChevronDownIcon,\r\n XIcon,\r\n WandSparklesIcon,\r\n} from \"lucide-react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Badge } from \"@/components/ui/badge\";\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\";\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandSeparator,\r\n} from \"@/components/ui/command\";\r\n\r\n/**\r\n * Variants for the multi-select component to handle different styles.\r\n * Uses class-variance-authority (cva) to define different styles based on \"variant\" prop.\r\n */\r\nconst multiSelectVariants = cva(\"m-1\", {\r\n variants: {\r\n variant: {\r\n default: \"border-foreground/10 text-foreground bg-card hover:bg-card/80\",\r\n secondary:\r\n \"border-foreground/10 bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n destructive:\r\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\r\n inverted: \"inverted\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n});\r\n\r\n/**\r\n * Props for MultiSelect component\r\n */\r\ninterface MultiSelectProps\r\n extends React.ButtonHTMLAttributes,\r\n VariantProps {\r\n /**\r\n * An array of option objects to be displayed in the multi-select component.\r\n * Each option object has a label, value, and an optional icon.\r\n */\r\n options: {\r\n /** The text to display for the option. */\r\n label: string;\r\n /** The unique value associated with the option. */\r\n value: string;\r\n /** Optional icon component to display alongside the option. */\r\n icon?: React.ComponentType<{ className?: string }>;\r\n }[];\r\n\r\n /**\r\n * Callback function triggered when the selected values change.\r\n * Receives an array of the new selected values.\r\n */\r\n onValueChange: (value: string[]) => void;\r\n\r\n /** The default selected values when the component mounts. */\r\n defaultValue?: string[];\r\n\r\n /**\r\n * Placeholder text to be displayed when no values are selected.\r\n * Optional, defaults to \"Select options\".\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Animation duration in seconds for the visual effects (e.g., bouncing badges).\r\n * Optional, defaults to 0 (no animation).\r\n */\r\n animation?: number;\r\n\r\n /**\r\n * Maximum number of items to display. Extra selected items will be summarized.\r\n * Optional, defaults to 3.\r\n */\r\n maxCount?: number;\r\n\r\n /**\r\n * The modality of the popover. When set to true, interaction with outside elements\r\n * will be disabled and only popover content will be visible to screen readers.\r\n * Optional, defaults to false.\r\n */\r\n modalPopover?: boolean;\r\n\r\n /**\r\n * If true, renders the multi-select component as a child of another component.\r\n * Optional, defaults to false.\r\n */\r\n asChild?: boolean;\r\n\r\n /**\r\n * Additional class names to apply custom styles to the multi-select component.\r\n * Optional, can be used to add custom styles.\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const MultiSelect = React.forwardRef<\r\n HTMLButtonElement,\r\n MultiSelectProps\r\n>(\r\n (\r\n {\r\n options,\r\n onValueChange,\r\n variant,\r\n defaultValue = [],\r\n placeholder = \"Select options\",\r\n animation = 0,\r\n maxCount = 3,\r\n modalPopover = false,\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [selectedValues, setSelectedValues] =\r\n React.useState(defaultValue);\r\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\r\n const [isAnimating, setIsAnimating] = React.useState(false);\r\n\r\n const handleInputKeyDown = (\r\n event: React.KeyboardEvent\r\n ) => {\r\n if (event.key === \"Enter\") {\r\n setIsPopoverOpen(true);\r\n } else if (event.key === \"Backspace\" && !event.currentTarget.value) {\r\n const newSelectedValues = [...selectedValues];\r\n newSelectedValues.pop();\r\n setSelectedValues(newSelectedValues);\r\n onValueChange(newSelectedValues);\r\n }\r\n };\r\n\r\n const toggleOption = (option: string) => {\r\n const newSelectedValues = selectedValues.includes(option)\r\n ? selectedValues.filter((value) => value !== option)\r\n : [...selectedValues, option];\r\n setSelectedValues(newSelectedValues);\r\n onValueChange(newSelectedValues);\r\n };\r\n\r\n const handleClear = () => {\r\n setSelectedValues([]);\r\n onValueChange([]);\r\n };\r\n\r\n const handleTogglePopover = () => {\r\n setIsPopoverOpen((prev) => !prev);\r\n };\r\n\r\n const clearExtraOptions = () => {\r\n const newSelectedValues = selectedValues.slice(0, maxCount);\r\n setSelectedValues(newSelectedValues);\r\n onValueChange(newSelectedValues);\r\n };\r\n\r\n const toggleAll = () => {\r\n if (selectedValues.length === options.length) {\r\n handleClear();\r\n } else {\r\n const allValues = options.map((option) => option.value);\r\n setSelectedValues(allValues);\r\n onValueChange(allValues);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {selectedValues.length > 0 ? (\r\n
\r\n
\r\n {selectedValues.slice(0, maxCount).map((value) => {\r\n const option = options.find((o) => o.value === value);\r\n const IconComponent = option?.icon;\r\n return (\r\n \r\n {IconComponent && (\r\n \r\n )}\r\n {option?.label}\r\n {\r\n event.stopPropagation();\r\n toggleOption(value);\r\n }}\r\n />\r\n \r\n );\r\n })}\r\n {selectedValues.length > maxCount && (\r\n \r\n {maxCount > 0\r\n ? `+ ${selectedValues.length - maxCount} more`\r\n : `${selectedValues.length} selected`}\r\n {\r\n event.stopPropagation();\r\n clearExtraOptions();\r\n }}\r\n />\r\n \r\n )}\r\n
\r\n
\r\n {\r\n event.stopPropagation();\r\n handleClear();\r\n }}\r\n />\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n {placeholder}\r\n \r\n \r\n
\r\n )}\r\n \r\n
\r\n setIsPopoverOpen(false)}\r\n >\r\n \r\n \r\n \r\n No results found.\r\n \r\n \r\n \r\n \r\n \r\n (Select All)\r\n \r\n {options.map((option) => {\r\n const isSelected = selectedValues.includes(option.value);\r\n return (\r\n toggleOption(option.value)}\r\n className=\"cursor-pointer\"\r\n >\r\n \r\n \r\n \r\n {option.icon && (\r\n \r\n )}\r\n {option.label}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n
\r\n {selectedValues.length > 0 && (\r\n <>\r\n \r\n Clear\r\n \r\n \r\n \r\n )}\r\n setIsPopoverOpen(false)}\r\n className=\"flex-1 justify-center cursor-pointer max-w-full\"\r\n >\r\n Close\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {animation > 0 && selectedValues.length > 0 && (\r\n setIsAnimating(!isAnimating)}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\nMultiSelect.displayName = \"MultiSelect\";\r\n", + "type": "registry:file", + "target": "components/ui/multi-select.tsx" + }, { "path": "registry/commandly/types/renderer.ts", - "content": "import type { Parameter, ParameterValue } from \"@/components/commandly/types/flat\";\nimport type { ReactElement } from \"react\";\n\nexport type ParameterRenderContext = {\n parameter: Parameter;\n value: ParameterValue;\n onUpdate: (value: ParameterValue) => void;\n};\n\nexport type ParameterRendererEntry = {\n condition: (parameter: Parameter) => boolean;\n component: (context: ParameterRenderContext) => ReactElement | null;\n};\n", + "content": "import type { Parameter, ParameterValue } from \"@/components/commandly/types/tool\";\nimport type { ReactElement } from \"react\";\n\nexport type ParameterRenderContext = {\n parameter: Parameter;\n /** The parameter's invocation forms: the canonical flag plus its short and other names. */\n flags: string[];\n value: ParameterValue;\n onUpdate: (value: ParameterValue) => void;\n /** Whether the parameter must be provided, counting any `required_one_of` group it belongs to. */\n isRequired?: boolean;\n /** The exclusion group ruling this parameter out, once another of its members is provided. */\n excludedBy?: string;\n};\n\nexport type ParameterRendererEntry = {\n condition: (parameter: Parameter) => boolean;\n component: (context: ParameterRenderContext) => ReactElement | null;\n};\n", "type": "registry:file", "target": "components/commandly/types/renderer.ts" }, { - "path": "registry/commandly/types/flat.ts", - "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Key of the parent command; used to represent subcommand nesting. */\n parentCommandKey?: string;\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier for this parameter within the tool. */\n key: string;\n /** Human-readable display name of the parameter. */\n name: string;\n /** Key of the command this parameter belongs to; omit for global parameters. */\n commandKey?: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Key of the command this exclusion group belongs to; omit for global groups. */\n commandKey?: string;\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Flat list of all parameters across all commands and global scope. */\n parameters: Parameter[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/types/tool.ts", + "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Human-readable display name of the command. */\n displayName: string;\n /** Alternate spellings that invoke this command in place of its name. */\n aliases?: string[];\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters accepted by this command. Keys are unique among them. Omit for grouping commands. */\n parameters?: Parameter[];\n /** Groups of this command's parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Subcommands nested beneath this command. */\n commands?: Command[];\n}\n\nexport type InstallationMethod = \"package_manager\" | \"binary\" | \"docker\" | \"script\";\n\nexport interface InstallationSource {\n /** Unique identifier for this installation source within the tool. */\n key: string;\n /** How the tool is installed. */\n method: InstallationMethod;\n /** Package manager name, set only when method is \"package_manager\" (e.g. \"brew\", \"go\"). */\n manager?: string;\n /** The command that installs the tool. */\n command: string;\n /** Documentation URL describing this installation method. */\n url?: string;\n /** Platforms this installation method applies to. */\n os?: Array<\"linux\" | \"macos\" | \"windows\">;\n /** Additional context for this installation source. */\n note?: string;\n}\n\nexport interface Installation {\n /** The list of documented ways to install the tool. */\n sources: InstallationSource[];\n}\n\nexport interface InstallationMethodOption {\n method: InstallationMethod;\n /** Human-readable label for the method. */\n label: string;\n}\n\n/** The methods in presentation order; a new method must be given a position here. */\nexport const INSTALLATION_METHODS: InstallationMethodOption[] = [\n { method: \"package_manager\", label: \"Package manager\" },\n { method: \"binary\", label: \"Release binary\" },\n { method: \"docker\", label: \"Docker\" },\n { method: \"script\", label: \"Script\" },\n];\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier among its command's parameters. For flags and options this is the full flag, dashes included (e.g. \"--output\", \"-list\"). */\n key: string;\n /** Human-readable display name of the parameter. */\n displayName: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Short names and other alternate invocation forms (e.g. [\"-o\"]). The full flag is `key`. */\n aliases?: string[];\n /** Whether this parameter is also accessible from the subcommands of its command, recursively. */\n recursive?: boolean;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Human-readable name for this exclusion group. */\n displayName: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** Structured installation instructions for the tool. */\n installation?: Installation;\n /**\n * Parameters accepted by the tool itself, before a command is chosen. A tool's own flags live\n * here; do not model the root invocation as a command named after the binary, or the root would\n * be described twice.\n */\n parameters: Parameter[];\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Groups of the tool's own parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "type": "registry:file", + "target": "components/commandly/types/tool.ts" + }, + { + "path": "registry/commandly/utils/tool.ts", + "content": "import type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/tool\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nconst flattenCommands = (commands: Command[], sink: Command[] = []): Command[] => {\n for (const command of commands) {\n sink.push(command);\n if (command.commands?.length) flattenCommands(command.commands, sink);\n }\n return sink;\n};\n\n/** Every command in the tool, depth-first, each parent before its children. */\nexport const getAllCommands = (tool: Tool): Command[] => flattenCommands(tool.commands ?? []);\n\n/** Every command beneath `command`, depth-first. */\nexport const getAllSubcommands = (command: Command): Command[] =>\n flattenCommands(command.commands ?? []);\n\n/** The command with this key anywhere in the tree. */\nexport const findCommand = (tool: Tool, key: string): Command | undefined =>\n getAllCommands(tool).find((command) => command.key === key);\n\n/**\n * The command to show when the caller has not chosen one: the command named after the binary when\n * there is one, otherwise the first command in the tree.\n */\nexport const getDefaultCommand = (tool: Tool): Command | null => {\n const commands = getAllCommands(tool);\n return (\n commands.find(\n (command) => command.displayName.toLowerCase() === tool.binaryName.toLowerCase(),\n ) ??\n commands[0] ??\n null\n );\n};\n\n/** The chain of commands from the outermost ancestor down to the one with this key. */\nexport const getCommandChain = (tool: Tool, key: string): Command[] => {\n const walk = (commands: Command[], path: Command[]): Command[] | null => {\n for (const command of commands) {\n const next = [...path, command];\n if (command.key === key) return next;\n const found = walk(command.commands ?? [], next);\n if (found) return found;\n }\n return null;\n };\n return walk(tool.commands ?? [], []) ?? [];\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const chain = getCommandChain(tool, command.key);\n if (chain.length === 0) return command.displayName;\n return chain.map((step) => step.displayName).join(\" \");\n};\n\n/**\n * A recursive parameter is inherited: it belongs to its command and to every command below it.\n * Root-scoped, it is inherited by the whole tree.\n */\nexport const isInheritedParameter = (param: Parameter): boolean => param.recursive === true;\n\n/**\n * Resolves the parameters that apply to the currently selected command: its own parameters,\n * plus those inherited from its ancestors via `recursive`, outermost ancestor first.\n */\nexport const resolveApplicableParameters = (\n tool: Tool,\n selectedCommand?: Command | null,\n): Parameter[] => {\n const rootParameters = tool.parameters ?? [];\n\n if (!selectedCommand) return rootParameters;\n\n // Tool-level recursive parameters are inherited by every command in the tree.\n const resolved: Parameter[] = rootParameters.filter(isInheritedParameter);\n const chain = getCommandChain(tool, selectedCommand.key);\n\n for (const command of chain) {\n for (const parameter of command.parameters ?? []) {\n if (command.key === selectedCommand.key || parameter.recursive) {\n resolved.push(parameter);\n }\n }\n }\n\n return resolved;\n};\n\n/** The parameters declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getCommandParameters = (tool: Tool, commandKey: string | null): Parameter[] => {\n if (commandKey === null) return tool.parameters ?? [];\n return findCommand(tool, commandKey)?.parameters ?? [];\n};\n\n/** The exclusion groups declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getExclusionGroups = (tool: Tool, commandKey: string | null): ExclusionGroup[] => {\n if (commandKey === null) return tool.exclusionGroups ?? [];\n return findCommand(tool, commandKey)?.exclusionGroups ?? [];\n};\n\n/** Every exclusion group in the tool, root invocation first, in command order. */\nexport const getAllExclusionGroups = (tool: Tool): ExclusionGroup[] =>\n (tool.exclusionGroups ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.exclusionGroups ?? []),\n );\n\n/** Whether a parameter's current value counts as provided. */\nexport const hasParameterValue = (value: ParameterValue | undefined): boolean =>\n value !== undefined &&\n value !== \"\" &&\n value !== false &&\n !(Array.isArray(value) && value.every((entry) => entry === \"\"));\n\n/**\n * The exclusion groups that constrain a selection: those with at least one member among the\n * parameters that apply to `selectedCommand`.\n */\nexport const resolveExclusionGroups = (\n tool: Tool,\n selectedCommand?: Command | null,\n): ExclusionGroup[] => {\n const applicable = new Set(resolveApplicableParameters(tool, selectedCommand).map((p) => p.key));\n return getAllExclusionGroups(tool).filter((group) =>\n group.parameterKeys.some((key) => applicable.has(key)),\n );\n};\n\n/**\n * The parameters a mutually exclusive group rules out, keyed by parameter, given what is\n * provided. Its members are alternatives to one another, so once one is provided every other\n * member is ruled out; the first provided member of each group keeps its place.\n */\nexport const excludedParameters = (\n groups: ExclusionGroup[],\n values: Record,\n): Map => {\n const excluded = new Map();\n for (const group of groups) {\n if (group.exclusionType !== \"mutual_exclusive\") continue;\n const [provided] = group.parameterKeys.filter((key) => hasParameterValue(values[key]));\n if (provided === undefined) continue;\n for (const key of group.parameterKeys) {\n if (key !== provided) excluded.set(key, group);\n }\n }\n return excluded;\n};\n\n/** The parameters a `required_one_of` group makes mandatory, while none of its members is provided. */\nexport const requiredParameterKeys = (\n groups: ExclusionGroup[],\n values: Record,\n): Set => {\n const required = new Set();\n for (const group of groups) {\n if (group.exclusionType !== \"required_one_of\") continue;\n if (group.parameterKeys.some((key) => hasParameterValue(values[key]))) continue;\n for (const key of group.parameterKeys) required.add(key);\n }\n return required;\n};\n\n/** Every parameter in the tool, root invocation first, in command order. */\nexport const getAllParameters = (tool: Tool): Parameter[] =>\n (tool.parameters ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.parameters ?? []),\n );\n\n/**\n * Rewrites a command tree bottom-up, handing `transform` each command with its children already\n * mapped. Walks that drop commands need their own traversal, since this one is one-to-one.\n */\nexport const mapCommandTree = (\n commands: Command[],\n transform: (command: Command) => Command,\n): Command[] =>\n commands.map((command) =>\n transform(\n command.commands?.length\n ? { ...command, commands: mapCommandTree(command.commands, transform) }\n : command,\n ),\n );\n\n/** Applies `update` to the command with `key` anywhere in the tree, leaving every other command alone. */\nexport const updateCommand = (\n tool: Tool,\n key: string,\n update: (command: Command) => Command,\n): Tool => ({\n ...tool,\n commands: mapCommandTree(tool.commands ?? [], (command) =>\n command.key === key ? update(command) : command,\n ),\n});\n\n/** Drops the command with `key` and everything nested beneath it. */\nexport const removeCommand = (tool: Tool, key: string): Tool => ({\n ...tool,\n commands: dropCommand(tool.commands ?? [], key),\n});\n\nconst dropCommand = (commands: Command[], key: string): Command[] =>\n commands\n .filter((command) => command.key !== key)\n .map((command) =>\n command.commands?.length\n ? { ...command, commands: dropCommand(command.commands, key) }\n : command,\n );\n\n/**\n * Applies `update` to the parameters an owner declares: the command with `ownerKey`, or the tool's\n * own parameters when it is null. `recursive` decides where a parameter *applies*, never where it\n * is written, so this deliberately does not touch inherited parameters.\n */\nexport const updateParameters = (\n tool: Tool,\n ownerKey: string | null,\n update: (parameters: Parameter[]) => Parameter[],\n): Tool =>\n ownerKey === null\n ? { ...tool, parameters: update(tool.parameters ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n parameters: update(command.parameters ?? []),\n }));\n\n/** Same as {@link updateParameters} for the exclusion groups an owner declares. */\nexport const updateExclusionGroups = (\n tool: Tool,\n ownerKey: string | null,\n update: (groups: ExclusionGroup[]) => ExclusionGroup[],\n): Tool =>\n ownerKey === null\n ? { ...tool, exclusionGroups: update(tool.exclusionGroups ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n exclusionGroups: update(command.exclusionGroups ?? []),\n }));\n\n/** Drops the parameter with `key` from the set an owner declares. */\nexport const removeParameter = (tool: Tool, ownerKey: string | null, key: string): Tool =>\n updateParameters(tool, ownerKey, (parameters) =>\n parameters.filter((parameter) => parameter.key !== key),\n );\n\n/** Reorders `items` so the given keys take those positions, stamping each item's `sortOrder`. */\nexport const reorderByKeys = (\n items: T[],\n keys: string[],\n): T[] => {\n const slots: number[] = [];\n const byKey = new Map();\n const reordered = new Set(keys);\n\n items.forEach((item, index) => {\n byKey.set(item.key, item);\n if (reordered.has(item.key)) slots.push(index);\n });\n\n const next = [...items];\n keys.forEach((key, sortOrder) => {\n const slot = slots[sortOrder];\n const item = byKey.get(key);\n if (slot !== undefined && item) next[slot] = { ...item, sortOrder };\n });\n return next;\n};\n", "type": "registry:file", - "target": "components/commandly/types/flat.ts" + "target": "components/commandly/utils/tool.ts" }, { - "path": "registry/commandly/types/nested.ts", - "content": "import type {\n ExclusionType,\n ParameterDataType,\n ParameterDependencyType,\n ParameterEnumValues,\n ParameterMetadata,\n ParameterType,\n ParameterValidationType,\n ToolInfo,\n ToolMetadata,\n} from \"@/components/commandly/types/flat\";\n\nexport interface NestedParameterValidation {\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. max length number or regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport interface NestedParameterDependency {\n /** Name of the parameter this dependency references. */\n dependsOnParameter: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport interface NestedParameter {\n /** Human-readable display name of the parameter. */\n name: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: NestedParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: NestedParameterDependency[];\n}\n\nexport interface NestedCommand {\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters that belong directly to this command. */\n parameters: NestedParameter[];\n /** Nested subcommands of this command. */\n subcommands: NestedCommand[] /** Groups of parameters with mutual exclusion or required-one-of constraints scoped to this command. */;\n exclusionGroups?: NestedExclusionGroup[];\n}\n\nexport interface NestedExclusionGroup {\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Names of the parameters that participate in this exclusion group. */\n parameters: string[];\n}\n\nexport interface NestedTool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n /** Parameters that belong to the root invocation when no commands exist. */\n rootParameters: NestedParameter[];\n /** Parameters that apply to all commands globally. */\n globalParameters: NestedParameter[];\n /** Hierarchical list of commands and their nested subcommands. */\n commands: NestedCommand[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: NestedExclusionGroup[] | null;\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/utils/generate-command.ts", + "content": "import type { Command, Parameter, ParameterValue, Tool } from \"@/components/commandly/types/tool\";\nimport {\n excludedParameters,\n getAllParameters,\n getCommandPath,\n getDefaultCommand,\n hasParameterValue,\n resolveApplicableParameters,\n resolveExclusionGroups,\n} from \"@/components/commandly/utils/tool\";\n\nexport interface GenerateCommandOptions {\n selectedCommand?: Command | null;\n /** Index into a parameter's flag forms to emit; falls back to the canonical form. */\n flagFormIndex?: number;\n}\n\n/**\n * The full flag for a parameter. For `Flag` and `Option` types this is the key itself, which\n * carries its own dashes (e.g. \"--output\", \"-list\"). Positional arguments have no flag.\n */\nexport const getCanonicalFlag = (param: Parameter): string => param.key;\n\n/** Every form that invokes a parameter: the full flag first, then its short and other names. */\nexport const getFlagForms = (param: Parameter): string[] => {\n if (param.parameterType === \"Argument\") return [];\n const forms = [param.key, ...(param.aliases ?? [])];\n return forms.filter((form, index) => forms.indexOf(form) === index);\n};\n\n/** The highest number of flag forms any parameter offers: its canonical flag plus its aliases. */\nexport const getFlagFormCount = (tool: Tool): number =>\n getAllParameters(tool).reduce((max, param) => Math.max(max, getFlagForms(param).length), 0);\n\n/** Labels for the flag positions: position 0 is the parameter's own key, the rest are its aliases. */\nconst FLAG_FORM_LABELS = [\"Full name\", \"Short name\"];\n\n/** One label per flag position any parameter of the tool offers. */\nexport const getToolFlagForms = (tool: Tool): string[] =>\n Array.from(\n { length: getFlagFormCount(tool) },\n (_, index) => FLAG_FORM_LABELS[index] ?? `Alternate ${index}`,\n );\n\nexport function generateCommand(\n tool: Tool,\n parameterValues: Record,\n options: GenerateCommandOptions = {},\n): string {\n const hasCommands = tool.commands.length > 0;\n const selectedCommand =\n options.selectedCommand === undefined ? getDefaultCommand(tool) : options.selectedCommand;\n const flagFormIndex = options.flagFormIndex ?? 0;\n\n let command = tool.binaryName;\n\n if (hasCommands && selectedCommand) {\n const commandPath = getCommandPath(selectedCommand, tool);\n if (tool.binaryName !== commandPath) {\n command = `${tool.binaryName} ${commandPath}`;\n }\n }\n\n const excluded = excludedParameters(\n resolveExclusionGroups(tool, selectedCommand),\n parameterValues,\n );\n\n const parametersWithValues = resolveApplicableParameters(tool, selectedCommand)\n .filter((param) => !excluded.has(param.key))\n .map((param) => ({ param, value: parameterValues[param.key] }))\n .filter(({ value }) => hasParameterValue(value));\n\n const positionalParams = parametersWithValues\n .filter(({ param }) => param.parameterType === \"Argument\")\n .sort((a, b) => (a.param.position || 0) - (b.param.position || 0));\n\n parametersWithValues.forEach(({ param, value }) => {\n if (param.parameterType === \"Flag\") {\n const flag = getFlagForms(param)[flagFormIndex] ?? getCanonicalFlag(param);\n if (value === true) {\n command += ` ${flag}`;\n } else if (param.isRepeatable && typeof value === \"number\" && value > 0) {\n command += ` ${flag}`.repeat(value);\n }\n return;\n }\n\n if (param.parameterType === \"Option\") {\n const flag = getFlagForms(param)[flagFormIndex] ?? getCanonicalFlag(param);\n\n const separator = param.keyValueSeparator ?? \" \";\n if (Array.isArray(value)) {\n const entries = value.filter((entry) => entry !== \"\");\n if (entries.length === 0) return;\n\n if (param.arraySeparator) {\n command += ` ${flag}${separator}${entries.join(param.arraySeparator)}`;\n return;\n }\n\n entries.forEach((entry) => {\n command += ` ${flag}${separator}${entry}`;\n });\n return;\n }\n\n command += ` ${flag}${separator}${value}`;\n }\n });\n\n positionalParams.forEach(({ value }) => {\n if (!Array.isArray(value)) {\n command += ` ${value}`;\n }\n });\n\n return command;\n}\n", "type": "registry:file", - "target": "components/commandly/types/nested.ts" + "target": "components/commandly/utils/generate-command.ts" } ], "type": "registry:component" diff --git a/public/r/ui.json b/public/r/ui.json index a5aa56d..8383245 100644 --- a/public/r/ui.json +++ b/public/r/ui.json @@ -6,14 +6,22 @@ "dependencies": [ "react", "lucide-react", - "sonner" + "sonner", + "class-variance-authority" ], "registryDependencies": [ + "badge", "button", + "card", + "collapsible", + "command", "dialog", "input", "label", + "popover", "select", + "separator", + "switch", "textarea", "tabs", "tooltip", @@ -21,53 +29,95 @@ "hover-card" ], "files": [ + { + "path": "src/components/ui/multi-select.tsx", + "content": "import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport {\r\n CheckIcon,\r\n XCircleIcon,\r\n ChevronDownIcon,\r\n XIcon,\r\n WandSparklesIcon,\r\n} from \"lucide-react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Badge } from \"@/components/ui/badge\";\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\";\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandSeparator,\r\n} from \"@/components/ui/command\";\r\n\r\n/**\r\n * Variants for the multi-select component to handle different styles.\r\n * Uses class-variance-authority (cva) to define different styles based on \"variant\" prop.\r\n */\r\nconst multiSelectVariants = cva(\"m-1\", {\r\n variants: {\r\n variant: {\r\n default: \"border-foreground/10 text-foreground bg-card hover:bg-card/80\",\r\n secondary:\r\n \"border-foreground/10 bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n destructive:\r\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\r\n inverted: \"inverted\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n});\r\n\r\n/**\r\n * Props for MultiSelect component\r\n */\r\ninterface MultiSelectProps\r\n extends React.ButtonHTMLAttributes,\r\n VariantProps {\r\n /**\r\n * An array of option objects to be displayed in the multi-select component.\r\n * Each option object has a label, value, and an optional icon.\r\n */\r\n options: {\r\n /** The text to display for the option. */\r\n label: string;\r\n /** The unique value associated with the option. */\r\n value: string;\r\n /** Optional icon component to display alongside the option. */\r\n icon?: React.ComponentType<{ className?: string }>;\r\n }[];\r\n\r\n /**\r\n * Callback function triggered when the selected values change.\r\n * Receives an array of the new selected values.\r\n */\r\n onValueChange: (value: string[]) => void;\r\n\r\n /** The default selected values when the component mounts. */\r\n defaultValue?: string[];\r\n\r\n /**\r\n * Placeholder text to be displayed when no values are selected.\r\n * Optional, defaults to \"Select options\".\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Animation duration in seconds for the visual effects (e.g., bouncing badges).\r\n * Optional, defaults to 0 (no animation).\r\n */\r\n animation?: number;\r\n\r\n /**\r\n * Maximum number of items to display. Extra selected items will be summarized.\r\n * Optional, defaults to 3.\r\n */\r\n maxCount?: number;\r\n\r\n /**\r\n * The modality of the popover. When set to true, interaction with outside elements\r\n * will be disabled and only popover content will be visible to screen readers.\r\n * Optional, defaults to false.\r\n */\r\n modalPopover?: boolean;\r\n\r\n /**\r\n * If true, renders the multi-select component as a child of another component.\r\n * Optional, defaults to false.\r\n */\r\n asChild?: boolean;\r\n\r\n /**\r\n * Additional class names to apply custom styles to the multi-select component.\r\n * Optional, can be used to add custom styles.\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const MultiSelect = React.forwardRef<\r\n HTMLButtonElement,\r\n MultiSelectProps\r\n>(\r\n (\r\n {\r\n options,\r\n onValueChange,\r\n variant,\r\n defaultValue = [],\r\n placeholder = \"Select options\",\r\n animation = 0,\r\n maxCount = 3,\r\n modalPopover = false,\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [selectedValues, setSelectedValues] =\r\n React.useState(defaultValue);\r\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\r\n const [isAnimating, setIsAnimating] = React.useState(false);\r\n\r\n const handleInputKeyDown = (\r\n event: React.KeyboardEvent\r\n ) => {\r\n if (event.key === \"Enter\") {\r\n setIsPopoverOpen(true);\r\n } else if (event.key === \"Backspace\" && !event.currentTarget.value) {\r\n const newSelectedValues = [...selectedValues];\r\n newSelectedValues.pop();\r\n setSelectedValues(newSelectedValues);\r\n onValueChange(newSelectedValues);\r\n }\r\n };\r\n\r\n const toggleOption = (option: string) => {\r\n const newSelectedValues = selectedValues.includes(option)\r\n ? selectedValues.filter((value) => value !== option)\r\n : [...selectedValues, option];\r\n setSelectedValues(newSelectedValues);\r\n onValueChange(newSelectedValues);\r\n };\r\n\r\n const handleClear = () => {\r\n setSelectedValues([]);\r\n onValueChange([]);\r\n };\r\n\r\n const handleTogglePopover = () => {\r\n setIsPopoverOpen((prev) => !prev);\r\n };\r\n\r\n const clearExtraOptions = () => {\r\n const newSelectedValues = selectedValues.slice(0, maxCount);\r\n setSelectedValues(newSelectedValues);\r\n onValueChange(newSelectedValues);\r\n };\r\n\r\n const toggleAll = () => {\r\n if (selectedValues.length === options.length) {\r\n handleClear();\r\n } else {\r\n const allValues = options.map((option) => option.value);\r\n setSelectedValues(allValues);\r\n onValueChange(allValues);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {selectedValues.length > 0 ? (\r\n
\r\n
\r\n {selectedValues.slice(0, maxCount).map((value) => {\r\n const option = options.find((o) => o.value === value);\r\n const IconComponent = option?.icon;\r\n return (\r\n \r\n {IconComponent && (\r\n \r\n )}\r\n {option?.label}\r\n {\r\n event.stopPropagation();\r\n toggleOption(value);\r\n }}\r\n />\r\n \r\n );\r\n })}\r\n {selectedValues.length > maxCount && (\r\n \r\n {maxCount > 0\r\n ? `+ ${selectedValues.length - maxCount} more`\r\n : `${selectedValues.length} selected`}\r\n {\r\n event.stopPropagation();\r\n clearExtraOptions();\r\n }}\r\n />\r\n \r\n )}\r\n
\r\n
\r\n {\r\n event.stopPropagation();\r\n handleClear();\r\n }}\r\n />\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n {placeholder}\r\n \r\n \r\n
\r\n )}\r\n \r\n
\r\n setIsPopoverOpen(false)}\r\n >\r\n \r\n \r\n \r\n No results found.\r\n \r\n \r\n \r\n \r\n \r\n (Select All)\r\n \r\n {options.map((option) => {\r\n const isSelected = selectedValues.includes(option.value);\r\n return (\r\n toggleOption(option.value)}\r\n className=\"cursor-pointer\"\r\n >\r\n \r\n \r\n \r\n {option.icon && (\r\n \r\n )}\r\n {option.label}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n
\r\n {selectedValues.length > 0 && (\r\n <>\r\n \r\n Clear\r\n \r\n \r\n \r\n )}\r\n setIsPopoverOpen(false)}\r\n className=\"flex-1 justify-center cursor-pointer max-w-full\"\r\n >\r\n Close\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {animation > 0 && selectedValues.length > 0 && (\r\n setIsAnimating(!isAnimating)}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\nMultiSelect.displayName = \"MultiSelect\";\r\n", + "type": "registry:file", + "target": "components/ui/multi-select.tsx" + }, { "path": "registry/commandly/generated-command.tsx", - "content": "import { ParameterValue, Tool, Command } from \"@/components/commandly/types/flat\";\nimport { generateCommand } from \"@/components/commandly/utils/flat\";\nimport { Button } from \"@/components/ui/button\";\nimport { CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Label } from \"@/components/ui/label\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { cn } from \"@/lib/utils\";\nimport { TerminalIcon, CopyIcon, SaveIcon } from \"lucide-react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\nimport { toast } from \"sonner\";\n\ninterface GeneratedCommandProps {\n tool: Tool;\n selectedCommand?: Command | null;\n parameterValues: Record;\n onSaveCommand?: (command: string) => void;\n useLongFlag?: boolean;\n children?: ReactNode;\n}\n\ninterface GeneratedCommandContextValue {\n generatedCommand: string;\n useLongFlag: boolean;\n setUseLongFlag: (value: boolean) => void;\n supportsFlagPreference: boolean;\n onCopyCommand: () => void;\n onSaveCommand?: (command: string) => void;\n}\n\nconst GeneratedCommandContext = createContext(null);\n\nfunction useGeneratedCommandContext() {\n const context = useContext(GeneratedCommandContext);\n\n if (!context) {\n throw new Error(\"GeneratedCommand compound components must be used within GeneratedCommand.\");\n }\n\n return context;\n}\n\nfunction GeneratedCommandRoot({\n tool,\n selectedCommand: providedCommand,\n parameterValues,\n onSaveCommand,\n useLongFlag = false,\n children,\n}: GeneratedCommandProps) {\n const [prefersLongFlag, setPrefersLongFlag] = useState(useLongFlag);\n const supportsFlagPreference = useMemo(\n () =>\n tool.parameters.some(\n (parameter) =>\n parameter.parameterType !== \"Argument\" &&\n Boolean(parameter.shortFlag) &&\n Boolean(parameter.longFlag),\n ),\n [tool.parameters],\n );\n\n useEffect(() => {\n setPrefersLongFlag(useLongFlag);\n }, [useLongFlag]);\n\n const generatedCommand = useMemo(\n () =>\n generateCommand(tool, parameterValues, {\n selectedCommand: providedCommand,\n useLongFlag: prefersLongFlag,\n }),\n [tool, parameterValues, providedCommand, prefersLongFlag],\n );\n\n const copyCommand = useCallback(() => {\n navigator.clipboard.writeText(generatedCommand);\n toast(\"Command copied!\");\n }, [generatedCommand]);\n\n const contextValue = useMemo(\n () => ({\n generatedCommand,\n useLongFlag: prefersLongFlag,\n setUseLongFlag: setPrefersLongFlag,\n supportsFlagPreference,\n onCopyCommand: copyCommand,\n onSaveCommand,\n }),\n [generatedCommand, prefersLongFlag, supportsFlagPreference, copyCommand, onSaveCommand],\n );\n\n return (\n \n {generatedCommand ? (\n (children ?? (\n
\n \n \n
\n ))\n ) : (\n \n )}\n
\n );\n}\n\nfunction GeneratedCommandToolbar({ className, ...props }: ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction GeneratedCommandHeader({\n children,\n className,\n ...props\n}: ComponentProps) {\n return (\n \n \n \n Generated Command\n \n {children}\n \n );\n}\n\nfunction GeneratedCommandFlagPreference({\n className,\n ...props\n}: Omit, \"checked\" | \"onCheckedChange\">) {\n const { supportsFlagPreference, useLongFlag, setUseLongFlag } = useGeneratedCommandContext();\n\n if (!supportsFlagPreference) return null;\n\n return (\n \n );\n}\n\nfunction GeneratedCommandOutput({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand } = useGeneratedCommandContext();\n\n return (\n \n
{generatedCommand}
\n \n );\n}\n\nfunction GeneratedCommandActions({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand, onCopyCommand, onSaveCommand } = useGeneratedCommandContext();\n\n return (\n \n \n \n Copy Command\n \n {onSaveCommand && (\n onSaveCommand(generatedCommand)}\n variant=\"outline\"\n className=\"w-full sm:flex-1\"\n >\n \n Save Command\n \n )}\n \n );\n}\n\nfunction GeneratedCommandEmptyState() {\n return (\n
\n \n

Configure parameters to generate the command.

\n
\n );\n}\n\nexport const GeneratedCommand = Object.assign(GeneratedCommandRoot, {\n Header: GeneratedCommandHeader,\n Toolbar: GeneratedCommandToolbar,\n FlagPreference: GeneratedCommandFlagPreference,\n Output: GeneratedCommandOutput,\n Actions: GeneratedCommandActions,\n EmptyState: GeneratedCommandEmptyState,\n});\n", + "content": "import { ParameterValue, Tool, Command } from \"@/components/commandly/types/tool\";\nimport { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport { generateCommand, getToolFlagForms } from \"@/components/commandly/utils/generate-command\";\nimport { Button } from \"@/components/ui/button\";\nimport { CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Label } from \"@/components/ui/label\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { cn } from \"@/lib/utils\";\nimport { TerminalIcon, CopyIcon, SaveIcon } from \"lucide-react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\nimport { toast } from \"sonner\";\n\ninterface GeneratedCommandProps {\n tool: Tool;\n selectedCommand?: Command | null;\n parameterValues: Record;\n onSaveCommand?: (command: string) => void;\n /** Position emitted by default: 0 is a parameter's full flag, later positions its aliases. */\n defaultFlagFormIndex?: number;\n children?: ReactNode;\n}\n\ninterface FlagFormOption {\n index: number;\n label: string;\n}\n\ninterface GeneratedCommandContextValue {\n generatedCommand: string;\n flagFormIndex: number;\n setFlagFormIndex: (value: number) => void;\n flagFormOptions: FlagFormOption[];\n onCopyCommand: () => void;\n onSaveCommand?: (command: string) => void;\n}\n\nconst GeneratedCommandContext = createContext(null);\n\nfunction useGeneratedCommandContext() {\n const context = useContext(GeneratedCommandContext);\n\n if (!context) {\n throw new Error(\"GeneratedCommand compound components must be used within GeneratedCommand.\");\n }\n\n return context;\n}\n\nfunction GeneratedCommandRoot({\n tool,\n selectedCommand: providedCommand,\n parameterValues,\n onSaveCommand,\n defaultFlagFormIndex = 0,\n children,\n}: GeneratedCommandProps) {\n const [flagFormIndex, setFlagFormIndex] = useState(defaultFlagFormIndex);\n\n const flagFormOptions = useMemo(\n () => getToolFlagForms(tool).map((label, index) => ({ index, label })),\n [tool],\n );\n\n const generatedCommand = useMemo(\n () =>\n generateCommand(tool, parameterValues, {\n selectedCommand: providedCommand,\n flagFormIndex,\n }),\n [tool, parameterValues, providedCommand, flagFormIndex],\n );\n\n const copyCommand = useCallback(() => {\n writeClipboard(generatedCommand).then(\n () => toast(\"Command copied!\"),\n () => toast.error(\"Copy failed\"),\n );\n }, [generatedCommand]);\n\n const contextValue = useMemo(\n () => ({\n generatedCommand,\n flagFormIndex,\n setFlagFormIndex,\n flagFormOptions,\n onCopyCommand: copyCommand,\n onSaveCommand,\n }),\n [generatedCommand, flagFormIndex, flagFormOptions, copyCommand, onSaveCommand],\n );\n\n return (\n \n {generatedCommand ? (\n (children ?? (\n
\n \n \n
\n ))\n ) : (\n \n )}\n
\n );\n}\n\nfunction GeneratedCommandToolbar({ className, ...props }: ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction GeneratedCommandHeader({\n children,\n className,\n ...props\n}: ComponentProps) {\n return (\n \n \n \n Generated Command\n \n {children}\n \n );\n}\n\nfunction GeneratedCommandFlagFormPreference({\n className,\n ...props\n}: Omit, \"value\" | \"onValueChange\">) {\n const { flagFormIndex, setFlagFormIndex, flagFormOptions } = useGeneratedCommandContext();\n\n if (flagFormOptions.length < 2) return null;\n\n return (\n
\n \n setFlagFormIndex(Number(value))}\n >\n \n \n \n \n {flagFormOptions.map((option) => (\n \n {option.label}\n \n ))}\n \n \n
\n );\n}\n\nfunction GeneratedCommandOutput({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand } = useGeneratedCommandContext();\n\n return (\n \n
{generatedCommand}
\n \n );\n}\n\nfunction GeneratedCommandActions({ className, ...props }: ComponentProps<\"div\">) {\n const { generatedCommand, onCopyCommand, onSaveCommand } = useGeneratedCommandContext();\n\n return (\n \n \n \n Copy Command\n \n {onSaveCommand && (\n onSaveCommand(generatedCommand)}\n variant=\"outline\"\n className=\"w-full sm:flex-1\"\n >\n \n Save Command\n \n )}\n \n );\n}\n\nfunction GeneratedCommandEmptyState() {\n return (\n
\n \n

Configure parameters to generate the command.

\n
\n );\n}\n\nexport const GeneratedCommand = Object.assign(GeneratedCommandRoot, {\n Header: GeneratedCommandHeader,\n Toolbar: GeneratedCommandToolbar,\n FlagFormPreference: GeneratedCommandFlagFormPreference,\n Output: GeneratedCommandOutput,\n Actions: GeneratedCommandActions,\n EmptyState: GeneratedCommandEmptyState,\n});\n", "type": "registry:component", "target": "components/commandly/generated-command.tsx" }, { "path": "registry/commandly/json-output.tsx", - "content": "import { Tool } from \"@/components/commandly/types/flat\";\nimport { exportToStructuredJSON } from \"@/components/commandly/utils/flat\";\nimport { convertToNestedStructure } from \"@/components/commandly/utils/nested\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardAction, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport {\n Command as UICommand,\n CommandGroup,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { ScrollArea, ScrollBar } from \"@/components/ui/scroll-area\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, ChevronsUpDownIcon, CopyIcon, Edit2Icon, XIcon } from \"lucide-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { toast } from \"sonner\";\n\nconst jsonOptions = [\n { value: \"nested\", label: \"Nested\" },\n { value: \"flat\", label: \"Flat\" },\n];\n\ntype DiffLine = { type: \"same\" | \"added\" | \"removed\"; text: string };\n\nfunction diffLines(before: string, after: string): DiffLine[] {\n const a = before.split(\"\\n\");\n const b = after.split(\"\\n\");\n const m = a.length;\n const n = b.length;\n const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));\n for (let i = 1; i <= m; i++)\n for (let j = 1; j <= n; j++)\n dp[i][j] =\n a[i - 1] === b[j - 1] ? dp[i - 1][j - 1] + 1 : Math.max(dp[i - 1][j], dp[i][j - 1]);\n const result: DiffLine[] = [];\n let i = m,\n j = n;\n while (i > 0 || j > 0) {\n if (i > 0 && j > 0 && a[i - 1] === b[j - 1]) {\n result.unshift({ type: \"same\", text: a[i - 1] });\n i--;\n j--;\n } else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {\n result.unshift({ type: \"added\", text: b[j - 1] });\n j--;\n } else {\n result.unshift({ type: \"removed\", text: a[i - 1] });\n i--;\n }\n }\n return result;\n}\n\ninterface JsonTypeComponentProps {\n tool: Tool;\n originalTool?: Tool;\n onApply?: (tool: Tool) => void;\n}\n\nexport function JsonOutput({ tool, originalTool, onApply }: JsonTypeComponentProps) {\n const [open, setOpen] = useState(false);\n const [jsonString, setJsonString] = useState();\n const [originalJsonString, setOriginalJsonString] = useState();\n const [jsonType, setJsonType] = useState<\"nested\" | \"flat\">(\"flat\");\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState(\"\");\n const [showDiff, setShowDiff] = useState(true);\n\n useEffect(() => {\n const config =\n jsonType === \"flat\" ? exportToStructuredJSON(tool) : convertToNestedStructure(tool);\n setJsonString(JSON.stringify(config, null, 2));\n }, [jsonType, tool]);\n\n useEffect(() => {\n if (!originalTool) {\n setOriginalJsonString(undefined);\n return;\n }\n const config =\n jsonType === \"flat\"\n ? exportToStructuredJSON(originalTool)\n : convertToNestedStructure(originalTool);\n setOriginalJsonString(JSON.stringify(config, null, 2));\n }, [jsonType, originalTool]);\n\n const diff = useMemo(() => {\n if (!originalJsonString || !jsonString || originalJsonString === jsonString) return null;\n return diffLines(originalJsonString, jsonString);\n }, [originalJsonString, jsonString]);\n\n const diffStats = useMemo(() => {\n if (!diff) return null;\n const added = diff.filter((l) => l.type === \"added\").length;\n const removed = diff.filter((l) => l.type === \"removed\").length;\n return { added, removed };\n }, [diff]);\n\n const handleEditToggle = () => {\n setEditValue(jsonString ?? \"\");\n setIsEditing(true);\n };\n\n const handleApply = () => {\n try {\n const parsed = JSON.parse(editValue) as Tool;\n onApply!(parsed);\n setIsEditing(false);\n } catch {\n toast.error(\"Invalid JSON\", { description: \"Please fix the JSON before applying.\" });\n }\n };\n\n const handleCancel = () => {\n setIsEditing(false);\n setEditValue(\"\");\n };\n\n return (\n \n \n \n
\n Output type:\n \n \n \n {jsonOptions.find((option) => option.value === jsonType)?.label}\n \n \n \n \n \n \n \n {jsonOptions.map((option) => (\n {\n setJsonType(currentValue as \"nested\" | \"flat\");\n setOpen(false);\n }}\n >\n {option.label}\n \n \n ))}\n \n \n \n \n \n
\n
\n
\n {onApply && !isEditing && (\n \n \n \n )}\n {onApply && isEditing && (\n \n \n \n )}\n {\n navigator.clipboard.writeText(jsonString!);\n toast(\"Copied!\");\n }}\n >\n \n \n
\n
\n \n {diffStats && !isEditing && (\n
\n {diffStats.added > 0 && (\n \n +{diffStats.added} added\n \n )}\n {diffStats.removed > 0 && (\n \n -{diffStats.removed} removed\n \n )}\n setShowDiff((v) => !v)}\n >\n {showDiff ? \"Full view\" : \"Diff view\"}\n \n
\n )}\n {isEditing ? (\n
\n \n setEditValue(e.target.value)}\n spellCheck={false}\n />\n \n \n \n
\n \n Cancel\n \n \n Apply\n \n
\n
\n ) : diff && showDiff ? (\n \n
\n              {diff.map((line, idx) => (\n                \n                  \n                    {line.type === \"added\" ? \"+ \" : line.type === \"removed\" ? \"- \" : \"  \"}\n                  \n                  {line.text}\n                \n              ))}\n            
\n \n \n \n ) : (\n \n
\n              {jsonString}\n            
\n \n \n \n )}\n
\n
\n );\n}\n", + "content": "import { JsonTree } from \"@/components/commandly/json-tree\";\nimport { Tool } from \"@/components/commandly/types/tool\";\nimport { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport { collapseUnchanged, diffLines, type DiffLineType } from \"@/components/commandly/utils/diff\";\nimport { exportToStructuredJSON } from \"@/components/commandly/utils/tool-file\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardAction, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { ScrollArea, ScrollBar } from \"@/components/ui/scroll-area\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { cn } from \"@/lib/utils\";\nimport { CopyIcon, Edit2Icon, XIcon } from \"lucide-react\";\nimport { useMemo, useState } from \"react\";\nimport { toast } from \"sonner\";\n\ninterface JsonOutputProps {\n tool: Tool;\n originalTool?: Tool;\n onApply?: (tool: Tool) => void;\n}\n\n/** The gutter marker for each kind of diff line. */\nconst DIFF_MARKER: Record = { same: \" \", added: \"+ \", removed: \"- \" };\n\n/** The row tones for each kind of diff line. */\nconst DIFF_TONE: Record = {\n same: \"text-foreground/80\",\n added: \"bg-green-500/10 text-green-700 dark:text-green-400\",\n removed: \"bg-red-500/10 text-red-700 dark:text-red-400\",\n};\n\nexport function JsonOutput({ tool, originalTool, onApply }: JsonOutputProps) {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState(\"\");\n const [showDiff, setShowDiff] = useState(true);\n\n const jsonString = useMemo(() => JSON.stringify(exportToStructuredJSON(tool), null, 2), [tool]);\n const originalJsonString = useMemo(\n () =>\n originalTool ? JSON.stringify(exportToStructuredJSON(originalTool), null, 2) : undefined,\n [originalTool],\n );\n const data = useMemo(() => JSON.parse(jsonString) as unknown, [jsonString]);\n\n const diff = useMemo(() => {\n if (!originalJsonString || originalJsonString === jsonString) return null;\n return collapseUnchanged(diffLines(originalJsonString, jsonString));\n }, [originalJsonString, jsonString]);\n\n const diffStats = useMemo(() => {\n if (!diff) return null;\n const added = diff.filter((l) => l.type === \"added\").length;\n const removed = diff.filter((l) => l.type === \"removed\").length;\n return { added, removed };\n }, [diff]);\n\n const handleEditToggle = () => {\n setEditValue(jsonString);\n setIsEditing(true);\n };\n\n const handleApply = () => {\n if (!onApply) return;\n try {\n const parsed = JSON.parse(editValue) as Tool;\n onApply(parsed);\n setIsEditing(false);\n } catch {\n toast.error(\"Invalid JSON\", { description: \"Please fix the JSON before applying.\" });\n }\n };\n\n const handleCancel = () => {\n setIsEditing(false);\n setEditValue(\"\");\n };\n\n return (\n \n \n \n
\n \n Structured JSON output for this tool.\n \n
\n
\n
\n {onApply && !isEditing && (\n \n \n \n )}\n {onApply && isEditing && (\n \n \n \n )}\n {\n writeClipboard(jsonString).then(\n () => toast(\"Copied!\"),\n () => toast.error(\"Copy failed\"),\n );\n }}\n >\n \n \n
\n
\n \n {diffStats && !isEditing && (\n
\n {diffStats.added > 0 && (\n \n +{diffStats.added} added\n \n )}\n {diffStats.removed > 0 && (\n \n -{diffStats.removed} removed\n \n )}\n setShowDiff((v) => !v)}\n >\n {showDiff ? \"Full view\" : \"Diff view\"}\n \n
\n )}\n {isEditing ? (\n
\n \n setEditValue(e.target.value)}\n spellCheck={false}\n />\n \n \n \n
\n \n Cancel\n \n \n Apply\n \n
\n
\n ) : diff && showDiff ? (\n \n
\n              {diff.map((row, idx) =>\n                row.type === \"gap\" ? (\n                  \n                    … {row.count} unchanged {row.count === 1 ? \"line\" : \"lines\"}\n                  \n                ) : (\n                  \n                    {DIFF_MARKER[row.type]}\n                    {row.text}\n                  \n                ),\n              )}\n            
\n \n \n \n ) : (\n \n )}\n
\n
\n );\n}\n", "type": "registry:component", "target": "components/commandly/json-output.tsx" }, + { + "path": "registry/commandly/json-tree.tsx", + "content": "import { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport {\n allBranches,\n branchesToDepth,\n childPath,\n copyText,\n countLabel,\n entries,\n isBranch,\n primitiveText,\n searchJson,\n type JsonValueType,\n typeOf,\n within,\n} from \"@/components/commandly/utils/json-tree\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ChevronDownIcon,\n ChevronRightIcon,\n ChevronsDownUpIcon,\n ChevronsUpDownIcon,\n ChevronUpIcon,\n CopyIcon,\n Link2Icon,\n SearchIcon,\n} from \"lucide-react\";\nimport type { KeyboardEvent as ReactKeyboardEvent, ReactNode } from \"react\";\nimport { useCallback, useId, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { toast } from \"sonner\";\n\nconst INDENT = 14;\n\nconst VALUE_CLASS: Record = {\n object: \"text-sky-600 dark:text-sky-400\",\n array: \"text-sky-600 dark:text-sky-400\",\n string: \"text-emerald-600 dark:text-emerald-400\",\n number: \"text-amber-600 dark:text-amber-400\",\n boolean: \"text-violet-600 dark:text-violet-400\",\n null: \"text-muted-foreground italic\",\n other: \"text-muted-foreground\",\n};\n\nfunction Highlight({ text, needle, current }: { text: string; needle: string; current: boolean }) {\n if (!needle) return <>{text};\n const lower = text.toLowerCase();\n const parts: ReactNode[] = [];\n let from = 0;\n let at = lower.indexOf(needle);\n while (at !== -1) {\n if (at > from) parts.push(text.slice(from, at));\n parts.push(\n \n {text.slice(at, at + needle.length)}\n ,\n );\n from = at + needle.length;\n at = lower.indexOf(needle, from);\n }\n if (from < text.length) parts.push(text.slice(from));\n return <>{parts};\n}\n\ntype TreeRow = {\n id: string;\n kind: \"node\" | \"more\";\n level: number;\n name: string | number | null;\n value: unknown;\n type: JsonValueType;\n count: number;\n open: boolean;\n parent: string | null;\n posinset: number;\n setsize: number;\n hidden?: number;\n};\n\nexport interface JsonTreeProps {\n data: unknown;\n rootName?: string;\n defaultExpandDepth?: number;\n pageSize?: number;\n className?: string;\n}\n\nfunction IconAction({\n label,\n onClick,\n disabled,\n tabIndex,\n children,\n}: {\n label: string;\n onClick: () => void;\n disabled?: boolean;\n tabIndex?: number;\n children: ReactNode;\n}) {\n return (\n {\n event.stopPropagation();\n onClick();\n }}\n >\n {children}\n \n );\n}\n\nexport function JsonTree({\n data,\n rootName = \"root\",\n defaultExpandDepth = 2,\n pageSize = 50,\n className,\n}: JsonTreeProps) {\n const treeId = useId();\n const searchRef = useRef(null);\n const rowRefs = useRef(new Map());\n\n const [expanded, setExpanded] = useState(() =>\n branchesToDepth(data, rootName, defaultExpandDepth),\n );\n const base = useMemo(() => new Set(expanded), [expanded]);\n\n const [query, setQuery] = useState(\"\");\n const needle = query.trim().toLowerCase();\n const search = useMemo(\n () => (needle ? searchJson(data, rootName, needle) : null),\n [data, needle, rootName],\n );\n const [closedWhileSearching, setClosedWhileSearching] = useState<{\n needle: string;\n ids: Set;\n }>({ needle: \"\", ids: new Set() });\n const closed = closedWhileSearching.needle === needle ? closedWhileSearching.ids : null;\n const [matchIndex, setMatchIndex] = useState(0);\n const matches = search?.matches ?? [];\n const matchCount = matches.length;\n const matchSet = useMemo(() => new Set(search?.matches ?? []), [search]);\n const currentMatch = matchCount ? matches[Math.min(matchIndex, matchCount - 1)] : null;\n\n const isOpen = useCallback(\n (id: string) => (search?.ancestors.has(id) ? !closed?.has(id) : base.has(id)),\n [base, closed, search],\n );\n\n const [pages, setPages] = useState>({});\n const limitOf = useCallback(\n (id: string) => Math.max((pages[id] ?? 1) * pageSize, search?.needed.get(id) ?? 0),\n [pageSize, pages, search],\n );\n\n const rows = useMemo(() => {\n const out: TreeRow[] = [];\n const visit = (\n value: unknown,\n id: string,\n name: string | number | null,\n level: number,\n parent: string | null,\n posinset: number,\n setsize: number,\n ) => {\n const type = typeOf(value);\n const list = isBranch(type) ? entries(value) : [];\n const open = isBranch(type) && isOpen(id);\n out.push({\n id,\n kind: \"node\",\n level,\n name,\n value,\n type,\n count: list.length,\n open,\n parent,\n posinset,\n setsize,\n });\n if (!open) return;\n const shown = list.slice(0, limitOf(id));\n const hidden = list.length - shown.length;\n const size = shown.length + (hidden > 0 ? 1 : 0);\n shown.forEach(([key, child], index) =>\n visit(child, childPath(id, key), key, level + 1, id, index + 1, size),\n );\n if (hidden > 0) {\n out.push({\n id: `${id}::more`,\n kind: \"more\",\n level: level + 1,\n name: null,\n value: null,\n type: \"other\",\n count: 0,\n open: false,\n parent: id,\n posinset: size,\n setsize: size,\n hidden,\n });\n }\n };\n visit(data, rootName, null, 1, null, 1, 1);\n return out;\n }, [data, isOpen, limitOf, rootName]);\n\n const [activeRaw, setActiveRaw] = useState(rootName);\n const active = useMemo(() => {\n if (rows.some((row) => row.id === activeRaw)) return activeRaw;\n let best = rootName;\n for (const row of rows) {\n if (row.kind === \"node\" && within(row.id, activeRaw) && row.id.length > best.length) {\n best = row.id;\n }\n }\n return best;\n }, [activeRaw, rootName, rows]);\n const activeIndex = Math.max(\n 0,\n rows.findIndex((row) => row.id === active),\n );\n const activeRow = rows[activeIndex];\n\n const pendingFocus = useRef(false);\n const pendingReveal = useRef(false);\n\n useLayoutEffect(() => {\n if (pendingFocus.current) {\n pendingFocus.current = false;\n rowRefs.current.get(active)?.focus({ preventScroll: true });\n }\n if (pendingReveal.current) {\n pendingReveal.current = false;\n rowRefs.current.get(active)?.scrollIntoView({ block: \"nearest\" });\n }\n }, [active, rows]);\n\n const moveTo = (id: string, focus = true, reveal = true) => {\n if (id === activeRaw) {\n if (focus) rowRefs.current.get(id)?.focus({ preventScroll: true });\n if (reveal) rowRefs.current.get(id)?.scrollIntoView({ block: \"nearest\" });\n return;\n }\n pendingFocus.current = focus;\n pendingReveal.current = reveal;\n setActiveRaw(id);\n };\n\n // Reveal the first match once the search has recomputed for the new query.\n const revealedFor = useRef(null);\n useLayoutEffect(() => {\n if (revealedFor.current === needle) return;\n revealedFor.current = needle;\n const first = search?.matches[0];\n if (!first) return;\n pendingReveal.current = true;\n setActiveRaw(first);\n }, [needle, search]);\n\n const toggle = (id: string, next?: boolean) => {\n const open = isOpen(id);\n const want = next ?? !open;\n if (want === open) return;\n if (search?.ancestors.has(id)) {\n const ids = new Set(closed ?? []);\n if (want) ids.delete(id);\n else ids.add(id);\n setClosedWhileSearching({ needle, ids });\n if (want && !base.has(id)) setExpanded([...base, id]);\n return;\n }\n setExpanded(want ? [...base, id] : [...base].filter((item) => item !== id));\n };\n\n const expandAll = () => {\n setExpanded(allBranches(data, rootName));\n setClosedWhileSearching({ needle, ids: new Set() });\n setPages({});\n moveTo(active, false);\n };\n\n const collapseAll = () => {\n setExpanded(isBranch(typeOf(data)) ? [rootName] : []);\n setClosedWhileSearching({\n needle,\n ids: new Set([...(search?.ancestors ?? [])].filter((id) => id !== rootName)),\n });\n setPages({});\n moveTo(rootName, false, false);\n };\n\n const showMore = (parent: string) =>\n setPages((current) => ({ ...current, [parent]: Math.ceil(limitOf(parent) / pageSize) + 1 }));\n\n const copy = (row: TreeRow, kind: \"value\" | \"path\") => {\n const text = kind === \"path\" ? row.id : copyText(row.value, row.type);\n writeClipboard(text).then(\n () => toast(kind === \"path\" ? \"Copied path\" : \"Copied value\"),\n () => toast.error(\"Copy failed\"),\n );\n };\n\n const stepMatch = (step: number) => {\n if (!matchCount) return;\n const next =\n (((Math.min(matchIndex, matchCount - 1) + step) % matchCount) + matchCount) % matchCount;\n setMatchIndex(next);\n moveTo(matches[next], false);\n };\n\n const onQuery = (next: string) => {\n setQuery(next);\n setMatchIndex(0);\n };\n\n const onSearchKeyDown = (event: ReactKeyboardEvent) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n stepMatch(event.shiftKey ? -1 : 1);\n } else if (event.key === \"Escape\" && query) {\n event.preventDefault();\n event.stopPropagation();\n onQuery(\"\");\n } else if (event.key === \"ArrowDown\") {\n event.preventDefault();\n moveTo(active);\n }\n };\n\n const onTreeKeyDown = (event: ReactKeyboardEvent) => {\n const row = rows[activeIndex];\n if (!row || event.altKey) return;\n const mod = event.metaKey || event.ctrlKey;\n if (mod && event.key.toLowerCase() === \"c\") {\n if (row.kind === \"node\" && !window.getSelection()?.toString()) {\n event.preventDefault();\n copy(row, event.shiftKey ? \"path\" : \"value\");\n }\n return;\n }\n if (mod) return;\n const go = (index: number) => {\n event.preventDefault();\n const target = rows[Math.max(0, Math.min(rows.length - 1, index))];\n if (target) moveTo(target.id);\n };\n switch (event.key) {\n case \"ArrowDown\":\n go(activeIndex + 1);\n break;\n case \"ArrowUp\":\n go(activeIndex - 1);\n break;\n case \"Home\":\n go(0);\n break;\n case \"End\":\n go(rows.length - 1);\n break;\n case \"ArrowRight\":\n event.preventDefault();\n if (row.kind === \"node\" && isBranch(row.type)) {\n if (!row.open) toggle(row.id, true);\n else if (row.count) go(activeIndex + 1);\n }\n break;\n case \"ArrowLeft\":\n event.preventDefault();\n if (row.kind === \"node\" && row.open) toggle(row.id, false);\n else if (row.parent) moveTo(row.parent);\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n if (row.kind === \"more\") showMore(row.parent ?? rootName);\n else if (isBranch(row.type)) toggle(row.id);\n break;\n case \"/\":\n event.preventDefault();\n searchRef.current?.focus();\n searchRef.current?.select();\n break;\n default:\n break;\n }\n };\n\n const describe = (row: TreeRow) => {\n const name = row.name === null ? rootName : String(row.name);\n if (row.kind === \"more\") {\n return `Show ${Math.min(pageSize, row.hidden ?? 0)} more, ${row.hidden} hidden`;\n }\n if (isBranch(row.type)) return `${name}, ${row.type}, ${countLabel(row.type, row.count)}`;\n const text = primitiveText(row.value, row.type);\n return `${name}: ${text.length > 60 ? `${text.slice(0, 60)}…` : text}`;\n };\n\n const pathOf = (row: TreeRow) => (row.kind === \"node\" ? row.id : (row.parent ?? \"\"));\n\n return (\n
\n
\n \n
\n \n \n \n \n \n \n
\n
\n\n
\n \n {rows.map((row) => {\n const isActive = row.id === active;\n const branch = isBranch(row.type);\n const mark = search && row.kind === \"node\" && matchSet.has(row.id) ? needle : \"\";\n const current = row.id === currentMatch;\n return (\n {\n if (node) rowRefs.current.set(row.id, node);\n else rowRefs.current.delete(row.id);\n }}\n role=\"treeitem\"\n tabIndex={isActive ? 0 : -1}\n aria-level={row.level}\n aria-posinset={row.posinset}\n aria-setsize={row.setsize}\n aria-expanded={row.kind === \"node\" && branch ? row.open : undefined}\n aria-selected={isActive}\n aria-label={describe(row)}\n className={cn(\n \"group relative flex h-7.5 items-center gap-1 pr-1 text-sm outline-none\",\n \"focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset\",\n isActive ? \"bg-accent/60\" : \"hover:bg-muted/60\",\n )}\n style={{ paddingLeft: (row.level - 1) * INDENT + 4 }}\n onFocus={(event) => {\n if (event.target === event.currentTarget && row.id !== active) {\n setActiveRaw(row.id);\n }\n }}\n onClick={() => {\n if (row.kind === \"more\") {\n showMore(row.parent ?? rootName);\n moveTo(row.id);\n return;\n }\n if (branch) toggle(row.id);\n moveTo(row.id);\n }}\n >\n {row.kind === \"more\" ? (\n \n Show {Math.min(pageSize, row.hidden ?? 0)} more\n {row.hidden} hidden\n \n ) : (\n <>\n \n {branch ? (\n \n ) : null}\n \n \n {row.name === null ? (\n rootName\n ) : typeof row.name === \"number\" ? (\n row.name\n ) : (\n \n )}\n \n \n {row.name === null && branch ? \"\" : \":\"}\n \n {branch ? (\n \n {!row.open ? (\n \n {row.type === \"array\"\n ? \"[…]\"\n : `{ ${entries(row.value)\n .slice(0, 3)\n .map(([key]) => key)\n .join(\", \")}${row.count > 3 ? \", …\" : \"\"} }`}\n \n ) : null}\n \n {countLabel(row.type, row.count)}\n \n \n ) : (\n 40\n ? (row.value as string)\n : undefined\n }\n >\n {row.type === \"string\" ? (\n <>\n "\n \n "\n \n ) : (\n \n )}\n \n )}\n \n copy(row, \"value\")}\n >\n \n \n copy(row, \"path\")}\n >\n \n \n \n \n )}\n
\n );\n })}\n
\n \n\n {activeRow ? (\n
\n \n {pathOf(activeRow)}\n \n \n {activeRow.kind === \"node\"\n ? isBranch(activeRow.type)\n ? `${activeRow.type}, ${countLabel(activeRow.type, activeRow.count)}`\n : activeRow.type\n : \"page\"}\n \n {activeRow.kind === \"node\" ? (\n copy(activeRow, \"path\")}\n >\n \n \n ) : null}\n
\n ) : null}\n \n );\n}\n", + "type": "registry:component", + "target": "components/commandly/json-tree.tsx" + }, { "path": "registry/commandly/tool-renderer.tsx", - "content": "import { ParameterValue } from \"@/components/commandly/types/flat\";\nimport { Command, Tool } from \"@/components/commandly/types/flat\";\nimport {\n ParameterRenderContext,\n ParameterRendererEntry,\n} from \"@/components/commandly/types/renderer\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Command as UICommand,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { MultiSelect } from \"@/components/ui/multi-select\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, ChevronsUpDownIcon, InfoIcon, PlusIcon, XIcon } from \"lucide-react\";\nimport React, { useMemo } from \"react\";\n\nconst findDefaultCommand = (tool: Tool): Command | null => {\n const nameMatchCommand = tool.commands.find(\n (command) => command.name.toLowerCase() === tool.binaryName.toLowerCase(),\n );\n if (nameMatchCommand) return nameMatchCommand;\n\n return tool.commands.length > 0 ? tool.commands[0] : null;\n};\n\ninterface ParameterLabelProps {\n name: string;\n longFlag?: string;\n shortFlag?: string;\n isRequired?: boolean;\n isGlobal?: boolean;\n description?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nfunction ParameterLabel({\n name,\n longFlag,\n shortFlag,\n isRequired,\n isGlobal,\n description,\n className,\n children,\n}: ParameterLabelProps) {\n return (\n \n );\n}\n\nfunction FlagInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n \n \n
\n );\n}\n\nfunction OptionEnumInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n const [open, setOpen] = React.useState(false);\n const separator = parameter.enum?.separator || \",\";\n const options =\n parameter.enum?.values?.map((e) => ({\n value: e.value,\n label: e.displayName || e.value,\n })) ?? [];\n\n const label = (\n \n );\n\n if (parameter.enum?.allowMultiple) {\n const selected = Array.isArray(value)\n ? (value as string[]).filter(Boolean)\n : value\n ? (value as string).split(separator).filter(Boolean)\n : [];\n return (\n
\n {label}\n onUpdate(vals.join(separator))}\n placeholder=\"Select options\"\n />\n
\n );\n }\n\n return (\n
\n {label}\n \n \n \n {options.find((o) => o.value === value)?.label ?? \"Select an option\"}\n \n \n \n \n \n \n \n No option found.\n \n {options.map((option) => (\n {\n onUpdate(currentValue === value ? \"\" : currentValue);\n setOpen(false);\n }}\n >\n {option.label}\n \n \n ))}\n \n \n \n \n \n
\n );\n}\n\nfunction OptionBooleanInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n onUpdate(checked.toString())}\n />\n \n
\n );\n}\n\nfunction OptionTextInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n />\n
\n );\n}\n\nfunction ArgumentInput({ parameter, value, onUpdate }: ParameterRenderContext) {\n return (\n
\n \n \n {parameter.parameterType}\n {parameter.position !== undefined && ` (${parameter.position})`}\n \n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n />\n
\n );\n}\n\ninterface RepeatableWrapperProps {\n parameter: ParameterRenderContext[\"parameter\"];\n value: ParameterRenderContext[\"value\"];\n onUpdate: ParameterRenderContext[\"onUpdate\"];\n renderEntry: ParameterRendererEntry[\"component\"];\n}\n\nfunction RepeatableWrapper({ parameter, value, onUpdate, renderEntry }: RepeatableWrapperProps) {\n const toArray = (v: ParameterRenderContext[\"value\"]): string[] => {\n if (Array.isArray(v)) return v;\n if (v !== undefined && v !== \"\" && v !== false) return [String(v)];\n return [\"\"];\n };\n\n const values = toArray(value);\n\n const updateAt = (index: number, val: ParameterRenderContext[\"value\"]) => {\n const next = [...values];\n next[index] = String(val);\n onUpdate(next);\n };\n\n const addRow = () => onUpdate([...values, \"\"]);\n\n const removeAt = (index: number) => {\n const next = values.filter((_, i) => i !== index);\n onUpdate(next);\n };\n\n return (\n
\n {values.map((val, index) => (\n \n
\n {renderEntry({ parameter, value: val, onUpdate: (v) => updateAt(index, v) })}\n
\n {index > 0 && (\n removeAt(index)}\n >\n \n \n )}\n
\n ))}\n \n \n Add another\n \n \n );\n}\n\nexport function defaultComponents(): ParameterRendererEntry[] {\n return [\n { condition: (p) => p.parameterType === \"Flag\", component: (ctx) => },\n {\n condition: (p) => p.parameterType === \"Argument\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Enum\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Boolean\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\",\n component: (ctx) => ,\n },\n ];\n}\n\ninterface ToolRendererProps {\n selectedCommand?: Command | null;\n tool: Tool;\n catalog?: ParameterRendererEntry[];\n parameterValues: Record;\n updateParameterValue: (parameterKey: string, value: ParameterValue) => void;\n}\n\nexport function ToolRenderer({\n selectedCommand: providedCommand,\n tool,\n catalog = defaultComponents(),\n parameterValues,\n updateParameterValue,\n}: ToolRendererProps) {\n const selectedCommand =\n providedCommand === undefined ? findDefaultCommand(tool) : providedCommand;\n const hasCommands = tool.commands.length > 0;\n\n const visibleParameters = useMemo(() => {\n if (!hasCommands || !selectedCommand) {\n return tool.parameters.filter((p) => !p.commandKey || p.isGlobal);\n }\n return tool.parameters.filter(\n (param) => param.commandKey === selectedCommand?.key || param.isGlobal,\n );\n }, [tool, hasCommands, selectedCommand]);\n\n return (\n \n
\n {visibleParameters.length > 0 ? (\n visibleParameters.map((parameter) => {\n const value = parameterValues[parameter.key] ?? \"\";\n const onUpdate = (val: ParameterValue) => updateParameterValue(parameter.key, val);\n const entry = catalog.find((e) => e.condition(parameter));\n if (!entry) return null;\n return (\n \n {parameter.isRepeatable ? (\n \n ) : (\n entry.component({ parameter, value, onUpdate })\n )}\n \n );\n })\n ) : (\n

No parameters available for this command.

\n )}\n
\n
\n );\n}\n", + "content": "import {\n ParameterRenderContext,\n ParameterRendererEntry,\n} from \"@/components/commandly/types/renderer\";\nimport { Command, ParameterValue, Tool } from \"@/components/commandly/types/tool\";\nimport { getFlagForms } from \"@/components/commandly/utils/generate-command\";\nimport {\n excludedParameters,\n getDefaultCommand,\n requiredParameterKeys,\n resolveApplicableParameters,\n resolveExclusionGroups,\n} from \"@/components/commandly/utils/tool\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Command as UICommand,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { MultiSelect } from \"@/components/ui/multi-select\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, ChevronsUpDownIcon, InfoIcon, PlusIcon, XIcon } from \"lucide-react\";\nimport React, { useMemo } from \"react\";\n\ninterface ParameterLabelProps {\n name: string;\n flags?: string[];\n isRequired?: boolean;\n recursive?: boolean;\n excludedBy?: string;\n description?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nfunction ParameterLabel({\n name,\n flags,\n isRequired,\n recursive,\n excludedBy,\n description,\n className,\n children,\n}: ParameterLabelProps) {\n return (\n \n );\n}\n\nfunction FlagInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n \n \n
\n );\n}\n\nfunction OptionEnumInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n const [open, setOpen] = React.useState(false);\n const separator = parameter.enum?.separator || \",\";\n const options =\n parameter.enum?.values?.map((e) => ({\n value: e.value,\n label: e.displayName || e.value,\n })) ?? [];\n\n const label = (\n \n );\n\n if (parameter.enum?.allowMultiple) {\n const selected = Array.isArray(value)\n ? (value as string[]).filter(Boolean)\n : value\n ? (value as string).split(separator).filter(Boolean)\n : [];\n return (\n
\n {label}\n onUpdate(vals.join(separator))}\n placeholder=\"Select options\"\n disabled={!!excludedBy}\n />\n
\n );\n }\n\n return (\n
\n {label}\n \n \n \n {options.find((o) => o.value === value)?.label ?? \"Select an option\"}\n \n \n \n \n \n \n \n No option found.\n \n {options.map((option) => (\n {\n onUpdate(currentValue === value ? \"\" : currentValue);\n setOpen(false);\n }}\n >\n {option.label}\n \n \n ))}\n \n \n \n \n \n
\n );\n}\n\nfunction OptionBooleanInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n onUpdate(checked.toString())}\n disabled={!!excludedBy}\n />\n \n
\n );\n}\n\nfunction OptionTextInput({\n parameter,\n flags,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n disabled={!!excludedBy}\n />\n
\n );\n}\n\nfunction ArgumentInput({\n parameter,\n value,\n onUpdate,\n isRequired,\n excludedBy,\n}: ParameterRenderContext) {\n return (\n
\n \n \n {parameter.parameterType}\n {parameter.position !== undefined && ` (${parameter.position})`}\n \n \n onUpdate(e.target.value)}\n placeholder=\"Enter value\"\n disabled={!!excludedBy}\n />\n
\n );\n}\n\ninterface RepeatableWrapperProps {\n context: ParameterRenderContext;\n renderEntry: ParameterRendererEntry[\"component\"];\n}\n\nfunction RepeatableWrapper({ context, renderEntry }: RepeatableWrapperProps) {\n const toArray = (value: ParameterValue): string[] => {\n if (Array.isArray(value)) return value;\n if (value !== undefined && value !== \"\" && value !== false) return [String(value)];\n return [\"\"];\n };\n\n const values = toArray(context.value);\n\n const updateAt = (index: number, value: ParameterValue) => {\n const next = [...values];\n next[index] = String(value);\n context.onUpdate(next);\n };\n\n const addRow = () => context.onUpdate([...values, \"\"]);\n\n const removeAt = (index: number) => context.onUpdate(values.filter((_, i) => i !== index));\n\n return (\n
\n {values.map((value, index) => (\n \n
\n {renderEntry({ ...context, value, onUpdate: (v) => updateAt(index, v) })}\n
\n {index > 0 && (\n removeAt(index)}\n >\n \n \n )}\n
\n ))}\n \n \n Add another\n \n \n );\n}\n\nexport function defaultComponents(): ParameterRendererEntry[] {\n return [\n { condition: (p) => p.parameterType === \"Flag\", component: (ctx) => },\n {\n condition: (p) => p.parameterType === \"Argument\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Enum\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\" && p.dataType === \"Boolean\",\n component: (ctx) => ,\n },\n {\n condition: (p) => p.parameterType === \"Option\",\n component: (ctx) => ,\n },\n ];\n}\n\ninterface ToolRendererProps {\n selectedCommand?: Command | null;\n tool: Tool;\n catalog?: ParameterRendererEntry[];\n parameterValues: Record;\n updateParameterValue: (parameterKey: string, value: ParameterValue) => void;\n}\n\nexport function ToolRenderer({\n selectedCommand: providedCommand,\n tool,\n catalog = defaultComponents(),\n parameterValues,\n updateParameterValue,\n}: ToolRendererProps) {\n const selectedCommand = providedCommand === undefined ? getDefaultCommand(tool) : providedCommand;\n\n const visibleParameters = useMemo(\n () => resolveApplicableParameters(tool, selectedCommand),\n [tool, selectedCommand],\n );\n\n const exclusionGroups = useMemo(\n () => resolveExclusionGroups(tool, selectedCommand),\n [tool, selectedCommand],\n );\n const excluded = useMemo(\n () => excludedParameters(exclusionGroups, parameterValues),\n [exclusionGroups, parameterValues],\n );\n const required = useMemo(\n () => requiredParameterKeys(exclusionGroups, parameterValues),\n [exclusionGroups, parameterValues],\n );\n\n return (\n
\n {visibleParameters.length > 0 ? (\n visibleParameters.map((parameter) => {\n const entry = catalog.find((e) => e.condition(parameter));\n if (!entry) return null;\n\n const context: ParameterRenderContext = {\n parameter,\n flags: getFlagForms(parameter),\n value: parameterValues[parameter.key] ?? \"\",\n onUpdate: (value) => updateParameterValue(parameter.key, value),\n isRequired: parameter.isRequired || required.has(parameter.key),\n excludedBy: excluded.get(parameter.key)?.displayName,\n };\n\n return (\n \n {parameter.isRepeatable ? (\n \n ) : (\n entry.component(context)\n )}\n \n );\n })\n ) : (\n

No parameters available for this command.

\n )}\n
\n );\n}\n", "type": "registry:component", "target": "components/commandly/tool-renderer.tsx" }, + { + "path": "registry/commandly/command-tree.tsx", + "content": "import { Command, Tool } from \"@/components/commandly/types/tool\";\nimport {\n getCommandPath,\n getAllCommands,\n isInheritedParameter,\n} from \"@/components/commandly/utils/tool\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"@/components/ui/collapsible\";\nimport { Input } from \"@/components/ui/input\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { cn } from \"@/lib/utils\";\nimport { ChevronRightIcon, FolderIcon, KeyboardIcon, SearchIcon, TerminalIcon } from \"lucide-react\";\nimport { useMemo, useState } from \"react\";\n\n/** The parameter-count badge shown beside a command in the tree. */\nexport function CountBadge({\n count,\n variant = \"secondary\",\n}: {\n count: number;\n variant?: \"secondary\" | \"outline\";\n}) {\n if (count <= 0) return null;\n return (\n \n {count}\n \n );\n}\n\n/** A command matches on the path its result row shows, plus what it does and its other names. */\nconst matches = (command: Command, path: string, query: string): boolean => {\n const haystack = [path, command.description, ...(command.aliases ?? [])]\n .filter(Boolean)\n .join(\" \")\n .toLowerCase();\n return haystack.includes(query);\n};\n\ninterface CommandNodeProps {\n command: Command;\n /** How many ancestors the row is nested under; drives its indent. */\n depth: number;\n selectedCommand?: Command | null;\n onSelectCommand: (command: Command | null) => void;\n}\n\n/** One row of the tree, and for a branch command the subtree it opens. */\nfunction CommandNode({ command, depth, selectedCommand, onSelectCommand }: CommandNodeProps) {\n const [open, setOpen] = useState(true);\n\n const subcommands = command.commands ?? [];\n const isSelected = selectedCommand?.key === command.key;\n const parameterCount = command.parameters?.length ?? 0;\n\n const rowClass = cn(\n \"flex w-full items-center gap-1.5 rounded px-2 py-1.5 text-left text-sm hover:bg-muted\",\n isSelected && \"bg-muted font-medium\",\n );\n\n const label = (\n \n {command.displayName}\n {command.interactive && (\n \n )}\n {parameterCount > 0 && }\n \n );\n\n if (subcommands.length === 0) {\n return (\n onSelectCommand(command)}\n title={command.description}\n >\n {label}\n \n );\n }\n\n return (\n \n onSelectCommand(command)}\n title={command.description}\n >\n \n {label}\n \n \n {subcommands.map((subcommand) => (\n \n ))}\n \n \n );\n}\n\ninterface CommandTreeProps {\n tool: Tool;\n selectedCommand?: Command | null;\n onSelectCommand: (command: Command | null) => void;\n className?: string;\n}\n\nexport function CommandTree({\n tool,\n selectedCommand,\n onSelectCommand,\n className,\n}: CommandTreeProps) {\n const [query, setQuery] = useState(\"\");\n const normalizedQuery = query.trim().toLowerCase();\n\n const searchResults = useMemo(\n () =>\n normalizedQuery\n ? getAllCommands(tool).filter((command) =>\n matches(command, getCommandPath(command, tool), normalizedQuery),\n )\n : [],\n [normalizedQuery, tool],\n );\n\n const rootParameterCount = tool.parameters.filter((parameter) => !parameter.recursive).length;\n const inheritedParameterCount = tool.parameters.filter(isInheritedParameter).length;\n const isRootSelected = selectedCommand === null;\n\n return (\n // `h-full` lets a bounded parent cap the tree, so a long one scrolls here instead of\n // stretching the page.\n
\n
\n \n setQuery(event.target.value)}\n placeholder=\"Search commands\"\n aria-label=\"Search commands\"\n className=\"pl-8\"\n />\n
\n\n \n
\n {normalizedQuery ? (\n searchResults.length === 0 ? (\n

No command found.

\n ) : (\n searchResults.map((command) => (\n onSelectCommand(command)}\n title={command.description}\n >\n {getCommandPath(command, tool)}\n \n ))\n )\n ) : (\n <>\n onSelectCommand(null)}\n >\n \n {tool.binaryName}\n \n \n \n {tool.commands.map((command) => (\n \n ))}\n \n )}\n
\n
\n\n {tool.commands.length > 0 && (\n

\n \n {getAllCommands(tool).length} commands\n

\n )}\n
\n );\n}\n", + "type": "registry:component", + "target": "components/commandly/command-tree.tsx" + }, + { + "path": "registry/commandly/installation.tsx", + "content": "import {\n Installation,\n INSTALLATION_METHODS,\n InstallationMethodOption,\n InstallationSource,\n} from \"@/components/commandly/types/tool\";\nimport { writeClipboard } from \"@/components/commandly/utils/clipboard\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, CopyIcon, ExternalLinkIcon } from \"lucide-react\";\nimport { useState } from \"react\";\n\n/** The methods the tool documents, in presentation order. */\nconst usedMethods = (sources: InstallationSource[]): InstallationMethodOption[] =>\n INSTALLATION_METHODS.filter(({ method }) => sources.some((source) => source.method === method));\n\n/**\n * A source's tab label. The package manager is the distinguishing name where there is one;\n * otherwise the key reads as a title, since a release binary or a container has no manager.\n */\nconst sourceLabel = (source: InstallationSource): string => {\n if (source.manager) return source.manager;\n const words = source.key.replace(/[-_]+/g, \" \").trim();\n return words.charAt(0).toUpperCase() + words.slice(1);\n};\n\ninterface InstallationSourceCardProps {\n source: InstallationSource;\n /**\n * The name shown for this source directly above the card, when a tab selects it. The manager\n * badge is skipped when it would only repeat that name.\n */\n label?: string;\n copied: boolean;\n onCopy: () => void;\n}\n\nfunction InstallationSourceCard({ source, label, copied, onCopy }: InstallationSourceCardProps) {\n const showManager = !!source.manager && source.manager !== label;\n\n return (\n
\n {showManager && (\n
\n \n {source.manager}\n \n
\n )}\n\n
\n \n {source.command}\n \n \n {copied ? : }\n \n
\n\n {source.note &&

{source.note}

}\n\n {source.url && (\n \n Installation docs\n \n \n )}\n
\n );\n}\n\ninterface InstallationSectionProps {\n installation?: Installation;\n className?: string;\n}\n\nexport function InstallationSection({ installation, className }: InstallationSectionProps) {\n const [copiedKey, setCopiedKey] = useState(null);\n\n const sources = installation?.sources ?? [];\n if (sources.length === 0) return null;\n\n const copy = async (key: string, command: string) => {\n try {\n await writeClipboard(command);\n } catch {\n return;\n }\n setCopiedKey(key);\n setTimeout(() => setCopiedKey((current) => (current === key ? null : current)), 1500);\n };\n\n return (\n
\n
\n

Installation

\n

Ways to install this tool.

\n
\n\n {usedMethods(sources).map(({ method, label }) => {\n const group = sources.filter((source) => source.method === method);\n const tabbed = group.length > 1;\n const card = (source: InstallationSource) => (\n copy(source.key, source.command)}\n />\n );\n\n return (\n \n

\n {label}\n

\n\n {tabbed ? (\n \n \n {group.map((source) => (\n \n {sourceLabel(source)}\n \n ))}\n \n {group.map((source) => (\n \n {card(source)}\n \n ))}\n \n ) : (\n card(group[0])\n )}\n \n );\n })}\n
\n );\n}\n", + "type": "registry:component", + "target": "components/commandly/installation.tsx" + }, { "path": "registry/commandly/types/renderer.ts", - "content": "import type { Parameter, ParameterValue } from \"@/components/commandly/types/flat\";\nimport type { ReactElement } from \"react\";\n\nexport type ParameterRenderContext = {\n parameter: Parameter;\n value: ParameterValue;\n onUpdate: (value: ParameterValue) => void;\n};\n\nexport type ParameterRendererEntry = {\n condition: (parameter: Parameter) => boolean;\n component: (context: ParameterRenderContext) => ReactElement | null;\n};\n", + "content": "import type { Parameter, ParameterValue } from \"@/components/commandly/types/tool\";\nimport type { ReactElement } from \"react\";\n\nexport type ParameterRenderContext = {\n parameter: Parameter;\n /** The parameter's invocation forms: the canonical flag plus its short and other names. */\n flags: string[];\n value: ParameterValue;\n onUpdate: (value: ParameterValue) => void;\n /** Whether the parameter must be provided, counting any `required_one_of` group it belongs to. */\n isRequired?: boolean;\n /** The exclusion group ruling this parameter out, once another of its members is provided. */\n excludedBy?: string;\n};\n\nexport type ParameterRendererEntry = {\n condition: (parameter: Parameter) => boolean;\n component: (context: ParameterRenderContext) => ReactElement | null;\n};\n", "type": "registry:file", "target": "components/commandly/types/renderer.ts" }, { - "path": "registry/commandly/types/flat.ts", - "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Key of the parent command; used to represent subcommand nesting. */\n parentCommandKey?: string;\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier for this parameter within the tool. */\n key: string;\n /** Human-readable display name of the parameter. */\n name: string;\n /** Key of the command this parameter belongs to; omit for global parameters. */\n commandKey?: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Key of the command this exclusion group belongs to; omit for global groups. */\n commandKey?: string;\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Flat list of all parameters across all commands and global scope. */\n parameters: Parameter[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/types/tool.ts", + "content": "export interface ToolInfo {\n /** A brief human-readable description of what the tool does. */\n description?: string;\n /** The version string of the tool (e.g. \"1.0.0\"). */\n version?: string;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n}\n\nexport interface Command {\n /** Unique identifier for this command within the tool. */\n key: string;\n /** Human-readable display name of the command. */\n displayName: string;\n /** Alternate spellings that invoke this command in place of its name. */\n aliases?: string[];\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters accepted by this command. Keys are unique among them. Omit for grouping commands. */\n parameters?: Parameter[];\n /** Groups of this command's parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Subcommands nested beneath this command. */\n commands?: Command[];\n}\n\nexport type InstallationMethod = \"package_manager\" | \"binary\" | \"docker\" | \"script\";\n\nexport interface InstallationSource {\n /** Unique identifier for this installation source within the tool. */\n key: string;\n /** How the tool is installed. */\n method: InstallationMethod;\n /** Package manager name, set only when method is \"package_manager\" (e.g. \"brew\", \"go\"). */\n manager?: string;\n /** The command that installs the tool. */\n command: string;\n /** Documentation URL describing this installation method. */\n url?: string;\n /** Platforms this installation method applies to. */\n os?: Array<\"linux\" | \"macos\" | \"windows\">;\n /** Additional context for this installation source. */\n note?: string;\n}\n\nexport interface Installation {\n /** The list of documented ways to install the tool. */\n sources: InstallationSource[];\n}\n\nexport interface InstallationMethodOption {\n method: InstallationMethod;\n /** Human-readable label for the method. */\n label: string;\n}\n\n/** The methods in presentation order; a new method must be given a position here. */\nexport const INSTALLATION_METHODS: InstallationMethodOption[] = [\n { method: \"package_manager\", label: \"Package manager\" },\n { method: \"binary\", label: \"Release binary\" },\n { method: \"docker\", label: \"Docker\" },\n { method: \"script\", label: \"Script\" },\n];\n\nexport interface ParameterEnumValue {\n /** The raw value passed to the CLI for this choice. */\n value: string;\n /** Human-readable label shown to the user for this enum choice. */\n displayName: string;\n /** Description of what this enum value does or represents. */\n description?: string;\n /** Whether this is the default selection when no value is provided. */\n isDefault?: boolean;\n /** Display sort position relative to sibling enum values. */\n sortOrder?: number;\n}\n\nexport interface ParameterEnumValues {\n /** The list of allowed enum choices. */\n values: ParameterEnumValue[];\n /** Whether the user can select multiple values at once. */\n allowMultiple?: boolean;\n /** Separator character used when joining multiple selected values. */\n separator?: string;\n}\n\nexport type ParameterValidationType =\n | \"min_length\"\n | \"max_length\"\n | \"min_value\"\n | \"max_value\"\n | \"regex\";\n\nexport interface ParameterValidation {\n /** Unique identifier for this validation rule. */\n key: string;\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. the max length number, or a regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport type ParameterDependencyType = \"requires\" | \"conflicts_with\";\n\nexport interface ParameterDependency {\n /** Unique identifier for this dependency rule. */\n key: string;\n /** Key of the parameter that owns this dependency. */\n parameterKey: string;\n /** Key of the parameter this dependency references. */\n dependsOnParameterKey: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport type ParameterValue = string | number | boolean | string[];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ToolMetadata {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ParameterMetadata {\n /** Arbitrary tags for categorising or filtering parameters. */\n tags?: string[];\n}\n\nexport type ParameterType = \"Flag\" | \"Option\" | \"Argument\";\n\nexport type ParameterDataType = \"String\" | \"Number\" | \"Boolean\" | \"Enum\";\n\nexport interface Parameter {\n /** Unique identifier among its command's parameters. For flags and options this is the full flag, dashes included (e.g. \"--output\", \"-list\"). */\n key: string;\n /** Human-readable display name of the parameter. */\n displayName: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Short names and other alternate invocation forms (e.g. [\"-o\"]). The full flag is `key`. */\n aliases?: string[];\n /** Whether this parameter is also accessible from the subcommands of its command, recursively. */\n recursive?: boolean;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: ParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: ParameterDependency[];\n}\n\nexport type ExclusionType = \"mutual_exclusive\" | \"required_one_of\";\n\nexport interface ExclusionGroup {\n /** Unique identifier for this exclusion group. */\n key?: string;\n /** Human-readable name for this exclusion group. */\n displayName: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Keys of the parameters that participate in this exclusion group. */\n parameterKeys: string[];\n}\n\nexport interface Tool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** Structured installation instructions for the tool. */\n installation?: Installation;\n /**\n * Parameters accepted by the tool itself, before a command is chosen. A tool's own flags live\n * here; do not model the root invocation as a command named after the binary, or the root would\n * be described twice.\n */\n parameters: Parameter[];\n /** List of all commands and subcommands defined for this tool. */\n commands: Command[];\n /** Groups of the tool's own parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: ExclusionGroup[];\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "type": "registry:file", + "target": "components/commandly/types/tool.ts" + }, + { + "path": "registry/commandly/utils/tool.ts", + "content": "import type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/tool\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nconst flattenCommands = (commands: Command[], sink: Command[] = []): Command[] => {\n for (const command of commands) {\n sink.push(command);\n if (command.commands?.length) flattenCommands(command.commands, sink);\n }\n return sink;\n};\n\n/** Every command in the tool, depth-first, each parent before its children. */\nexport const getAllCommands = (tool: Tool): Command[] => flattenCommands(tool.commands ?? []);\n\n/** Every command beneath `command`, depth-first. */\nexport const getAllSubcommands = (command: Command): Command[] =>\n flattenCommands(command.commands ?? []);\n\n/** The command with this key anywhere in the tree. */\nexport const findCommand = (tool: Tool, key: string): Command | undefined =>\n getAllCommands(tool).find((command) => command.key === key);\n\n/**\n * The command to show when the caller has not chosen one: the command named after the binary when\n * there is one, otherwise the first command in the tree.\n */\nexport const getDefaultCommand = (tool: Tool): Command | null => {\n const commands = getAllCommands(tool);\n return (\n commands.find(\n (command) => command.displayName.toLowerCase() === tool.binaryName.toLowerCase(),\n ) ??\n commands[0] ??\n null\n );\n};\n\n/** The chain of commands from the outermost ancestor down to the one with this key. */\nexport const getCommandChain = (tool: Tool, key: string): Command[] => {\n const walk = (commands: Command[], path: Command[]): Command[] | null => {\n for (const command of commands) {\n const next = [...path, command];\n if (command.key === key) return next;\n const found = walk(command.commands ?? [], next);\n if (found) return found;\n }\n return null;\n };\n return walk(tool.commands ?? [], []) ?? [];\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const chain = getCommandChain(tool, command.key);\n if (chain.length === 0) return command.displayName;\n return chain.map((step) => step.displayName).join(\" \");\n};\n\n/**\n * A recursive parameter is inherited: it belongs to its command and to every command below it.\n * Root-scoped, it is inherited by the whole tree.\n */\nexport const isInheritedParameter = (param: Parameter): boolean => param.recursive === true;\n\n/**\n * Resolves the parameters that apply to the currently selected command: its own parameters,\n * plus those inherited from its ancestors via `recursive`, outermost ancestor first.\n */\nexport const resolveApplicableParameters = (\n tool: Tool,\n selectedCommand?: Command | null,\n): Parameter[] => {\n const rootParameters = tool.parameters ?? [];\n\n if (!selectedCommand) return rootParameters;\n\n // Tool-level recursive parameters are inherited by every command in the tree.\n const resolved: Parameter[] = rootParameters.filter(isInheritedParameter);\n const chain = getCommandChain(tool, selectedCommand.key);\n\n for (const command of chain) {\n for (const parameter of command.parameters ?? []) {\n if (command.key === selectedCommand.key || parameter.recursive) {\n resolved.push(parameter);\n }\n }\n }\n\n return resolved;\n};\n\n/** The parameters declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getCommandParameters = (tool: Tool, commandKey: string | null): Parameter[] => {\n if (commandKey === null) return tool.parameters ?? [];\n return findCommand(tool, commandKey)?.parameters ?? [];\n};\n\n/** The exclusion groups declared directly on a command, or on the root invocation when `commandKey` is null. */\nexport const getExclusionGroups = (tool: Tool, commandKey: string | null): ExclusionGroup[] => {\n if (commandKey === null) return tool.exclusionGroups ?? [];\n return findCommand(tool, commandKey)?.exclusionGroups ?? [];\n};\n\n/** Every exclusion group in the tool, root invocation first, in command order. */\nexport const getAllExclusionGroups = (tool: Tool): ExclusionGroup[] =>\n (tool.exclusionGroups ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.exclusionGroups ?? []),\n );\n\n/** Whether a parameter's current value counts as provided. */\nexport const hasParameterValue = (value: ParameterValue | undefined): boolean =>\n value !== undefined &&\n value !== \"\" &&\n value !== false &&\n !(Array.isArray(value) && value.every((entry) => entry === \"\"));\n\n/**\n * The exclusion groups that constrain a selection: those with at least one member among the\n * parameters that apply to `selectedCommand`.\n */\nexport const resolveExclusionGroups = (\n tool: Tool,\n selectedCommand?: Command | null,\n): ExclusionGroup[] => {\n const applicable = new Set(resolveApplicableParameters(tool, selectedCommand).map((p) => p.key));\n return getAllExclusionGroups(tool).filter((group) =>\n group.parameterKeys.some((key) => applicable.has(key)),\n );\n};\n\n/**\n * The parameters a mutually exclusive group rules out, keyed by parameter, given what is\n * provided. Its members are alternatives to one another, so once one is provided every other\n * member is ruled out; the first provided member of each group keeps its place.\n */\nexport const excludedParameters = (\n groups: ExclusionGroup[],\n values: Record,\n): Map => {\n const excluded = new Map();\n for (const group of groups) {\n if (group.exclusionType !== \"mutual_exclusive\") continue;\n const [provided] = group.parameterKeys.filter((key) => hasParameterValue(values[key]));\n if (provided === undefined) continue;\n for (const key of group.parameterKeys) {\n if (key !== provided) excluded.set(key, group);\n }\n }\n return excluded;\n};\n\n/** The parameters a `required_one_of` group makes mandatory, while none of its members is provided. */\nexport const requiredParameterKeys = (\n groups: ExclusionGroup[],\n values: Record,\n): Set => {\n const required = new Set();\n for (const group of groups) {\n if (group.exclusionType !== \"required_one_of\") continue;\n if (group.parameterKeys.some((key) => hasParameterValue(values[key]))) continue;\n for (const key of group.parameterKeys) required.add(key);\n }\n return required;\n};\n\n/** Every parameter in the tool, root invocation first, in command order. */\nexport const getAllParameters = (tool: Tool): Parameter[] =>\n (tool.parameters ?? []).concat(\n getAllCommands(tool).flatMap((command) => command.parameters ?? []),\n );\n\n/**\n * Rewrites a command tree bottom-up, handing `transform` each command with its children already\n * mapped. Walks that drop commands need their own traversal, since this one is one-to-one.\n */\nexport const mapCommandTree = (\n commands: Command[],\n transform: (command: Command) => Command,\n): Command[] =>\n commands.map((command) =>\n transform(\n command.commands?.length\n ? { ...command, commands: mapCommandTree(command.commands, transform) }\n : command,\n ),\n );\n\n/** Applies `update` to the command with `key` anywhere in the tree, leaving every other command alone. */\nexport const updateCommand = (\n tool: Tool,\n key: string,\n update: (command: Command) => Command,\n): Tool => ({\n ...tool,\n commands: mapCommandTree(tool.commands ?? [], (command) =>\n command.key === key ? update(command) : command,\n ),\n});\n\n/** Drops the command with `key` and everything nested beneath it. */\nexport const removeCommand = (tool: Tool, key: string): Tool => ({\n ...tool,\n commands: dropCommand(tool.commands ?? [], key),\n});\n\nconst dropCommand = (commands: Command[], key: string): Command[] =>\n commands\n .filter((command) => command.key !== key)\n .map((command) =>\n command.commands?.length\n ? { ...command, commands: dropCommand(command.commands, key) }\n : command,\n );\n\n/**\n * Applies `update` to the parameters an owner declares: the command with `ownerKey`, or the tool's\n * own parameters when it is null. `recursive` decides where a parameter *applies*, never where it\n * is written, so this deliberately does not touch inherited parameters.\n */\nexport const updateParameters = (\n tool: Tool,\n ownerKey: string | null,\n update: (parameters: Parameter[]) => Parameter[],\n): Tool =>\n ownerKey === null\n ? { ...tool, parameters: update(tool.parameters ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n parameters: update(command.parameters ?? []),\n }));\n\n/** Same as {@link updateParameters} for the exclusion groups an owner declares. */\nexport const updateExclusionGroups = (\n tool: Tool,\n ownerKey: string | null,\n update: (groups: ExclusionGroup[]) => ExclusionGroup[],\n): Tool =>\n ownerKey === null\n ? { ...tool, exclusionGroups: update(tool.exclusionGroups ?? []) }\n : updateCommand(tool, ownerKey, (command) => ({\n ...command,\n exclusionGroups: update(command.exclusionGroups ?? []),\n }));\n\n/** Drops the parameter with `key` from the set an owner declares. */\nexport const removeParameter = (tool: Tool, ownerKey: string | null, key: string): Tool =>\n updateParameters(tool, ownerKey, (parameters) =>\n parameters.filter((parameter) => parameter.key !== key),\n );\n\n/** Reorders `items` so the given keys take those positions, stamping each item's `sortOrder`. */\nexport const reorderByKeys = (\n items: T[],\n keys: string[],\n): T[] => {\n const slots: number[] = [];\n const byKey = new Map();\n const reordered = new Set(keys);\n\n items.forEach((item, index) => {\n byKey.set(item.key, item);\n if (reordered.has(item.key)) slots.push(index);\n });\n\n const next = [...items];\n keys.forEach((key, sortOrder) => {\n const slot = slots[sortOrder];\n const item = byKey.get(key);\n if (slot !== undefined && item) next[slot] = { ...item, sortOrder };\n });\n return next;\n};\n", + "type": "registry:file", + "target": "components/commandly/utils/tool.ts" + }, + { + "path": "registry/commandly/utils/generate-command.ts", + "content": "import type { Command, Parameter, ParameterValue, Tool } from \"@/components/commandly/types/tool\";\nimport {\n excludedParameters,\n getAllParameters,\n getCommandPath,\n getDefaultCommand,\n hasParameterValue,\n resolveApplicableParameters,\n resolveExclusionGroups,\n} from \"@/components/commandly/utils/tool\";\n\nexport interface GenerateCommandOptions {\n selectedCommand?: Command | null;\n /** Index into a parameter's flag forms to emit; falls back to the canonical form. */\n flagFormIndex?: number;\n}\n\n/**\n * The full flag for a parameter. For `Flag` and `Option` types this is the key itself, which\n * carries its own dashes (e.g. \"--output\", \"-list\"). Positional arguments have no flag.\n */\nexport const getCanonicalFlag = (param: Parameter): string => param.key;\n\n/** Every form that invokes a parameter: the full flag first, then its short and other names. */\nexport const getFlagForms = (param: Parameter): string[] => {\n if (param.parameterType === \"Argument\") return [];\n const forms = [param.key, ...(param.aliases ?? [])];\n return forms.filter((form, index) => forms.indexOf(form) === index);\n};\n\n/** The highest number of flag forms any parameter offers: its canonical flag plus its aliases. */\nexport const getFlagFormCount = (tool: Tool): number =>\n getAllParameters(tool).reduce((max, param) => Math.max(max, getFlagForms(param).length), 0);\n\n/** Labels for the flag positions: position 0 is the parameter's own key, the rest are its aliases. */\nconst FLAG_FORM_LABELS = [\"Full name\", \"Short name\"];\n\n/** One label per flag position any parameter of the tool offers. */\nexport const getToolFlagForms = (tool: Tool): string[] =>\n Array.from(\n { length: getFlagFormCount(tool) },\n (_, index) => FLAG_FORM_LABELS[index] ?? `Alternate ${index}`,\n );\n\nexport function generateCommand(\n tool: Tool,\n parameterValues: Record,\n options: GenerateCommandOptions = {},\n): string {\n const hasCommands = tool.commands.length > 0;\n const selectedCommand =\n options.selectedCommand === undefined ? getDefaultCommand(tool) : options.selectedCommand;\n const flagFormIndex = options.flagFormIndex ?? 0;\n\n let command = tool.binaryName;\n\n if (hasCommands && selectedCommand) {\n const commandPath = getCommandPath(selectedCommand, tool);\n if (tool.binaryName !== commandPath) {\n command = `${tool.binaryName} ${commandPath}`;\n }\n }\n\n const excluded = excludedParameters(\n resolveExclusionGroups(tool, selectedCommand),\n parameterValues,\n );\n\n const parametersWithValues = resolveApplicableParameters(tool, selectedCommand)\n .filter((param) => !excluded.has(param.key))\n .map((param) => ({ param, value: parameterValues[param.key] }))\n .filter(({ value }) => hasParameterValue(value));\n\n const positionalParams = parametersWithValues\n .filter(({ param }) => param.parameterType === \"Argument\")\n .sort((a, b) => (a.param.position || 0) - (b.param.position || 0));\n\n parametersWithValues.forEach(({ param, value }) => {\n if (param.parameterType === \"Flag\") {\n const flag = getFlagForms(param)[flagFormIndex] ?? getCanonicalFlag(param);\n if (value === true) {\n command += ` ${flag}`;\n } else if (param.isRepeatable && typeof value === \"number\" && value > 0) {\n command += ` ${flag}`.repeat(value);\n }\n return;\n }\n\n if (param.parameterType === \"Option\") {\n const flag = getFlagForms(param)[flagFormIndex] ?? getCanonicalFlag(param);\n\n const separator = param.keyValueSeparator ?? \" \";\n if (Array.isArray(value)) {\n const entries = value.filter((entry) => entry !== \"\");\n if (entries.length === 0) return;\n\n if (param.arraySeparator) {\n command += ` ${flag}${separator}${entries.join(param.arraySeparator)}`;\n return;\n }\n\n entries.forEach((entry) => {\n command += ` ${flag}${separator}${entry}`;\n });\n return;\n }\n\n command += ` ${flag}${separator}${value}`;\n }\n });\n\n positionalParams.forEach(({ value }) => {\n if (!Array.isArray(value)) {\n command += ` ${value}`;\n }\n });\n\n return command;\n}\n", + "type": "registry:file", + "target": "components/commandly/utils/generate-command.ts" + }, + { + "path": "registry/commandly/utils/tool-file.ts", + "content": "import type { Command, ExclusionGroup, Parameter, Tool } from \"@/components/commandly/types/tool\";\nimport { mapCommandTree, slugify } from \"@/components/commandly/utils/tool\";\n\n/** URL of the published JSON Schema for tool files, written to `$schema` on export. */\nexport const SCHEMA_URL = \"https://commandly.divyeshio.in/specification/tool.json\";\n\nfunction isEmptyArray(value: unknown): boolean {\n return Array.isArray(value) && value.length === 0;\n}\n\nfunction isEmptyObject(value: unknown): boolean {\n return (\n value != null &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n Object.keys(value).length === 0\n );\n}\n\n/**\n * How a tool is normalised for output. The published JSON keeps the defaults the user typed; the\n * file written to disk drops them.\n */\ninterface CleanToolOptions {\n /** Drop `metadata`, which the published JSON does not carry. */\n removeMetadata: boolean;\n /** Drop fields whose value already encodes the default. */\n removeDefaults: boolean;\n}\n\nfunction cleanParameter(param: Parameter, options: CleanToolOptions): Parameter {\n const cleaned: Parameter = { ...param };\n\n if (options.removeDefaults) {\n if (cleaned.isRequired === false) delete cleaned.isRequired;\n if (cleaned.isRepeatable === false) delete cleaned.isRepeatable;\n if (cleaned.recursive === false) delete cleaned.recursive;\n if (cleaned.keyValueSeparator === \" \") delete cleaned.keyValueSeparator;\n if (cleaned.arraySeparator === \",\" && cleaned.isRepeatable !== true)\n delete cleaned.arraySeparator;\n\n if (isEmptyArray(cleaned.aliases)) delete cleaned.aliases;\n if (!cleaned.enum || isEmptyArray(cleaned.enum.values)) delete cleaned.enum;\n if (isEmptyArray(cleaned.validations)) delete cleaned.validations;\n if (isEmptyArray(cleaned.dependencies)) delete cleaned.dependencies;\n }\n\n if (options.removeMetadata) {\n delete cleaned.metadata;\n } else if (cleaned.metadata) {\n const metadata = { ...cleaned.metadata };\n if (isEmptyArray(metadata.tags)) delete metadata.tags;\n if (isEmptyObject(metadata)) delete cleaned.metadata;\n else cleaned.metadata = metadata;\n }\n\n return cleaned;\n}\n\nfunction cleanCommandTree(commands: Command[], options: CleanToolOptions): Command[] {\n return mapCommandTree(commands, (command) => {\n const cleaned: Command = { ...command };\n\n if (options.removeDefaults) {\n if (cleaned.interactive === false) delete cleaned.interactive;\n if (cleaned.exclusionGroups?.length === 0) delete cleaned.exclusionGroups;\n }\n if (cleaned.parameters) {\n cleaned.parameters = cleaned.parameters.map((param) => cleanParameter(param, options));\n }\n if (cleaned.commands?.length === 0) delete cleaned.commands;\n\n return cleaned;\n });\n}\n\n/** The published JSON: the user's defaults are kept, `metadata` is dropped. */\nconst EXPORT_OPTIONS: CleanToolOptions = { removeMetadata: true, removeDefaults: false };\n\nexport const exportToStructuredJSON = (tool: Tool) => ({\n $schema: SCHEMA_URL,\n binaryName: tool.binaryName,\n displayName: tool.displayName,\n interactive: tool.interactive,\n info: tool.info,\n installation: tool.installation,\n parameters: tool.parameters.map((param) => cleanParameter(param, EXPORT_OPTIONS)),\n commands: cleanCommandTree(tool.commands, EXPORT_OPTIONS),\n exclusionGroups: tool.exclusionGroups,\n metadata: tool.metadata,\n});\n\n/** The tool as it is written to disk or published: `$schema` is added on request. */\nexport type ToolFile = Tool & { $schema?: string };\n\nexport interface FixToolOptions {\n addSchema?: boolean;\n removeMetadata?: boolean;\n}\n\n/** Normalises a tool into the shape the specification expects, dropping defaults that say nothing. */\nexport function fixTool(tool: Tool, options?: FixToolOptions): ToolFile {\n const cleanOptions: CleanToolOptions = {\n removeMetadata: options?.removeMetadata ?? false,\n removeDefaults: true,\n };\n\n const cleaned: ToolFile = { ...tool };\n\n if (options?.addSchema) cleaned.$schema = SCHEMA_URL;\n if (cleaned.interactive === false) delete cleaned.interactive;\n if (cleanOptions.removeMetadata || isEmptyObject(cleaned.metadata)) delete cleaned.metadata;\n if (isEmptyArray(cleaned.exclusionGroups)) delete cleaned.exclusionGroups;\n if (isEmptyArray(cleaned.installation?.sources)) delete cleaned.installation;\n\n cleaned.parameters = (cleaned.parameters ?? []).map((param) =>\n cleanParameter(param, cleanOptions),\n );\n cleaned.commands = cleanCommandTree(cleaned.commands ?? [], cleanOptions);\n\n return cleaned;\n}\n\n/** A group always needs a key: that is how the editor finds it again to edit or remove it. */\nconst slugifyGroupKey = (group: ExclusionGroup): ExclusionGroup => ({\n ...group,\n key: slugify(group.displayName),\n});\n\n/**\n * Rebuilds the keys a generated tool may have drifted on: command and exclusion-group keys become\n * slugs of their display names. Parameter keys are the flags themselves, so they are left alone.\n */\nexport const normalizeKeys = (tool: Tool): Tool => ({\n ...tool,\n ...(tool.exclusionGroups ? { exclusionGroups: tool.exclusionGroups.map(slugifyGroupKey) } : {}),\n commands: mapCommandTree(tool.commands ?? [], (command) => ({\n ...command,\n key: slugify(command.displayName),\n ...(command.exclusionGroups\n ? { exclusionGroups: command.exclusionGroups.map(slugifyGroupKey) }\n : {}),\n })),\n});\n", "type": "registry:file", - "target": "components/commandly/types/flat.ts" + "target": "components/commandly/utils/tool-file.ts" }, { - "path": "registry/commandly/types/nested.ts", - "content": "import type {\n ExclusionType,\n ParameterDataType,\n ParameterDependencyType,\n ParameterEnumValues,\n ParameterMetadata,\n ParameterType,\n ParameterValidationType,\n ToolInfo,\n ToolMetadata,\n} from \"@/components/commandly/types/flat\";\n\nexport interface NestedParameterValidation {\n /** The type of validation to apply. */\n validationType: ParameterValidationType;\n /** The value to validate against (e.g. max length number or regex pattern). */\n validationValue: string;\n /** The error message to display when validation fails. */\n errorMessage: string;\n}\n\nexport interface NestedParameterDependency {\n /** Name of the parameter this dependency references. */\n dependsOnParameter: string;\n /** Whether this parameter requires or conflicts with the referenced parameter. */\n dependencyType: ParameterDependencyType;\n /** Optional value that the referenced parameter must have for this dependency to apply. */\n conditionValue?: string;\n}\n\nexport interface NestedParameter {\n /** Human-readable display name of the parameter. */\n name: string;\n /** Brief description of what this parameter does or accepts. */\n description?: string;\n /** Optional grouping label for organising related parameters in the UI. */\n group?: string;\n /** Whether this is a boolean flag, a key-value option, or a positional argument. */\n parameterType: ParameterType;\n /** The data type of the parameter's value. */\n dataType: ParameterDataType;\n /** Additional metadata such as tags. */\n metadata?: ParameterMetadata;\n /** Whether the user must provide this parameter. */\n isRequired?: boolean;\n /** Whether this parameter can be specified multiple times. */\n isRepeatable?: boolean;\n /** Whether this parameter applies to all commands rather than a single command. */\n isGlobal?: boolean;\n /** The single-character short flag (e.g. \"-v\"). */\n shortFlag?: string;\n /** The long-form flag or option name (e.g. \"--verbose\"). */\n longFlag?: string;\n /** Zero-based position index for positional arguments. */\n position?: number;\n /** Display sort position relative to sibling parameters. */\n sortOrder?: number;\n /** Separator character used when the option accepts multiple values in one argument (e.g. \",\"). */\n arraySeparator?: string;\n /** Separator between key and value for key=value style options (e.g. \"=\"). */\n keyValueSeparator?: string;\n /** Allowed enum choices when dataType is \"Enum\". */\n enum?: ParameterEnumValues;\n /** Validation rules applied to this parameter's value. */\n validations?: NestedParameterValidation[];\n /** Dependencies on other parameters (requires or conflicts-with relationships). */\n dependencies?: NestedParameterDependency[];\n}\n\nexport interface NestedCommand {\n /** Human-readable display name of the command. */\n name: string;\n /** Brief description of what this command does. */\n description?: string;\n /** Whether this command opens an interactive session or prompt. */\n interactive?: boolean;\n /** Display sort position relative to sibling commands. */\n sortOrder?: number;\n /** Parameters that belong directly to this command. */\n parameters: NestedParameter[];\n /** Nested subcommands of this command. */\n subcommands: NestedCommand[] /** Groups of parameters with mutual exclusion or required-one-of constraints scoped to this command. */;\n exclusionGroups?: NestedExclusionGroup[];\n}\n\nexport interface NestedExclusionGroup {\n /** Human-readable name for this exclusion group. */\n name: string;\n /** Whether parameters in this group are mutually exclusive or one is required. */\n exclusionType: ExclusionType;\n /** Names of the parameters that participate in this exclusion group. */\n parameters: string[];\n}\n\nexport interface NestedTool {\n /** Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\"). */\n binaryName: string;\n /** Human-readable display name for the tool (e.g. \"HTTPx\"). */\n displayName: string;\n /** Whether the root tool invocation opens an interactive session or prompt. */\n interactive?: boolean;\n /** General information about the tool such as description, version, and URL. */\n info?: ToolInfo;\n /** The homepage or documentation URL for the tool. */\n url?: string;\n /** Parameters that belong to the root invocation when no commands exist. */\n rootParameters: NestedParameter[];\n /** Parameters that apply to all commands globally. */\n globalParameters: NestedParameter[];\n /** Hierarchical list of commands and their nested subcommands. */\n commands: NestedCommand[];\n /** Groups of parameters with mutual exclusion or required-one-of constraints. */\n exclusionGroups?: NestedExclusionGroup[] | null;\n /** Arbitrary metadata attached to the tool. */\n metadata?: ToolMetadata;\n}\n", + "path": "registry/commandly/utils/diff.ts", + "content": "export type DiffLineType = \"same\" | \"added\" | \"removed\";\n\nexport interface DiffLine {\n type: DiffLineType;\n text: string;\n}\n\n/** An unchanged run the display collapsed into a single row. */\nexport interface DiffGap {\n type: \"gap\";\n /** How many unchanged lines the gap stands for. */\n count: number;\n}\n\n/** A diff as the display wants it: a line, or a collapsed run of unchanged lines. */\nexport type DiffRow = DiffLine | DiffGap;\n\n/**\n * Above this many differing lines on either side the comparison falls back to a plain\n * replacement: the longest-common-subsequence matrix is quadratic in memory and time. Only the\n * lines between the shared head and tail are ever compared, so a localised edit to a very large\n * file still diffs exactly.\n */\nexport const MAX_DIFF_LINES = 2000;\n\n/** How many unchanged lines the display keeps on either side of a change. */\nexport const DIFF_CONTEXT_LINES = 3;\n\nconst same = (text: string): DiffLine => ({ type: \"same\", text });\n\n/** How many leading lines `a` and `b` have in common. */\nconst sharedHead = (a: string[], b: string[]): number => {\n const max = Math.min(a.length, b.length);\n let head = 0;\n while (head < max && a[head] === b[head]) head++;\n return head;\n};\n\n/** How many trailing lines `a` and `b` have in common, past the `head` already claimed. */\nconst sharedTail = (a: string[], b: string[], head: number): number => {\n const max = Math.min(a.length, b.length) - head;\n let tail = 0;\n while (tail < max && a[a.length - 1 - tail] === b[b.length - 1 - tail]) tail++;\n return tail;\n};\n\nconst replaceBlock = (removed: string[], added: string[]): DiffLine[] => [\n ...removed.map((text): DiffLine => ({ type: \"removed\", text })),\n ...added.map((text): DiffLine => ({ type: \"added\", text })),\n];\n\n/** The longest-common-subsequence comparison of two line arrays. */\nconst compareLines = (before: string[], after: string[]): DiffLine[] => {\n if (before.length > MAX_DIFF_LINES || after.length > MAX_DIFF_LINES) {\n return replaceBlock(before, after);\n }\n\n const rows = before.length;\n const columns = after.length;\n const lengths = Array.from({ length: rows + 1 }, () => new Array(columns + 1).fill(0));\n\n for (let i = 1; i <= rows; i++) {\n for (let j = 1; j <= columns; j++) {\n lengths[i][j] =\n before[i - 1] === after[j - 1]\n ? lengths[i - 1][j - 1] + 1\n : Math.max(lengths[i - 1][j], lengths[i][j - 1]);\n }\n }\n\n const diff: DiffLine[] = [];\n let i = rows;\n let j = columns;\n\n while (i > 0 || j > 0) {\n if (i > 0 && j > 0 && before[i - 1] === after[j - 1]) {\n diff.unshift(same(before[i - 1]));\n i--;\n j--;\n } else if (j > 0 && (i === 0 || lengths[i][j - 1] >= lengths[i - 1][j])) {\n diff.unshift({ type: \"added\", text: after[j - 1] });\n j--;\n } else {\n diff.unshift({ type: \"removed\", text: before[i - 1] });\n i--;\n }\n }\n\n return diff;\n};\n\n/** A line-level diff of two texts, unchanged lines included. */\nexport const diffLines = (before: string, after: string): DiffLine[] => {\n const beforeLines = before.split(\"\\n\");\n const afterLines = after.split(\"\\n\");\n\n const head = sharedHead(beforeLines, afterLines);\n const tail = sharedTail(beforeLines, afterLines, head);\n\n return [\n ...beforeLines.slice(0, head).map(same),\n ...compareLines(\n beforeLines.slice(head, beforeLines.length - tail),\n afterLines.slice(head, afterLines.length - tail),\n ),\n ...beforeLines.slice(beforeLines.length - tail).map(same),\n ];\n};\n\n/**\n * The rows a diff should be drawn with: an unchanged run longer than two context windows collapses\n * to a single gap, so a large file with a small edit stays readable.\n */\nexport const collapseUnchanged = (diff: DiffLine[], context = DIFF_CONTEXT_LINES): DiffRow[] => {\n const rows: DiffRow[] = [];\n\n for (let index = 0; index < diff.length;) {\n if (diff[index].type !== \"same\") {\n rows.push(diff[index]);\n index++;\n continue;\n }\n\n let end = index;\n while (end < diff.length && diff[end].type === \"same\") end++;\n\n if (end - index > context * 2) {\n rows.push(\n ...diff.slice(index, index + context),\n { type: \"gap\", count: end - index - context * 2 },\n ...diff.slice(end - context, end),\n );\n } else {\n rows.push(...diff.slice(index, end));\n }\n index = end;\n }\n\n return rows;\n};\n", "type": "registry:file", - "target": "components/commandly/types/nested.ts" + "target": "components/commandly/utils/diff.ts" }, { - "path": "registry/commandly/utils/flat.ts", - "content": "import { SCHEMA_URL } from \"@/components/ai-chat/tool-rules\";\nimport type {\n Command,\n ExclusionGroup,\n Parameter,\n ParameterMetadata,\n ParameterValue,\n Tool,\n} from \"@/components/commandly/types/flat\";\n\nexport const slugify = (text: string): string => {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n};\n\nexport const getCommandPath = (command: Command, tool: Tool): string => {\n const allCommands = tool.commands;\n const findCommandPath = (\n targetKey: string,\n commands: Command[],\n path: string[] = [],\n ): string[] | null => {\n for (const cmd of commands) {\n if (cmd.name === targetKey) {\n return [...path, cmd.name];\n }\n\n const childCommands = allCommands.filter((c) => c.parentCommandKey === cmd.key);\n if (childCommands.length > 0) {\n const subPath = findCommandPath(targetKey, childCommands, [...path, cmd.name]);\n if (subPath) {\n return subPath;\n }\n }\n }\n return null;\n };\n\n const rootCommands = tool.commands.filter((c) => !c.parentCommandKey);\n const path = findCommandPath(command.name, rootCommands);\n\n if (!path) return command.name;\n\n return path.join(\" \");\n};\n\nexport const getAllSubcommands = (commandKey: string, commands: Command[]): Command[] => {\n const result: Command[] = [];\n\n const findSubcommands = (parentKey: string) => {\n commands.forEach((cmd) => {\n if (cmd.parentCommandKey === parentKey) {\n result.push(cmd);\n findSubcommands(cmd.key);\n }\n });\n };\n\n findSubcommands(commandKey);\n return result;\n};\n\nexport interface GenerateCommandOptions {\n selectedCommand?: Command | null;\n useLongFlag?: boolean;\n}\n\nfunction getPreferredFlag(param: Parameter, useLongFlag: boolean): string | undefined {\n return useLongFlag ? param.longFlag || param.shortFlag : param.shortFlag || param.longFlag;\n}\n\nexport function generateCommand(\n tool: Tool,\n parameterValues: Record,\n options: GenerateCommandOptions = {},\n): string {\n const hasCommands = tool.commands.length > 0;\n const selectedCommand =\n options.selectedCommand === undefined ? (tool.commands[0] ?? null) : options.selectedCommand;\n const useLongFlag = options.useLongFlag ?? false;\n\n let command = tool.binaryName;\n\n if (hasCommands && selectedCommand) {\n const commandPath = getCommandPath(selectedCommand, tool);\n if (tool.binaryName !== commandPath) {\n command = `${tool.binaryName} ${commandPath}`;\n }\n }\n\n const parametersWithValues: Array<{\n param: Parameter;\n value: ParameterValue;\n }> = [];\n const globalParameters = tool.parameters?.filter((param) => param.isGlobal) ?? [];\n const rootParameters =\n hasCommands && selectedCommand\n ? []\n : (tool.parameters?.filter((param) => !param.commandKey && !param.isGlobal) ?? []);\n const currentParameters = selectedCommand\n ? (tool.parameters?.filter(\n (param) => param.commandKey === selectedCommand.key && !param.isGlobal,\n ) ?? [])\n : [];\n\n [...globalParameters, ...rootParameters, ...currentParameters].forEach((param) => {\n const value = parameterValues[param.key];\n if (value !== undefined && value !== \"\" && value !== false) {\n parametersWithValues.push({ param, value });\n }\n });\n\n const positionalParams = parametersWithValues\n .filter(({ param }) => param.parameterType === \"Argument\")\n .sort((a, b) => (a.param.position || 0) - (b.param.position || 0));\n\n parametersWithValues.forEach(({ param, value }) => {\n if (param.parameterType === \"Flag\") {\n if (value === true) {\n const flag = getPreferredFlag(param, useLongFlag);\n if (flag) command += ` ${flag}`;\n } else if (param.isRepeatable && typeof value === \"number\" && value > 0) {\n const flag = getPreferredFlag(param, useLongFlag);\n if (flag) command += ` ${flag}`.repeat(value);\n }\n return;\n }\n\n if (param.parameterType === \"Option\") {\n const flag = getPreferredFlag(param, useLongFlag);\n if (!flag) return;\n\n const separator = param.keyValueSeparator ?? \" \";\n if (Array.isArray(value)) {\n const entries = value.filter((entry) => entry !== \"\");\n if (entries.length === 0) return;\n\n if (param.arraySeparator) {\n command += ` ${flag}${separator}${entries.join(param.arraySeparator)}`;\n return;\n }\n\n entries.forEach((entry) => {\n command += ` ${flag}${separator}${entry}`;\n });\n return;\n }\n\n command += ` ${flag}${separator}${value}`;\n }\n });\n\n positionalParams.forEach(({ value }) => {\n if (!Array.isArray(value)) {\n command += ` ${value}`;\n }\n });\n\n return command;\n}\n\nexport const exportToStructuredJSON = (tool: Tool) => {\n return {\n $schema: SCHEMA_URL,\n name: tool.binaryName,\n displayName: tool.displayName,\n info: tool.info,\n commands: tool.commands.map((cmd) => ({ ...cmd })),\n parameters: tool.parameters.map(({ metadata: _metadata, ...param }) => param),\n exclusionGroups: tool.exclusionGroups,\n metadata: tool.metadata,\n };\n};\n\nfunction isEmptyArray(value: unknown): boolean {\n return Array.isArray(value) && value.length === 0;\n}\n\nfunction isEmptyObject(value: unknown): boolean {\n return (\n value != null &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n Object.keys(value).length === 0\n );\n}\n\nfunction cleanParameter(param: Parameter): Parameter {\n const cleaned = { ...param };\n\n if (cleaned.isRequired === false) delete cleaned.isRequired;\n if (cleaned.isRepeatable === false) delete cleaned.isRepeatable;\n if (cleaned.isGlobal === false) delete cleaned.isGlobal;\n if (cleaned.keyValueSeparator === \" \") delete cleaned.keyValueSeparator;\n if (cleaned.arraySeparator === \",\" && cleaned.isRepeatable !== true)\n delete cleaned.arraySeparator;\n\n if (!cleaned.enum || isEmptyArray(cleaned.enum.values)) delete cleaned.enum;\n if (isEmptyArray(cleaned.validations)) delete cleaned.validations;\n if (isEmptyArray(cleaned.dependencies)) delete cleaned.dependencies;\n\n if (cleaned.metadata) {\n const meta = { ...cleaned.metadata } as ParameterMetadata;\n if (isEmptyArray(meta.tags)) delete meta.tags;\n if (isEmptyObject(meta)) {\n delete cleaned.metadata;\n } else {\n cleaned.metadata = meta;\n }\n }\n\n return cleaned;\n}\n\nfunction cleanCommand(cmd: Command): Command {\n const cleaned = { ...cmd };\n if (cleaned.interactive === false) delete cleaned.interactive;\n return cleaned;\n}\n\nfunction cleanExclusionGroup(group: ExclusionGroup): ExclusionGroup {\n return { ...group };\n}\n\nexport interface FixToolOptions {\n addSchema?: boolean;\n removeMetadata?: boolean;\n}\n\nexport function fixTool(tool: Tool, options?: FixToolOptions): Tool {\n const addSchema = options?.addSchema ?? false;\n const removeMetadata = options?.removeMetadata ?? false;\n\n const cleaned: Record = { ...tool };\n\n if (addSchema) {\n cleaned[\"$schema\"] = SCHEMA_URL;\n }\n\n if (cleaned.interactive === false) delete cleaned.interactive;\n if (isEmptyObject(cleaned.metadata) || removeMetadata) delete cleaned.metadata;\n if (isEmptyArray(cleaned.exclusionGroups)) delete cleaned.exclusionGroups;\n\n if (\"description\" in cleaned && cleaned.info == null) {\n cleaned.info = { description: cleaned.description as string };\n delete cleaned.description;\n }\n\n if (\"version\" in cleaned && typeof cleaned.version === \"string\") {\n if (cleaned.info && typeof cleaned.info === \"object\") {\n (cleaned.info as Record).version = cleaned.version;\n } else {\n cleaned.info = { version: cleaned.version as string };\n }\n delete cleaned.version;\n }\n\n if (Array.isArray(cleaned.commands)) {\n cleaned.commands = (cleaned.commands as Command[]).map(cleanCommand);\n }\n\n if (Array.isArray(cleaned.parameters)) {\n cleaned.parameters = (cleaned.parameters as Parameter[]).map((p) => {\n const fixed = cleanParameter(p);\n if (removeMetadata) delete fixed.metadata;\n return fixed;\n });\n }\n\n if (\n Array.isArray(cleaned.exclusionGroups) &&\n (cleaned.exclusionGroups as ExclusionGroup[]).length > 0\n ) {\n cleaned.exclusionGroups = (cleaned.exclusionGroups as ExclusionGroup[]).map(\n cleanExclusionGroup,\n );\n }\n\n return cleaned as unknown as Tool;\n}\n", + "path": "registry/commandly/utils/clipboard.ts", + "content": "/** Writes `text` to the clipboard, rejecting when the browser refuses access. */\nexport async function writeClipboard(text: string): Promise {\n if (!navigator.clipboard) throw new Error(\"Clipboard unavailable\");\n await navigator.clipboard.writeText(text);\n}\n", "type": "registry:file", - "target": "components/commandly/utils/flat.ts" + "target": "components/commandly/utils/clipboard.ts" }, { - "path": "registry/commandly/utils/nested.ts", - "content": "import type { Tool, Command, Parameter } from \"@/components/commandly/types/flat\";\nimport {\n NestedCommand,\n NestedExclusionGroup,\n NestedParameter,\n NestedTool,\n} from \"@/components/commandly/types/nested\";\n\nexport const convertToNestedStructure = (tool: Tool): NestedTool => {\n const globalParameters = tool.parameters.filter((p) => p.isGlobal);\n\n const convertParameter = (param: Parameter): NestedParameter => {\n const { ...rest } = param;\n return {\n ...rest,\n validations: param.validations?.map((v) => {\n return {\n validationType: v.validationType,\n validationValue: v.validationValue,\n errorMessage: v.errorMessage,\n };\n }),\n metadata: param.metadata,\n dataType: param.dataType,\n dependencies: param.dependencies?.map((dep) => {\n const dependsOnParam = tool.parameters.find((p) => p.key === dep.dependsOnParameterKey);\n return {\n dependsOnParameter: dependsOnParam?.longFlag || \"\",\n dependencyType: dep.dependencyType,\n conditionValue: dep.conditionValue,\n };\n }),\n };\n };\n\n const buildNestedCommands = (commands: Command[], parentKey?: string): NestedCommand[] => {\n return commands\n .filter((cmd) => cmd.parentCommandKey === parentKey)\n .map((cmd) => {\n const commandParameters = tool.parameters.filter(\n (p) => p.commandKey === cmd.key && !p.isGlobal,\n );\n const commandExclusionGroups = tool.exclusionGroups\n ?.filter((g) => g.commandKey === cmd.key)\n .map((group) => ({\n name: group.name,\n exclusionType: group.exclusionType,\n parameters: group.parameterKeys.map((pk) => {\n const param = tool.parameters.find((p) => p.key === pk);\n return param?.longFlag || \"\";\n }),\n }));\n return {\n name: cmd.name,\n description: cmd.description,\n interactive: cmd.interactive,\n sortOrder: cmd.sortOrder ?? 0,\n parameters: commandParameters.map(convertParameter),\n subcommands: buildNestedCommands(commands, cmd.key),\n ...(commandExclusionGroups?.length ? { exclusionGroups: commandExclusionGroups } : {}),\n };\n });\n };\n\n const nestedExclusionGroups: NestedExclusionGroup[] | undefined = tool.exclusionGroups\n ?.filter((g) => !g.commandKey)\n .map((group) => ({\n name: group.name,\n exclusionType: group.exclusionType,\n parameters: group.parameterKeys.map((pk) => {\n const param = tool.parameters.find((p) => p.key === pk);\n return param?.longFlag || \"\";\n }),\n }));\n\n const rootParameters =\n tool.commands.length === 0 ? tool.parameters.filter((p) => !p.commandKey && !p.isGlobal) : [];\n\n return {\n binaryName: tool.binaryName,\n url: tool.info?.url,\n displayName: tool.displayName,\n interactive: tool.interactive,\n info: tool.info,\n metadata: tool.metadata,\n rootParameters: rootParameters.map(convertParameter),\n globalParameters: globalParameters.map(convertParameter),\n commands: buildNestedCommands(tool.commands),\n exclusionGroups: nestedExclusionGroups,\n };\n};\n", + "path": "registry/commandly/utils/json-tree.ts", + "content": "export type JsonValueType = \"object\" | \"array\" | \"string\" | \"number\" | \"boolean\" | \"null\" | \"other\";\n\nconst IDENTIFIER = /^[A-Za-z_$][\\w$]*$/;\n\n/** How many matches a search collects before giving up. */\nconst MAX_MATCHES = 2000;\n\nexport function typeOf(value: unknown): JsonValueType {\n if (value === null) return \"null\";\n if (Array.isArray(value)) return \"array\";\n switch (typeof value) {\n case \"object\":\n return \"object\";\n case \"string\":\n return \"string\";\n case \"number\":\n case \"bigint\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"other\";\n }\n}\n\nexport const isBranch = (type: JsonValueType) => type === \"object\" || type === \"array\";\n\nexport function entries(value: unknown): [string | number, unknown][] {\n if (Array.isArray(value)) return value.map((item, index) => [index, item]);\n if (value && typeof value === \"object\") return Object.entries(value as Record);\n return [];\n}\n\n/** The dot/bracket path of a child within its parent, e.g. `root.items[2].name`. */\nexport const childPath = (parent: string, key: string | number) =>\n typeof key === \"number\"\n ? `${parent}[${key}]`\n : IDENTIFIER.test(key)\n ? `${parent}.${key}`\n : `${parent}[${JSON.stringify(key)}]`;\n\n/** Whether `id` is `ancestor` or sits beneath it. */\nexport const within = (ancestor: string, id: string) =>\n id === ancestor || id.startsWith(`${ancestor}.`) || id.startsWith(`${ancestor}[`);\n\nexport function primitiveText(value: unknown, type: JsonValueType) {\n if (type === \"string\") return value as string;\n if (type === \"null\") return \"null\";\n return String(value);\n}\n\n/** The text a copy action should place on the clipboard for this value. */\nexport function copyText(value: unknown, type: JsonValueType) {\n if (type === \"string\") return value as string;\n if (isBranch(type)) return JSON.stringify(value, null, 2);\n return primitiveText(value, type);\n}\n\nconst plural = (count: number, one: string, many: string) => `${count} ${count === 1 ? one : many}`;\n\nexport const countLabel = (type: JsonValueType, count: number) =>\n type === \"array\" ? plural(count, \"item\", \"items\") : plural(count, \"key\", \"keys\");\n\n/** The paths of every branch in the data, root first. */\nexport function allBranches(data: unknown, rootName: string) {\n const out: string[] = [];\n const visit = (value: unknown, id: string) => {\n if (!isBranch(typeOf(value))) return;\n out.push(id);\n for (const [key, child] of entries(value)) visit(child, childPath(id, key));\n };\n visit(data, rootName);\n return out;\n}\n\n/** The paths of every branch within the first `depth` levels. */\nexport function branchesToDepth(data: unknown, rootName: string, depth: number) {\n const out: string[] = [];\n const visit = (value: unknown, id: string, level: number) => {\n if (level >= depth || !isBranch(typeOf(value))) return;\n out.push(id);\n for (const [key, child] of entries(value)) visit(child, childPath(id, key), level + 1);\n };\n visit(data, rootName, 0);\n return out;\n}\n\nexport interface SearchResult {\n /** The paths of every matching row, in document order. */\n matches: string[];\n /** The branches that must be open for every match to be reachable. */\n ancestors: Set;\n /** Per branch, how many of its children must be listed for every match to be reachable. */\n needed: Map;\n}\n\n/** A case-insensitive search over keys and primitive values. */\nexport function searchJson(data: unknown, rootName: string, needle: string): SearchResult {\n const matches: string[] = [];\n const ancestors = new Set();\n const needed = new Map();\n const frames: [string, number][] = [];\n const visit = (value: unknown, id: string, name: string | number | null) => {\n if (matches.length >= MAX_MATCHES) return;\n const type = typeOf(value);\n const inKey = typeof name === \"string\" && name.toLowerCase().includes(needle);\n const inValue = !isBranch(type) && primitiveText(value, type).toLowerCase().includes(needle);\n if (inKey || inValue) {\n matches.push(id);\n for (const [frame, index] of frames) {\n ancestors.add(frame);\n needed.set(frame, Math.max(needed.get(frame) ?? 0, index + 1));\n }\n }\n if (!isBranch(type)) return;\n entries(value).forEach(([key, child], index) => {\n frames.push([id, index]);\n visit(child, childPath(id, key), key);\n frames.pop();\n });\n };\n visit(data, rootName, null);\n return { matches, ancestors, needed };\n}\n", "type": "registry:file", - "target": "components/commandly/utils/nested.ts" + "target": "components/commandly/utils/json-tree.ts" } ], "type": "registry:block" diff --git a/public/specification/nested.json b/public/specification/nested.json deleted file mode 100644 index 7e2f9a0..0000000 --- a/public/specification/nested.json +++ /dev/null @@ -1,401 +0,0 @@ -{ - "type": "object", - "properties": { - "binaryName": { - "description": "Unique binary name for the tool that it can be invoked from the command line (e.g. \"httpx\").", - "type": "string" - }, - "displayName": { - "description": "Human-readable display name for the tool (e.g. \"HTTPx\").", - "type": "string" - }, - "interactive": { - "description": "Whether the root tool invocation opens an interactive session or prompt.", - "type": "boolean" - }, - "info": { - "description": "General information about the tool such as description, version, and URL.", - "$ref": "#/definitions/ToolInfo" - }, - "url": { - "description": "The homepage or documentation URL for the tool.", - "type": "string" - }, - "rootParameters": { - "description": "Parameters that belong to the root invocation when no commands exist.", - "type": "array", - "items": { - "$ref": "#/definitions/NestedParameter" - } - }, - "globalParameters": { - "description": "Parameters that apply to all commands globally.", - "type": "array", - "items": { - "$ref": "#/definitions/NestedParameter" - } - }, - "commands": { - "description": "Hierarchical list of commands and their nested subcommands.", - "type": "array", - "items": { - "$ref": "#/definitions/NestedCommand" - } - }, - "exclusionGroups": { - "description": "Groups of parameters with mutual exclusion or required-one-of constraints.", - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/NestedExclusionGroup" - } - }, - { - "type": "null" - } - ] - }, - "metadata": { - "description": "Arbitrary metadata attached to the tool.", - "$ref": "#/definitions/ToolMetadata" - } - }, - "required": [ - "binaryName", - "commands", - "displayName", - "globalParameters", - "rootParameters" - ], - "definitions": { - "ToolInfo": { - "type": "object", - "properties": { - "description": { - "description": "A brief human-readable description of what the tool does.", - "type": "string" - }, - "version": { - "description": "The version string of the tool (e.g. \"1.0.0\").", - "type": "string" - }, - "url": { - "description": "The homepage or documentation URL for the tool.", - "type": "string" - } - } - }, - "NestedParameter": { - "type": "object", - "properties": { - "name": { - "description": "Human-readable display name of the parameter.", - "type": "string" - }, - "description": { - "description": "Brief description of what this parameter does or accepts.", - "type": "string" - }, - "group": { - "description": "Optional grouping label for organising related parameters in the UI.", - "type": "string" - }, - "parameterType": { - "$ref": "#/definitions/ParameterType", - "description": "Whether this is a boolean flag, a key-value option, or a positional argument." - }, - "dataType": { - "$ref": "#/definitions/ParameterDataType", - "description": "The data type of the parameter's value." - }, - "metadata": { - "description": "Additional metadata such as tags.", - "$ref": "#/definitions/ParameterMetadata" - }, - "isRequired": { - "description": "Whether the user must provide this parameter.", - "type": "boolean" - }, - "isRepeatable": { - "description": "Whether this parameter can be specified multiple times.", - "type": "boolean" - }, - "isGlobal": { - "description": "Whether this parameter applies to all commands rather than a single command.", - "type": "boolean" - }, - "shortFlag": { - "description": "The single-character short flag (e.g. \"-v\").", - "type": "string" - }, - "longFlag": { - "description": "The long-form flag or option name (e.g. \"--verbose\").", - "type": "string" - }, - "position": { - "description": "Zero-based position index for positional arguments.", - "type": "number" - }, - "sortOrder": { - "description": "Display sort position relative to sibling parameters.", - "type": "number" - }, - "arraySeparator": { - "description": "Separator character used when the option accepts multiple values in one argument (e.g. \",\").", - "type": "string" - }, - "keyValueSeparator": { - "description": "Separator between key and value for key=value style options (e.g. \"=\").", - "type": "string" - }, - "enum": { - "description": "Allowed enum choices when dataType is \"Enum\".", - "$ref": "#/definitions/ParameterEnumValues" - }, - "validations": { - "description": "Validation rules applied to this parameter's value.", - "type": "array", - "items": { - "$ref": "#/definitions/NestedParameterValidation" - } - }, - "dependencies": { - "description": "Dependencies on other parameters (requires or conflicts-with relationships).", - "type": "array", - "items": { - "$ref": "#/definitions/NestedParameterDependency" - } - } - }, - "required": [ - "dataType", - "name", - "parameterType" - ] - }, - "ParameterType": { - "enum": [ - "Argument", - "Flag", - "Option" - ], - "type": "string" - }, - "ParameterDataType": { - "enum": [ - "Boolean", - "Enum", - "Number", - "String" - ], - "type": "string" - }, - "ParameterMetadata": { - "type": "object", - "properties": { - "tags": { - "description": "Arbitrary tags for categorising or filtering parameters.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ParameterEnumValues": { - "type": "object", - "properties": { - "values": { - "description": "The list of allowed enum choices.", - "type": "array", - "items": { - "$ref": "#/definitions/ParameterEnumValue" - } - }, - "allowMultiple": { - "description": "Whether the user can select multiple values at once.", - "type": "boolean" - }, - "separator": { - "description": "Separator character used when joining multiple selected values.", - "type": "string" - } - }, - "required": [ - "values" - ] - }, - "ParameterEnumValue": { - "type": "object", - "properties": { - "value": { - "description": "The raw value passed to the CLI for this choice.", - "type": "string" - }, - "displayName": { - "description": "Human-readable label shown to the user for this enum choice.", - "type": "string" - }, - "description": { - "description": "Description of what this enum value does or represents.", - "type": "string" - }, - "isDefault": { - "description": "Whether this is the default selection when no value is provided.", - "type": "boolean" - }, - "sortOrder": { - "description": "Display sort position relative to sibling enum values.", - "type": "number" - } - }, - "required": [ - "displayName", - "value" - ] - }, - "NestedParameterValidation": { - "type": "object", - "properties": { - "validationType": { - "$ref": "#/definitions/ParameterValidationType", - "description": "The type of validation to apply." - }, - "validationValue": { - "description": "The value to validate against (e.g. max length number or regex pattern).", - "type": "string" - }, - "errorMessage": { - "description": "The error message to display when validation fails.", - "type": "string" - } - }, - "required": [ - "errorMessage", - "validationType", - "validationValue" - ] - }, - "ParameterValidationType": { - "enum": [ - "max_length", - "max_value", - "min_length", - "min_value", - "regex" - ], - "type": "string" - }, - "NestedParameterDependency": { - "type": "object", - "properties": { - "dependsOnParameter": { - "description": "Name of the parameter this dependency references.", - "type": "string" - }, - "dependencyType": { - "$ref": "#/definitions/ParameterDependencyType", - "description": "Whether this parameter requires or conflicts with the referenced parameter." - }, - "conditionValue": { - "description": "Optional value that the referenced parameter must have for this dependency to apply.", - "type": "string" - } - }, - "required": [ - "dependencyType", - "dependsOnParameter" - ] - }, - "ParameterDependencyType": { - "enum": [ - "conflicts_with", - "requires" - ], - "type": "string" - }, - "NestedCommand": { - "type": "object", - "properties": { - "name": { - "description": "Human-readable display name of the command.", - "type": "string" - }, - "description": { - "description": "Brief description of what this command does.", - "type": "string" - }, - "interactive": { - "description": "Whether this command opens an interactive session or prompt.", - "type": "boolean" - }, - "sortOrder": { - "description": "Display sort position relative to sibling commands.", - "type": "number" - }, - "parameters": { - "description": "Parameters that belong directly to this command.", - "type": "array", - "items": { - "$ref": "#/definitions/NestedParameter" - } - }, - "subcommands": { - "description": "Nested subcommands of this command.", - "type": "array", - "items": { - "$ref": "#/definitions/NestedCommand" - } - }, - "exclusionGroups": { - "type": "array", - "items": { - "$ref": "#/definitions/NestedExclusionGroup" - } - } - }, - "required": [ - "name", - "parameters", - "subcommands" - ] - }, - "NestedExclusionGroup": { - "type": "object", - "properties": { - "name": { - "description": "Human-readable name for this exclusion group.", - "type": "string" - }, - "exclusionType": { - "$ref": "#/definitions/ExclusionType", - "description": "Whether parameters in this group are mutually exclusive or one is required." - }, - "parameters": { - "description": "Names of the parameters that participate in this exclusion group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "exclusionType", - "name", - "parameters" - ] - }, - "ExclusionType": { - "enum": [ - "mutual_exclusive", - "required_one_of" - ], - "type": "string" - }, - "ToolMetadata": { - "type": "object" - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" -} \ No newline at end of file diff --git a/public/specification/flat.json b/public/specification/tool.json similarity index 74% rename from public/specification/flat.json rename to public/specification/tool.json index d2c0981..fa79267 100644 --- a/public/specification/flat.json +++ b/public/specification/tool.json @@ -17,22 +17,26 @@ "description": "General information about the tool such as description, version, and URL.", "$ref": "#/definitions/ToolInfo" }, - "commands": { - "description": "List of all commands and subcommands defined for this tool.", + "installation": { + "description": "Structured installation instructions for the tool.", + "$ref": "#/definitions/Installation" + }, + "parameters": { + "description": "Parameters accepted by the tool itself, before a command is chosen. A tool's own flags live\nhere; do not model the root invocation as a command named after the binary, or the root would\nbe described twice.", "type": "array", "items": { - "$ref": "#/definitions/Command" + "$ref": "#/definitions/Parameter" } }, - "parameters": { - "description": "Flat list of all parameters across all commands and global scope.", + "commands": { + "description": "List of all commands and subcommands defined for this tool.", "type": "array", "items": { - "$ref": "#/definitions/Parameter" + "$ref": "#/definitions/Command" } }, "exclusionGroups": { - "description": "Groups of parameters with mutual exclusion or required-one-of constraints.", + "description": "Groups of the tool's own parameters with mutual exclusion or required-one-of constraints.", "type": "array", "items": { "$ref": "#/definitions/ExclusionGroup" @@ -67,54 +71,87 @@ } } }, - "Command": { + "Installation": { + "type": "object", + "properties": { + "sources": { + "description": "The list of documented ways to install the tool.", + "type": "array", + "items": { + "$ref": "#/definitions/InstallationSource" + } + } + }, + "required": [ + "sources" + ] + }, + "InstallationSource": { "type": "object", "properties": { "key": { - "description": "Unique identifier for this command within the tool.", + "description": "Unique identifier for this installation source within the tool.", "type": "string" }, - "parentCommandKey": { - "description": "Key of the parent command; used to represent subcommand nesting.", + "method": { + "$ref": "#/definitions/InstallationMethod", + "description": "How the tool is installed." + }, + "manager": { + "description": "Package manager name, set only when method is \"package_manager\" (e.g. \"brew\", \"go\").", "type": "string" }, - "name": { - "description": "Human-readable display name of the command.", + "command": { + "description": "The command that installs the tool.", "type": "string" }, - "description": { - "description": "Brief description of what this command does.", + "url": { + "description": "Documentation URL describing this installation method.", "type": "string" }, - "interactive": { - "description": "Whether this command opens an interactive session or prompt.", - "type": "boolean" + "os": { + "description": "Platforms this installation method applies to.", + "type": "array", + "items": { + "enum": [ + "linux", + "macos", + "windows" + ], + "type": "string" + } }, - "sortOrder": { - "description": "Display sort position relative to sibling commands.", - "type": "number" + "note": { + "description": "Additional context for this installation source.", + "type": "string" } }, "required": [ + "command", "key", - "name" + "method" ] }, + "InstallationMethod": { + "enum": [ + "binary", + "docker", + "package_manager", + "script" + ], + "type": "string" + }, "Parameter": { "type": "object", "properties": { "key": { - "description": "Unique identifier for this parameter within the tool.", + "description": "Unique identifier among its command's parameters. For flags and options this is the full flag, dashes included (e.g. \"--output\", \"-list\").", "type": "string" }, - "name": { + "displayName": { "description": "Human-readable display name of the parameter.", "type": "string" }, - "commandKey": { - "description": "Key of the command this parameter belongs to; omit for global parameters.", - "type": "string" - }, "description": { "description": "Brief description of what this parameter does or accepts.", "type": "string" @@ -143,17 +180,16 @@ "description": "Whether this parameter can be specified multiple times.", "type": "boolean" }, - "isGlobal": { - "description": "Whether this parameter applies to all commands rather than a single command.", - "type": "boolean" - }, - "shortFlag": { - "description": "The single-character short flag (e.g. \"-v\").", - "type": "string" + "aliases": { + "description": "Short names and other alternate invocation forms (e.g. [\"-o\"]). The full flag is `key`.", + "type": "array", + "items": { + "type": "string" + } }, - "longFlag": { - "description": "The long-form flag or option name (e.g. \"--verbose\").", - "type": "string" + "recursive": { + "description": "Whether this parameter is also accessible from the subcommands of its command, recursively.", + "type": "boolean" }, "position": { "description": "Zero-based position index for positional arguments.", @@ -192,8 +228,8 @@ }, "required": [ "dataType", + "displayName", "key", - "name", "parameterType" ] }, @@ -353,18 +389,71 @@ ], "type": "string" }, - "ExclusionGroup": { + "Command": { "type": "object", "properties": { "key": { - "description": "Unique identifier for this exclusion group.", + "description": "Unique identifier for this command within the tool.", + "type": "string" + }, + "displayName": { + "description": "Human-readable display name of the command.", + "type": "string" + }, + "aliases": { + "description": "Alternate spellings that invoke this command in place of its name.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Brief description of what this command does.", "type": "string" }, - "commandKey": { - "description": "Key of the command this exclusion group belongs to; omit for global groups.", + "interactive": { + "description": "Whether this command opens an interactive session or prompt.", + "type": "boolean" + }, + "sortOrder": { + "description": "Display sort position relative to sibling commands.", + "type": "number" + }, + "parameters": { + "description": "Parameters accepted by this command. Keys are unique among them. Omit for grouping commands.", + "type": "array", + "items": { + "$ref": "#/definitions/Parameter" + } + }, + "exclusionGroups": { + "description": "Groups of this command's parameters with mutual exclusion or required-one-of constraints.", + "type": "array", + "items": { + "$ref": "#/definitions/ExclusionGroup" + } + }, + "commands": { + "description": "Subcommands nested beneath this command.", + "type": "array", + "items": { + "$ref": "#/definitions/Command" + } + } + }, + "required": [ + "displayName", + "key" + ] + }, + "ExclusionGroup": { + "type": "object", + "properties": { + "key": { + "description": "Unique identifier for this exclusion group.", "type": "string" }, - "name": { + "displayName": { "description": "Human-readable name for this exclusion group.", "type": "string" }, @@ -381,8 +470,8 @@ } }, "required": [ + "displayName", "exclusionType", - "name", "parameterKeys" ] }, diff --git a/public/tools-collection/asnmap.json b/public/tools-collection/asnmap.json index f8ac3db..b88cf42 100644 --- a/public/tools-collection/asnmap.json +++ b/public/tools-collection/asnmap.json @@ -1,5 +1,5 @@ { - "$schema": "https://commandly.divyeshio.in/specification/flat.json", + "$schema": "https://commandly.divyeshio.in/specification/tool.json", "binaryName": "asnmap", "displayName": "ASNMap", "info": { @@ -10,179 +10,196 @@ "commands": [], "parameters": [ { - "name": "ASN", + "displayName": "ASN", "description": "Target ASN to lookup, example: -a AS5650", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "shortFlag": "-a", - "longFlag": "-asn", "sortOrder": 1, "arraySeparator": ",", - "keyValueSeparator": " ", - "key": "asn" + "key": "-asn", + "aliases": [ + "-a" + ] }, { - "name": "IP", + "displayName": "IP", "description": "Target IP to lookup, example: -i 100.19.12.21, -i 2a10:ad40::", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "shortFlag": "-i", - "longFlag": "-ip", "sortOrder": 2, "arraySeparator": ",", - "keyValueSeparator": " ", - "key": "ip" + "key": "-ip", + "aliases": [ + "-i" + ] }, { - "name": "Domain", + "displayName": "Domain", "description": "Target domain to lookup, example: -d google.com, -d facebook.com", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "shortFlag": "-d", - "longFlag": "-domain", "sortOrder": 3, "arraySeparator": ",", - "keyValueSeparator": " ", - "key": "domain" + "key": "-domain", + "aliases": [ + "-d" + ] }, { - "name": "Org", + "displayName": "Org", "description": "Target organization to lookup, example: -org GOOGLE", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "longFlag": "-org", "sortOrder": 4, "arraySeparator": ",", - "keyValueSeparator": " ", - "key": "org" + "key": "-org" }, { - "name": "File", + "displayName": "File", "description": "Targets to lookup from file", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "shortFlag": "-f", - "longFlag": "-file", "sortOrder": 5, "arraySeparator": ",", - "keyValueSeparator": " ", - "key": "file" + "key": "-file", + "aliases": [ + "-f" + ] }, { - "name": "Config", + "displayName": "Config", "description": "Path to the asnmap configuration file", "parameterType": "Option", "dataType": "String", - "longFlag": "-config", "sortOrder": 6, - "keyValueSeparator": " ", - "key": "config" + "key": "-config" }, { - "name": "Resolvers", + "displayName": "Resolvers", "description": "List of resolvers to use", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "shortFlag": "-r", - "longFlag": "-resolvers", "sortOrder": 7, "arraySeparator": ",", - "keyValueSeparator": " ", - "key": "resolvers" + "key": "-resolvers", + "aliases": [ + "-r" + ] }, { - "name": "Update", + "displayName": "Update", "description": "Update asnmap to latest version", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-up", - "longFlag": "-update", "sortOrder": 8, - "key": "update" + "key": "-update", + "aliases": [ + "-up" + ] }, { - "name": "Disable Update Check", + "displayName": "Disable Update Check", "description": "Disable automatic asnmap update check", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-duc", - "longFlag": "-disable-update-check", "sortOrder": 9, - "key": "disable-update-check" + "key": "-disable-update-check", + "aliases": [ + "-duc" + ] }, { - "name": "Output File", + "displayName": "Output File", "description": "File to write output to", "parameterType": "Option", "dataType": "String", - "shortFlag": "-o", - "longFlag": "-output", "sortOrder": 10, - "keyValueSeparator": " ", - "key": "output" + "key": "-output", + "aliases": [ + "-o" + ] }, { - "name": "JSON Output", + "displayName": "JSON Output", "description": "Display JSON format output", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-j", - "longFlag": "-json", "sortOrder": 11, - "key": "json" + "key": "-json", + "aliases": [ + "-j" + ] }, { - "name": "CSV Output", + "displayName": "CSV Output", "description": "Display CSV format output", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-c", - "longFlag": "-csv", "sortOrder": 12, - "key": "csv" + "key": "-csv", + "aliases": [ + "-c" + ] }, { - "name": "IPv6 Output", + "displayName": "IPv6 Output", "description": "Display IPv6 CIDR ranges in CLI output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-v6", "sortOrder": 13, - "key": "v6" + "key": "-v6" }, { - "name": "Verbose Output", + "displayName": "Verbose Output", "description": "Display verbose output", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-v", - "longFlag": "-verbose", "sortOrder": 14, - "key": "verbose" + "key": "-verbose", + "aliases": [ + "-v" + ] }, { - "name": "Silent", + "displayName": "Silent", "description": "Display silent output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-silent", "sortOrder": 15, - "key": "silent" + "key": "-silent" }, { - "name": "Version", + "displayName": "Version", "description": "Show version of the project", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-version", "sortOrder": 16, - "key": "version" + "key": "-version" } - ] + ], + "installation": { + "sources": [ + { + "key": "go-install", + "method": "package_manager", + "manager": "go", + "command": "go install github.com/projectdiscovery/asnmap/cmd/asnmap@latest", + "url": "https://github.com/projectdiscovery/asnmap#installation", + "note": "Requires Go 1.21." + }, + { + "key": "release-binary", + "method": "binary", + "command": "https://github.com/projectdiscovery/asnmap/releases", + "url": "https://github.com/projectdiscovery/asnmap#installation", + "note": "Download the pre-compiled binary for your OS." + } + ] + } } diff --git a/public/tools-collection/cdncheck.json b/public/tools-collection/cdncheck.json index eb6818b..f42cc15 100644 --- a/public/tools-collection/cdncheck.json +++ b/public/tools-collection/cdncheck.json @@ -1,62 +1,58 @@ { - "$schema": "https://commandly.divyeshio.in/specification/flat.json", + "$schema": "https://commandly.divyeshio.in/specification/tool.json", "binaryName": "cdncheck", "displayName": "CDNCheck", "info": { "description": "cdncheck is a tool for identifying the technology associated with dns / ip network addresses.", - "version": "1.2.27", + "version": "1.3.2", "url": "https://github.com/projectdiscovery/cdncheck" }, "commands": [], "parameters": [ { - "name": "Input", + "displayName": "Input", "description": "List of IP / DNS to process", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "shortFlag": "-i", - "longFlag": "-input", "sortOrder": 1, - "key": "input" + "key": "-input", + "aliases": [ + "-i" + ] }, { - "name": "CDN", + "displayName": "CDN", "description": "Display only CDN in CLI output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-cdn", "sortOrder": 2, - "key": "cdn" + "key": "-cdn" }, { - "name": "Cloud", + "displayName": "Cloud", "description": "Display only cloud in CLI output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-cloud", "sortOrder": 3, - "key": "cloud" + "key": "-cloud" }, { - "name": "WAF", + "displayName": "WAF", "description": "Display only WAF in CLI output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-waf", "sortOrder": 4, - "key": "waf" + "key": "-waf" }, { - "name": "Match CDN", + "displayName": "Match CDN", "description": "Match host with specified CDN provider (cloudfront, fastly, google, leaseweb)", "parameterType": "Option", "dataType": "Enum", "isRepeatable": true, - "shortFlag": "-mcdn", - "longFlag": "-match-cdn", "sortOrder": 5, - "key": "match-cdn", + "key": "-match-cdn", "enum": { "allowMultiple": true, "values": [ @@ -77,18 +73,19 @@ "displayName": "Leaseweb" } ] - } + }, + "aliases": [ + "-mcdn" + ] }, { - "name": "Match Cloud", + "displayName": "Match Cloud", "description": "Match host with specified cloud provider (aws, google, oracle)", "parameterType": "Option", "dataType": "Enum", "isRepeatable": true, - "shortFlag": "-mcloud", - "longFlag": "-match-cloud", "sortOrder": 6, - "key": "match-cloud", + "key": "-match-cloud", "enum": { "values": [ { @@ -104,18 +101,19 @@ "displayName": "Oracle" } ] - } + }, + "aliases": [ + "-mcloud" + ] }, { - "name": "Match WAF", + "displayName": "Match WAF", "description": "Match host with specified WAF provider (cloudflare, incapsula, sucuri, akamai)", "parameterType": "Option", "dataType": "Enum", "isRepeatable": true, - "shortFlag": "-mwaf", - "longFlag": "-match-waf", "sortOrder": 7, - "key": "match-waf", + "key": "-match-waf", "enum": { "values": [ { @@ -135,18 +133,19 @@ "displayName": "Akamai" } ] - } + }, + "aliases": [ + "-mwaf" + ] }, { - "name": "Filter CDN", + "displayName": "Filter CDN", "description": "Filter host with specified CDN provider (cloudfront, fastly, google, leaseweb)", "parameterType": "Option", "dataType": "Enum", "isRepeatable": true, - "shortFlag": "-fcdn", - "longFlag": "-filter-cdn", "sortOrder": 8, - "key": "filter-cdn", + "key": "-filter-cdn", "enum": { "allowMultiple": true, "values": [ @@ -167,18 +166,19 @@ "displayName": "Leaseweb" } ] - } + }, + "aliases": [ + "-fcdn" + ] }, { - "name": "Filter Cloud", + "displayName": "Filter Cloud", "description": "Filter host with specified cloud provider (aws, google, oracle)", "parameterType": "Option", "dataType": "Enum", "isRepeatable": true, - "shortFlag": "-fcloud", - "longFlag": "-filter-cloud", "sortOrder": 9, - "key": "filter-cloud", + "key": "-filter-cloud", "enum": { "allowMultiple": true, "values": [ @@ -195,18 +195,19 @@ "displayName": "Oracle" } ] - } + }, + "aliases": [ + "-fcloud" + ] }, { - "name": "Filter WAF", + "displayName": "Filter WAF", "description": "Filter host with specified WAF provider (cloudflare, incapsula, sucuri, akamai)", "parameterType": "Option", "dataType": "Enum", "isRepeatable": true, - "shortFlag": "-fwaf", - "longFlag": "-filter-waf", "sortOrder": 10, - "key": "filter-waf", + "key": "-filter-waf", "enum": { "values": [ { @@ -226,147 +227,165 @@ "displayName": "Akamai" } ] - } + }, + "aliases": [ + "-fwaf" + ] }, { - "name": "Response Technology", + "displayName": "Response Technology", "description": "Display technology name in CLI output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-resp", "sortOrder": 11, - "key": "resp" + "key": "-resp" }, { - "name": "Output", + "displayName": "Output", "description": "Write output in plain format to file", "parameterType": "Option", "dataType": "String", - "shortFlag": "-o", - "longFlag": "-output", "sortOrder": 12, - "key": "output" + "key": "-output", + "aliases": [ + "-o" + ] }, { - "name": "Verbose", + "displayName": "Verbose", "description": "Display verbose output", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-v", - "longFlag": "-verbose", "sortOrder": 13, - "key": "verbose" + "key": "-verbose", + "aliases": [ + "-v" + ] }, { - "name": "JSONL Output", + "displayName": "JSONL Output", "description": "Write output in JSON Lines format", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-jsonl", "sortOrder": 14, - "key": "jsonl" + "key": "-jsonl", + "aliases": [ + "-j" + ] }, { - "name": "No Color", + "displayName": "No Color", "description": "Disable colors in CLI output", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-nc", - "longFlag": "-no-color", "sortOrder": 15, - "key": "no-color" + "key": "-no-color", + "aliases": [ + "-nc" + ] }, { - "name": "Version", + "displayName": "Version", "description": "Display version of the project", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-version", "sortOrder": 16, - "key": "version" + "key": "-version" }, { - "name": "Silent", + "displayName": "Silent", "description": "Only display results in output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-silent", "sortOrder": 17, - "key": "silent" + "key": "-silent" }, { - "name": "Resolver", + "displayName": "Resolver", "description": "List of resolvers to use (file or comma separated)", "parameterType": "Option", "dataType": "String", "isRepeatable": true, - "shortFlag": "-r", - "longFlag": "-resolver", "sortOrder": 18, - "key": "resolver" + "key": "-resolver", + "aliases": [ + "-r" + ] }, { - "name": "Exclude", + "displayName": "Exclude", "description": "Exclude detected IP from output", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-e", - "longFlag": "-exclude", "sortOrder": 19, - "key": "exclude" + "key": "-exclude", + "aliases": [ + "-e" + ] }, { - "name": "Retry", + "displayName": "Retry", "description": "Maximum number of retries for DNS resolution (must be at least 1)", "parameterType": "Option", "dataType": "Number", - "longFlag": "-retry", "sortOrder": 20, - "key": "retry" + "key": "-retry" }, { - "name": "Update", + "displayName": "Update", "description": "Update cdncheck to latest version", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-up", - "longFlag": "-update", "sortOrder": 21, - "key": "update" + "key": "-update", + "aliases": [ + "-up" + ] }, { - "name": "Disable Update Check", + "displayName": "Disable Update Check", "description": "Disable automatic cdncheck update check", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-duc", - "longFlag": "-disable-update-check", "sortOrder": 22, - "key": "disable-update-check" + "key": "-disable-update-check", + "aliases": [ + "-duc" + ] } ], "exclusionGroups": [ { - "name": "Detection", + "displayName": "Detection", "exclusionType": "mutual_exclusive", "key": "detection", - "commandKey": "cdncheck", "parameterKeys": [ - "cdn", - "cloud", - "waf" + "-cdn", + "-cloud", + "-waf" ] }, { - "name": "Filter", + "displayName": "Filter", "exclusionType": "mutual_exclusive", "key": "filter", - "commandKey": "cdncheck", "parameterKeys": [ - "filter-cdn", - "filter-cloud", - "filter-waf" + "-filter-cdn", + "-filter-cloud", + "-filter-waf" ] } - ] + ], + "installation": { + "sources": [ + { + "key": "go-install", + "method": "package_manager", + "manager": "go", + "command": "go install -v github.com/projectdiscovery/cdncheck/cmd/cdncheck@latest", + "url": "https://github.com/projectdiscovery/cdncheck#installation", + "note": "Requires Go 1.19." + } + ] + } } diff --git a/public/tools-collection/curl.json b/public/tools-collection/curl.json index 8452fca..4c6a131 100644 --- a/public/tools-collection/curl.json +++ b/public/tools-collection/curl.json @@ -1,2742 +1,2610 @@ { - "$schema": "https://commandly.divyeshio.in/specification/flat.json", + "$schema": "https://commandly.divyeshio.in/specification/tool.json", "binaryName": "curl", - "displayName": "Curl", + "displayName": "curl", "info": { - "description": "curl is a command line tool and library for transferring data with URLs.", - "version": "8.19.0", - "url": "https://curl.se/" + "description": "curl is a tool for transferring data from or to a server using URLs.", + "version": "8.7.1", + "url": "https://curl.se" + }, + "installation": { + "sources": [ + { + "key": "apt", + "method": "package_manager", + "manager": "apt", + "command": "sudo apt install curl", + "url": "https://curl.se/download.html", + "os": [ + "linux" + ], + "note": "Packaged in the default Debian and Ubuntu repositories." + }, + { + "key": "dnf", + "method": "package_manager", + "manager": "dnf", + "command": "sudo dnf install curl", + "url": "https://curl.se/download.html", + "os": [ + "linux" + ], + "note": "Packaged in the default Fedora repositories." + }, + { + "key": "brew", + "method": "package_manager", + "manager": "brew", + "command": "brew install curl", + "url": "https://curl.se/download.html", + "os": [ + "linux", + "macos" + ] + }, + { + "key": "winget", + "method": "package_manager", + "manager": "winget", + "command": "winget install cURL.cURL", + "url": "https://curl.se/download.html", + "os": [ + "windows" + ] + }, + { + "key": "scoop", + "method": "package_manager", + "manager": "scoop", + "command": "scoop install curl", + "url": "https://curl.se/download.html", + "os": [ + "windows" + ] + }, + { + "key": "chocolatey", + "method": "package_manager", + "manager": "choco", + "command": "choco install curl", + "url": "https://curl.se/download.html", + "os": [ + "windows" + ] + }, + { + "key": "windows-binary", + "method": "binary", + "command": "https://curl.se/windows/", + "url": "https://curl.se/windows/", + "os": [ + "windows" + ], + "note": "Official curl-for-Windows builds published by the curl project." + }, + { + "key": "curl-container", + "method": "docker", + "command": "podman run quay.io/curl/curl:latest", + "url": "https://curl.se/download.html", + "note": "Official curl container image." + } + ] }, - "commands": [], "parameters": [ { - "name": "Target", - "description": "URL to download.", + "key": "url", + "displayName": "URL", "parameterType": "Argument", "dataType": "String", - "isRequired": true, - "sortOrder": 5, - "position": 1, - "key": "target" + "position": 0, + "sortOrder": 0, + "description": "One or more URLs to transfer." }, { - "name": "Output", - "description": "Write to file instead of stdout.", + "key": "--abstract-unix-socket", + "displayName": "Abstract Unix Socket", "parameterType": "Option", "dataType": "String", - "shortFlag": "-o", - "longFlag": "--output", - "keyValueSeparator": " ", - "sortOrder": 4, - "key": "output" + "sortOrder": 1, + "description": "Connect through an abstract Unix domain socket, instead of using the network.", + "group": "connection" }, { - "name": "Location", - "description": "Follow redirects.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-L", - "longFlag": "--location", - "sortOrder": 1, - "key": "location" + "key": "--alt-svc", + "displayName": "Alt SVC", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Enable the alt-svc parser.", + "group": "http", + "isRepeatable": true }, { - "name": "Silent", - "description": "Silent mode.", + "key": "--anyauth", + "displayName": "Anyauth", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-s", - "longFlag": "--silent", - "sortOrder": 2, - "key": "silent" + "sortOrder": 3, + "description": "Figure out authentication method automatically, and use the most secure one the remote site claims to support.", + "group": "auth" }, { - "name": "Insecure", - "description": "Allow insecure server connections.", + "key": "--append", + "displayName": "Append", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-k", - "longFlag": "--insecure", - "sortOrder": 3, - "key": "insecure" + "sortOrder": 4, + "description": "When used in an upload, this option makes curl append to the target file instead of overwriting it.", + "group": "ftp", + "aliases": [ + "-a" + ] }, { - "name": "Config", - "description": "Read config from a file.", + "key": "--aws-sigv4", + "displayName": "AWS SigV4", "parameterType": "Option", "dataType": "String", - "shortFlag": "-K", - "longFlag": "--config", - "keyValueSeparator": " ", + "sortOrder": 5, + "description": "Use AWS V4 signature authentication in the transfer.", + "group": "auth" + }, + { + "key": "--basic", + "displayName": "Basic", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 6, - "key": "config" + "description": "Use HTTP Basic authentication with the remote host.", + "group": "auth" }, { - "name": "Dump Header", - "description": "Write the received headers to .", - "parameterType": "Option", - "dataType": "String", - "shortFlag": "-D", - "longFlag": "--dump-header", - "keyValueSeparator": " ", + "key": "--ca-native", + "displayName": "CA Native", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 7, - "key": "dump-header" + "description": "Use the CA store from the native operating system to verify the peer.", + "group": "tls" }, { - "name": "Request", - "description": "Specify request method to use.", + "key": "--cacert", + "displayName": "CA Cert", "parameterType": "Option", "dataType": "String", - "shortFlag": "-X", - "longFlag": "--request", - "keyValueSeparator": " ", "sortOrder": 8, - "key": "request" + "description": "Use the specified certificate file to verify the peer.", + "group": "tls" }, { - "name": "Header", - "description": "Pass custom header(s) to server.", + "key": "--capath", + "displayName": "CA Path", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "shortFlag": "-H", - "longFlag": "--header", - "keyValueSeparator": " ", "sortOrder": 9, - "key": "header" + "description": "Use the specified certificate directory to verify the peer.", + "group": "tls" }, { - "name": "Data", - "description": "HTTP POST data.", + "key": "--cert", + "displayName": "Cert", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "shortFlag": "-d", - "longFlag": "--data", - "keyValueSeparator": " ", "sortOrder": 10, - "key": "data" + "description": "Use the specified client certificate file when getting a file with HTTPS, FTPS or another SSL-based protocol.", + "group": "tls", + "aliases": [ + "-E" + ] }, { - "name": "User", - "description": "Server user and password.", - "parameterType": "Option", - "dataType": "String", - "shortFlag": "-u", - "longFlag": "--user", - "keyValueSeparator": " ", + "key": "--cert-status", + "displayName": "Cert Status", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 11, - "key": "user" + "description": "Verify the status of the server certificate by using the Certificate Status Request (aka.", + "group": "tls" }, { - "name": "User Agent", - "description": "Send User-Agent to server.", + "key": "--cert-type", + "displayName": "Cert Type", "parameterType": "Option", "dataType": "String", - "shortFlag": "-A", - "longFlag": "--user-agent", - "keyValueSeparator": " ", "sortOrder": 12, - "key": "user-agent" + "description": "Set type of the provided client certificate.", + "group": "tls" }, { - "name": "Verbose", - "description": "Make the operation more talkative.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-v", - "longFlag": "--verbose", + "key": "--ciphers", + "displayName": "Ciphers", + "parameterType": "Option", + "dataType": "String", "sortOrder": 13, - "key": "verbose" + "description": "Specifies which ciphers to use in the connection.", + "group": "tls" }, { - "name": "Fail", - "description": "Fail fast with no output on HTTP errors.", + "key": "--compressed", + "displayName": "Compressed", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-f", - "longFlag": "--fail", "sortOrder": 14, - "key": "fail" + "description": "Request a compressed response using one of the algorithms curl supports, and automatically decompress the content.", + "group": "http" }, { - "name": "Head", - "description": "Show document info only.", + "key": "--compressed-ssh", + "displayName": "Compressed SSH", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-I", - "longFlag": "--head", "sortOrder": 15, - "key": "head" + "description": "Enables built-in SSH compression.", + "group": "scp" }, { - "name": "Get", - "description": "Put the post data in the URL and use GET.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-G", - "longFlag": "--get", + "key": "--config", + "displayName": "Config", + "parameterType": "Option", + "dataType": "String", "sortOrder": 16, - "key": "get" + "description": "Specify a text file to read curl arguments from.", + "group": "curl", + "aliases": [ + "-K" + ], + "isRepeatable": true }, { - "name": "Form", - "description": "Specify multipart MIME data.", + "key": "--connect-timeout", + "displayName": "Connect Timeout", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "shortFlag": "-F", - "longFlag": "--form", - "keyValueSeparator": " ", "sortOrder": 17, - "key": "form" + "description": "Maximum time in seconds that you allow curl's connection to take.", + "group": "connection" }, { - "name": "Proxy", - "description": "Use this proxy.", + "key": "--connect-to", + "displayName": "Connect To", "parameterType": "Option", "dataType": "String", - "shortFlag": "-x", - "longFlag": "--proxy", - "keyValueSeparator": " ", "sortOrder": 18, - "key": "proxy" + "description": "For a request intended for the \"HOST1:PORT1\" pair, connect to \"HOST2:PORT2\" instead.", + "group": "connection", + "isRepeatable": true }, { - "name": "Max Time", - "description": "Maximum time allowed for transfer.", + "key": "--continue-at", + "displayName": "Continue At", "parameterType": "Option", - "dataType": "Number", - "shortFlag": "-m", - "longFlag": "--max-time", - "keyValueSeparator": " ", + "dataType": "String", "sortOrder": 19, - "key": "max-time" + "description": "Resume a previous transfer from the given byte offset.", + "group": "connection", + "aliases": [ + "-C" + ] }, { - "name": "Connect Timeout", - "description": "Maximum time allowed to connect.", + "key": "--cookie", + "displayName": "Cookie", "parameterType": "Option", - "dataType": "Number", - "longFlag": "--connect-timeout", - "keyValueSeparator": " ", + "dataType": "String", "sortOrder": 20, - "key": "connect-timeout" + "description": "Pass the data to the HTTP server in the Cookie header.", + "group": "http", + "aliases": [ + "-b" + ], + "isRepeatable": true }, { - "name": "Retry", - "description": "Retry request if transient problems occur.", + "key": "--cookie-jar", + "displayName": "Cookie Jar", "parameterType": "Option", - "dataType": "Number", - "longFlag": "--retry", - "keyValueSeparator": " ", + "dataType": "String", "sortOrder": 21, - "key": "retry" + "description": "Specify to which file you want curl to write all cookies after a completed operation.", + "group": "http", + "aliases": [ + "-c" + ] }, { - "name": "Output Directory", - "description": "Directory to save files in.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--output-dir", - "keyValueSeparator": " ", + "key": "--create-dirs", + "displayName": "Create Dirs", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 22, - "key": "output-dir" + "description": "When used in conjunction with the --output option, curl creates the necessary local directory hierarchy as needed.", + "group": "curl" }, { - "name": "Remote Name", - "description": "Write output to file named as remote file.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-O", - "longFlag": "--remote-name", + "key": "--create-file-mode", + "displayName": "Create File Mode", + "parameterType": "Option", + "dataType": "String", "sortOrder": 23, - "key": "remote-name" + "description": "When curl is used to create files remotely using one of the supported protocols, this option allows the user to set which 'mode' to set on the file at creation time, instead of the default 0644.", + "group": "file" }, { - "name": "Show Headers", - "description": "Show response headers in output.", + "key": "--crlf", + "displayName": "CRLF", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-i", - "longFlag": "--show-headers", "sortOrder": 24, - "key": "show-headers" + "description": "Convert line feeds to carriage return plus line feeds in upload.", + "group": "ftp" }, { - "name": "Help", - "description": "Get help for commands.", + "key": "--crlfile", + "displayName": "CRL File", "parameterType": "Option", "dataType": "String", - "shortFlag": "-h", - "longFlag": "--help", - "keyValueSeparator": " ", "sortOrder": 25, - "key": "help" + "description": "Provide a file using PEM format with a Certificate Revocation List that may specify peer certificates that are to be considered revoked.", + "group": "tls" }, { - "name": "Version", - "description": "Show version number and quit.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-V", - "longFlag": "--version", + "key": "--curves", + "displayName": "Curves", + "parameterType": "Option", + "dataType": "String", "sortOrder": 26, - "key": "version" + "description": "Set specific curves to use during SSL session establishment according to RFC 8422, 5.1.", + "group": "tls" }, { - "name": "URL", - "description": "URL(s) to work with.", + "key": "--data", + "displayName": "Data", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "longFlag": "--url", - "keyValueSeparator": " ", "sortOrder": 27, - "key": "url" + "description": "Sends the specified data in a POST request to the HTTP server, in the same way that a browser does when a user has filled in an HTML form and presses the submit button.", + "group": "http", + "aliases": [ + "-d" + ], + "isRepeatable": true }, { - "name": "Upload File", - "description": "Transfer local FILE to destination.", + "key": "--data-ascii", + "displayName": "Data ASCII", "parameterType": "Option", "dataType": "String", - "shortFlag": "-T", - "longFlag": "--upload-file", - "keyValueSeparator": " ", "sortOrder": 28, - "key": "upload-file" + "description": "This option is just an alias for --data.", + "group": "http", + "isRepeatable": true }, { - "name": "Abstract Unix Socket", - "description": "Connect via abstract Unix domain socket.", + "key": "--data-binary", + "displayName": "Data Binary", "parameterType": "Option", "dataType": "String", - "longFlag": "--abstract-unix-socket", - "keyValueSeparator": " ", "sortOrder": 29, - "key": "abstract-unix-socket" + "description": "Post data exactly as specified with no extra processing whatsoever.", + "group": "http", + "isRepeatable": true }, { - "name": "Alt-Svc", - "description": "Enable alt-svc with this cache file.", + "key": "--data-raw", + "displayName": "Data Raw", "parameterType": "Option", "dataType": "String", - "longFlag": "--alt-svc", - "keyValueSeparator": " ", "sortOrder": 30, - "key": "alt-svc" + "description": "Post data similarly to --data but without the special interpretation of the @ character.", + "group": "http", + "isRepeatable": true }, { - "name": "Anyauth", - "description": "Pick any authentication method.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--anyauth", + "key": "--data-urlencode", + "displayName": "Data URL Encode", + "parameterType": "Option", + "dataType": "String", "sortOrder": 31, - "key": "anyauth" + "description": "Post data, similar to the other --data options with the exception that this performs URL-encoding.", + "group": "http", + "isRepeatable": true }, { - "name": "Append", - "description": "Append to target file when uploading.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-a", - "longFlag": "--append", + "key": "--delegation", + "displayName": "Delegation", + "parameterType": "Option", + "dataType": "String", "sortOrder": 32, - "key": "append" + "description": "Set LEVEL what curl is allowed to delegate when it comes to user credentials.", + "group": "auth" }, { - "name": "AWS SigV4", - "description": "AWS V4 signature auth.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--aws-sigv4", - "keyValueSeparator": " ", + "key": "--digest", + "displayName": "Digest", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 33, - "key": "aws-sigv4" + "description": "Enables HTTP Digest authentication.", + "group": "auth" }, { - "name": "Basic", - "description": "HTTP Basic Authentication.", + "key": "--disable", + "displayName": "Disable", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--basic", "sortOrder": 34, - "key": "basic" + "description": "If used as the first parameter on the command line, the curlrc config file is not read or used.", + "group": "curl", + "aliases": [ + "-q" + ] }, { - "name": "CA Native", - "description": "Load CA certs from the OS.", + "key": "--disable-eprt", + "displayName": "Disable EPRT", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ca-native", "sortOrder": 35, - "key": "ca-native" + "description": "Disable the use of the EPRT and LPRT commands when doing active FTP transfers.", + "group": "ftp" }, { - "name": "Cacert", - "description": "CA certificate to verify peer against.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--cacert", - "keyValueSeparator": " ", + "key": "--disable-epsv", + "displayName": "Disable EPSV", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 36, - "key": "cacert" + "description": "Disable the use of the EPSV command when doing passive FTP transfers.", + "group": "ftp" }, { - "name": "Capath", - "description": "CA directory to verify peer against.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--capath", - "keyValueSeparator": " ", + "key": "--disallow-username-in-url", + "displayName": "Disallow Username In URL", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 37, - "key": "capath" + "description": "Exit with error if passed a URL containing a username.", + "group": "curl" }, { - "name": "Cert", - "description": "Client certificate file and password.", + "key": "--dns-interface", + "displayName": "DNS Interface", "parameterType": "Option", "dataType": "String", - "shortFlag": "-E", - "longFlag": "--cert", - "keyValueSeparator": " ", "sortOrder": 38, - "key": "cert" + "description": "Send outgoing DNS requests through the given interface.", + "group": "dns" }, { - "name": "Cert Status", - "description": "Verify server cert status OCSP-staple.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--cert-status", + "key": "--dns-ipv4-addr", + "displayName": "DNS IPv4 Addr", + "parameterType": "Option", + "dataType": "String", "sortOrder": 39, - "key": "cert-status" + "description": "Bind to a specific IP address when making IPv4 DNS requests, so that the DNS requests originate from this address.", + "group": "dns" }, { - "name": "Cert Type", - "description": "Certificate type (DER/PEM/ENG/PROV/P12).", + "key": "--dns-ipv6-addr", + "displayName": "DNS IPv6 Addr", "parameterType": "Option", "dataType": "String", - "longFlag": "--cert-type", - "keyValueSeparator": " ", "sortOrder": 40, - "key": "cert-type" + "description": "Bind to a specific IP address when making IPv6 DNS requests, so that the DNS requests originate from this address.", + "group": "dns" }, { - "name": "Ciphers", - "description": "TLS 1.2 (1.1, 1.0) ciphers to use.", + "key": "--dns-servers", + "displayName": "DNS Servers", "parameterType": "Option", "dataType": "String", - "longFlag": "--ciphers", - "keyValueSeparator": " ", "sortOrder": 41, - "key": "ciphers" + "description": "Set the list of DNS servers to be used instead of the system default.", + "group": "dns" }, { - "name": "Compressed", - "description": "Request compressed response.", + "key": "--doh-cert-status", + "displayName": "DoH Cert Status", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--compressed", "sortOrder": 42, - "key": "compressed" + "description": "Same as --cert-status but used for DoH (DNS-over-HTTPS).", + "group": "dns" }, { - "name": "Compressed SSH", - "description": "Enable SSH compression.", + "key": "--doh-insecure", + "displayName": "DoH Insecure", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--compressed-ssh", "sortOrder": 43, - "key": "compressed-ssh" + "description": "Same as --insecure but used for DoH (DNS-over-HTTPS).", + "group": "dns" }, { - "name": "Connect To", - "description": "Connect to host2 instead of host1.", + "key": "--doh-url", + "displayName": "DoH URL", "parameterType": "Option", "dataType": "String", - "longFlag": "--connect-to", - "keyValueSeparator": " ", "sortOrder": 44, - "key": "connect-to" + "description": "Specifies which DNS-over-HTTPS (DoH) server to use to resolve hostnames, instead of using the default name resolver mechanism.", + "group": "dns" }, { - "name": "Continue At", - "description": "Resumed transfer offset.", + "key": "--dump-header", + "displayName": "Dump Header", "parameterType": "Option", "dataType": "String", - "shortFlag": "-C", - "longFlag": "--continue-at", - "keyValueSeparator": " ", "sortOrder": 45, - "key": "continue-at" + "description": "Write the received protocol headers to the specified file.", + "group": "ftp", + "aliases": [ + "-D" + ] }, { - "name": "Cookie", - "description": "Send cookies from string/load from file.", + "key": "--egd-file", + "displayName": "EGD File", "parameterType": "Option", "dataType": "String", - "shortFlag": "-b", - "longFlag": "--cookie", - "keyValueSeparator": " ", "sortOrder": 46, - "key": "cookie" + "description": "Deprecated option (added in 7.84.0).", + "group": "tls" }, { - "name": "Cookie Jar", - "description": "Save cookies to after operation.", + "key": "--engine", + "displayName": "Engine", "parameterType": "Option", "dataType": "String", - "shortFlag": "-c", - "longFlag": "--cookie-jar", - "keyValueSeparator": " ", "sortOrder": 47, - "key": "cookie-jar" + "description": "Select the OpenSSL crypto engine to use for cipher operations.", + "group": "tls" }, { - "name": "Create Dirs", - "description": "Create necessary local directory hierarchy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--create-dirs", + "key": "--etag-compare", + "displayName": "ETag Compare", + "parameterType": "Option", + "dataType": "String", "sortOrder": 48, - "key": "create-dirs" + "description": "Make a conditional HTTP request for the specific ETag read from the given file by sending a custom If-None-Match header using the stored ETag.", + "group": "http" }, { - "name": "Create File Mode", - "description": "File mode for created files.", + "key": "--etag-save", + "displayName": "ETag Save", "parameterType": "Option", "dataType": "String", - "longFlag": "--create-file-mode", - "keyValueSeparator": " ", "sortOrder": 49, - "key": "create-file-mode" + "description": "Save an HTTP ETag to the specified file.", + "group": "http" }, { - "name": "CRLF", - "description": "Convert LF to CRLF in upload.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--crlf", + "key": "--expect100-timeout", + "displayName": "Expect100 Timeout", + "parameterType": "Option", + "dataType": "String", "sortOrder": 50, - "key": "crlf" + "description": "Maximum time in seconds that you allow curl to wait for a 100-continue response when curl emits an Expects: 100-continue header in its request.", + "group": "http" }, { - "name": "CRL File", - "description": "Certificate Revocation list.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--crlfile", - "keyValueSeparator": " ", + "key": "--fail", + "displayName": "Fail", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 51, - "key": "crlfile" + "description": "Fail fast with no output at all on server errors.", + "group": "http", + "aliases": [ + "-f" + ] }, { - "name": "Curves", - "description": "(EC) TLS key exchange algorithms to request.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--curves", - "keyValueSeparator": " ", + "key": "--fail-early", + "displayName": "Fail Early", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 52, - "key": "curves" + "description": "Fail and exit on the first detected transfer error.", + "group": "curl" }, { - "name": "Data ASCII", - "description": "HTTP POST ASCII data.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "longFlag": "--data-ascii", - "keyValueSeparator": " ", + "key": "--fail-with-body", + "displayName": "Fail With Body", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 53, - "key": "data-ascii" + "description": "Return an error on server errors where the HTTP response code is 400 or greater).", + "group": "http" }, { - "name": "Data Binary", - "description": "HTTP POST binary data.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "longFlag": "--data-binary", - "keyValueSeparator": " ", + "key": "--false-start", + "displayName": "False Start", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 54, - "key": "data-binary" + "description": "Use false start during the TLS handshake.", + "group": "tls" }, { - "name": "Data Raw", - "description": "HTTP POST data, '@' allowed.", + "key": "--form", + "displayName": "Form", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "longFlag": "--data-raw", - "keyValueSeparator": " ", "sortOrder": 55, - "key": "data-raw" + "description": "For the HTTP protocol family, emulate a filled-in form in which a user has pressed the submit button.", + "group": "http", + "aliases": [ + "-F" + ], + "isRepeatable": true }, { - "name": "Data URL Encode", - "description": "HTTP POST data URL encoded.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "longFlag": "--data-urlencode", - "keyValueSeparator": " ", + "key": "--form-escape", + "displayName": "Form Escape", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 56, - "key": "data-urlencode" + "description": "Pass on names of multipart form fields and files using backslash-escaping instead of percent-encoding.", + "group": "http" }, { - "name": "Delegation", - "description": "GSS-API delegation permission.", + "key": "--form-string", + "displayName": "Form String", "parameterType": "Option", "dataType": "String", - "longFlag": "--delegation", - "keyValueSeparator": " ", "sortOrder": 57, - "key": "delegation" + "description": "Similar to --form except that the value string for the named parameter is used literally.", + "group": "http", + "isRepeatable": true }, { - "name": "Digest", - "description": "HTTP Digest Authentication.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--digest", + "key": "--ftp-account", + "displayName": "FTP Account", + "parameterType": "Option", + "dataType": "String", "sortOrder": 58, - "key": "digest" + "description": "When an FTP server asks for \"account data\" after username and password has been provided, this data is sent off using the ACCT command.", + "group": "auth" }, { - "name": "Disable", - "description": "Disable .curlrc.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-q", - "longFlag": "--disable", + "key": "--ftp-alternative-to-user", + "displayName": "FTP Alternative To User", + "parameterType": "Option", + "dataType": "String", "sortOrder": 59, - "key": "disable" + "description": "If authenticating with the USER and PASS commands fails, send this command.", + "group": "ftp" }, { - "name": "Disable EPRT", - "description": "Inhibit using EPRT or LPRT.", + "key": "--ftp-create-dirs", + "displayName": "FTP Create Dirs", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--disable-eprt", "sortOrder": 60, - "key": "disable-eprt" + "description": "When an FTP or SFTP URL/operation uses a path that does not currently exist on the server, the standard behavior of curl is to fail.", + "group": "curl" }, { - "name": "Disable EPSV", - "description": "Inhibit using EPSV.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--disable-epsv", + "key": "--ftp-method", + "displayName": "FTP Method", + "parameterType": "Option", + "dataType": "String", "sortOrder": 61, - "key": "disable-epsv" + "description": "Control what method curl should use to reach a file on an FTP(S) server.", + "group": "ftp" }, { - "name": "Disallow Username in URL", - "description": "Disallow username in URL.", + "key": "--ftp-pasv", + "displayName": "FTP PASV", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--disallow-username-in-url", "sortOrder": 62, - "key": "disallow-username-in-url" + "description": "Use passive mode for the data connection.", + "group": "ftp" }, { - "name": "DNS Interface", - "description": "Interface to use for DNS requests.", + "key": "--ftp-port", + "displayName": "FTP Port", "parameterType": "Option", "dataType": "String", - "longFlag": "--dns-interface", - "keyValueSeparator": " ", "sortOrder": 63, - "key": "dns-interface" + "description": "Reverses the default initiator/listener roles when connecting with FTP.", + "group": "ftp", + "aliases": [ + "-P" + ] }, { - "name": "DNS IPv4 Address", - "description": "IPv4 address to use for DNS requests.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--dns-ipv4-addr", - "keyValueSeparator": " ", + "key": "--ftp-pret", + "displayName": "FTP Pret", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 64, - "key": "dns-ipv4-addr" + "description": "Send a PRET command before PASV (and EPSV).", + "group": "ftp" }, { - "name": "DNS IPv6 Address", - "description": "IPv6 address to use for DNS requests.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--dns-ipv6-addr", - "keyValueSeparator": " ", + "key": "--ftp-skip-pasv-ip", + "displayName": "FTP Skip PASV IP", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 65, - "key": "dns-ipv6-addr" + "description": "Do not use the IP address the server suggests in its response to curl's PASV command when curl connects the data connection.", + "group": "ftp" }, { - "name": "DNS Servers", - "description": "DNS server addrs to use.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--dns-servers", - "keyValueSeparator": " ", + "key": "--ftp-ssl-ccc", + "displayName": "FTP SSL CCC", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 66, - "key": "dns-servers" + "description": "Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after authenticating.", + "group": "ftp" }, { - "name": "DoH Cert Status", - "description": "Verify DoH server cert status OCSP-staple.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--doh-cert-status", + "key": "--ftp-ssl-ccc-mode", + "displayName": "FTP SSL CCC Mode", + "parameterType": "Option", + "dataType": "String", "sortOrder": 67, - "key": "doh-cert-status" + "description": "Sets the CCC mode.", + "group": "ftp" }, { - "name": "DoH Insecure", - "description": "Allow insecure DoH server connections.", + "key": "--ftp-ssl-control", + "displayName": "FTP SSL Control", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--doh-insecure", "sortOrder": 68, - "key": "doh-insecure" + "description": "Require SSL/TLS for the FTP login, clear for transfer.", + "group": "ftp" }, { - "name": "DoH URL", - "description": "Resolve hostnames over DoH.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--doh-url", - "keyValueSeparator": " ", + "key": "--get", + "displayName": "Get", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 69, - "key": "doh-url" + "description": "When used, this option makes all data specified with --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used.", + "group": "http", + "aliases": [ + "-G" + ] }, { - "name": "Dump CA Embed", - "description": "Write the embedded CA bundle to standard output.", + "key": "--globoff", + "displayName": "Globoff", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--dump-ca-embed", "sortOrder": 70, - "key": "dump-ca-embed" + "description": "Switch off the URL globbing function.", + "group": "curl", + "aliases": [ + "-g" + ] }, { - "name": "Ech", - "description": "Configure ECH.", + "key": "--happy-eyeballs-timeout-ms", + "displayName": "Happy Eyeballs Timeout Ms", "parameterType": "Option", "dataType": "String", - "longFlag": "--ech", - "keyValueSeparator": " ", "sortOrder": 71, - "key": "ech" + "description": "Happy Eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6 addresses for dual-stack hosts, giving IPv6 a head-start of the specified number of milliseconds.", + "group": "connection" }, { - "name": "EGD File", - "description": "EGD socket path for random data.", + "key": "--haproxy-clientip", + "displayName": "Haproxy Clientip", "parameterType": "Option", "dataType": "String", - "longFlag": "--egd-file", - "keyValueSeparator": " ", "sortOrder": 72, - "key": "egd-file" + "description": "Sets a client IP in HAProxy PROXY protocol v1 header at the beginning of the connection.", + "group": "http" }, { - "name": "Engine", - "description": "Crypto engine to use.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--engine", - "keyValueSeparator": " ", + "key": "--haproxy-protocol", + "displayName": "Haproxy Protocol", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 73, - "key": "engine" + "description": "Send a HAProxy PROXY protocol v1 header at the beginning of the connection.", + "group": "http" }, { - "name": "ETag Compare", - "description": "Load ETag from file.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--etag-compare", - "keyValueSeparator": " ", + "key": "--head", + "displayName": "Head", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 74, - "key": "etag-compare" + "description": "Fetch the headers only!", + "group": "file", + "aliases": [ + "-I" + ] }, { - "name": "ETag Save", - "description": "Parse incoming ETag and save to a file.", + "key": "--header", + "displayName": "Header", "parameterType": "Option", "dataType": "String", - "longFlag": "--etag-save", - "keyValueSeparator": " ", "sortOrder": 75, - "key": "etag-save" + "description": "Extra header to include in information sent.", + "group": "http", + "aliases": [ + "-H" + ], + "isRepeatable": true }, { - "name": "Expect100 Timeout", - "description": "How long to wait for 100-continue.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--expect100-timeout", - "keyValueSeparator": " ", + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 76, - "key": "expect100-timeout" + "description": "Usage help.", + "group": "curl", + "aliases": [ + "-h" + ] }, { - "name": "Fail Early", - "description": "Fail on first transfer error.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--fail-early", + "key": "--hostpubmd5", + "displayName": "Hostpubmd5", + "parameterType": "Option", + "dataType": "String", "sortOrder": 77, - "key": "fail-early" + "description": "Pass a string containing 32 hexadecimal digits.", + "group": "scp" }, { - "name": "Fail With Body", - "description": "Fail on HTTP errors but save the body.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--fail-with-body", + "key": "--hostpubsha256", + "displayName": "Hostpubsha256", + "parameterType": "Option", + "dataType": "String", "sortOrder": 78, - "key": "fail-with-body" + "description": "Pass a string containing a Base64-encoded SHA256 hash of the remote host's public key.", + "group": "scp" }, { - "name": "False Start", - "description": "Enable TLS False Start.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--false-start", + "key": "--hsts", + "displayName": "Hsts", + "parameterType": "Option", + "dataType": "String", "sortOrder": 79, - "key": "false-start" + "description": "Enable HSTS for the transfer.", + "group": "http", + "isRepeatable": true }, { - "name": "Follow", - "description": "Follow redirects per spec.", + "key": "--http0.9", + "displayName": "Http0 9", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--follow", "sortOrder": 80, - "key": "follow" + "description": "Accept an HTTP version 0.9 response.", + "group": "http" }, { - "name": "Form Escape", - "description": "Escape form fields using backslash.", + "key": "--http1.0", + "displayName": "HTTP/1 0", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--form-escape", "sortOrder": 81, - "key": "form-escape" + "description": "Use HTTP version 1.0 instead of using its internally preferred HTTP version.", + "group": "http", + "aliases": [ + "-0" + ] }, { - "name": "Form String", - "description": "Specify multipart MIME data.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "longFlag": "--form-string", - "keyValueSeparator": " ", + "key": "--http1.1", + "displayName": "HTTP/1 1", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 82, - "key": "form-string" + "description": "Use HTTP version 1.1.", + "group": "http" }, { - "name": "FTP Account", - "description": "Account data string.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--ftp-account", - "keyValueSeparator": " ", + "key": "--http2", + "displayName": "HTTP/2", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 83, - "key": "ftp-account" + "description": "Use HTTP/2.", + "group": "http" }, { - "name": "FTP Alternative User", - "description": "String to replace USER [name].", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--ftp-alternative-to-user", - "keyValueSeparator": " ", + "key": "--http2-prior-knowledge", + "displayName": "HTTP/2 Prior Knowledge", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 84, - "key": "ftp-alternative-to-user" + "description": "Issue a non-TLS HTTP requests using HTTP/2 directly without HTTP/1.1 Upgrade.", + "group": "http" }, { - "name": "FTP Create Dirs", - "description": "Create the remote dirs if not present.", + "key": "--http3", + "displayName": "HTTP/3", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ftp-create-dirs", "sortOrder": 85, - "key": "ftp-create-dirs" + "description": "Attempt HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails.", + "group": "http" }, { - "name": "FTP Method", - "description": "Control CWD usage.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--ftp-method", - "keyValueSeparator": " ", + "key": "--http3-only", + "displayName": "HTTP/3 Only", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 86, - "key": "ftp-method" + "description": "Instructs curl to use HTTP/3 to the host in the URL, with no fallback to earlier HTTP versions.", + "group": "http" }, { - "name": "FTP Passive", - "description": "Send PASV/EPSV instead of PORT.", + "key": "--ignore-content-length", + "displayName": "Ignore Content Length", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ftp-pasv", "sortOrder": 87, - "key": "ftp-pasv" + "description": "For HTTP, Ignore the Content-Length header.", + "group": "ftp" }, { - "name": "FTP Port", - "description": "Send PORT instead of PASV.", - "parameterType": "Option", - "dataType": "String", - "shortFlag": "-P", - "longFlag": "--ftp-port", - "keyValueSeparator": " ", + "key": "--include", + "displayName": "Include", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 88, - "key": "ftp-port" + "description": "Include response headers in the output.", + "group": "verbose", + "aliases": [ + "-i" + ] }, { - "name": "FTP PRET", - "description": "Send PRET before PASV.", + "key": "--insecure", + "displayName": "Insecure", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ftp-pret", "sortOrder": 89, - "key": "ftp-pret" + "description": "By default, every secure connection curl makes is verified to be secure before the transfer takes place.", + "group": "scp", + "aliases": [ + "-k" + ] }, { - "name": "FTP Skip Passive IP", - "description": "Skip the IP address for PASV.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--ftp-skip-pasv-ip", + "key": "--interface", + "displayName": "Interface", + "parameterType": "Option", + "dataType": "String", "sortOrder": 90, - "key": "ftp-skip-pasv-ip" + "description": "Perform an operation using a specified interface.", + "group": "connection" }, { - "name": "FTP SSL CCC", - "description": "Send CCC after authenticating.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--ftp-ssl-ccc", + "key": "--ipfs-gateway", + "displayName": "Ipfs Gateway", + "parameterType": "Option", + "dataType": "String", "sortOrder": 91, - "key": "ftp-ssl-ccc" + "description": "Specify which gateway to use for IPFS and IPNS URLs." }, { - "name": "FTP SSL CCC Mode", - "description": "Set CCC mode.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--ftp-ssl-ccc-mode", - "keyValueSeparator": " ", + "key": "--ipv4", + "displayName": "IPv4", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 92, - "key": "ftp-ssl-ccc-mode" + "description": "Use IPv4 addresses only when resolving hostnames, and not for example try IPv6.", + "group": "connection", + "aliases": [ + "-4" + ] }, { - "name": "FTP SSL Control", - "description": "Require TLS for login, clear for transfer.", + "key": "--ipv6", + "displayName": "IPv6", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ftp-ssl-control", "sortOrder": 93, - "key": "ftp-ssl-control" + "description": "Use IPv6 addresses only when resolving hostnames, and not for example try IPv4.", + "group": "connection", + "aliases": [ + "-6" + ] }, { - "name": "Globoff", - "description": "Disable URL globbing with {} and [].", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-g", - "longFlag": "--globoff", + "key": "--json", + "displayName": "JSON", + "parameterType": "Option", + "dataType": "String", "sortOrder": 94, - "key": "globoff" + "description": "Sends the specified JSON data in a POST request to the HTTP server.", + "group": "http", + "isRepeatable": true }, { - "name": "Happy Eyeballs Timeout (ms)", - "description": "Time for IPv6 before IPv4.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--happy-eyeballs-timeout-ms", - "keyValueSeparator": " ", + "key": "--junk-session-cookies", + "displayName": "Junk Session Cookies", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 95, - "key": "happy-eyeballs-timeout-ms" + "description": "When curl is told to read cookies from a given file, this option makes it discard all \"session cookies\".", + "group": "http", + "aliases": [ + "-j" + ] }, { - "name": "HAProxy Client IP", - "description": "Set address in HAProxy PROXY.", + "key": "--keepalive-time", + "displayName": "Keepalive Time", "parameterType": "Option", "dataType": "String", - "longFlag": "--haproxy-clientip", - "keyValueSeparator": " ", "sortOrder": 96, - "key": "haproxy-clientip" + "description": "Set the time a connection needs to remain idle before sending keepalive probes and the time between individual keepalive probes.", + "group": "connection" }, { - "name": "HAProxy Protocol", - "description": "Send HAProxy PROXY protocol v1 header.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--haproxy-protocol", + "key": "--key", + "displayName": "Key", + "parameterType": "Option", + "dataType": "String", "sortOrder": 97, - "key": "haproxy-protocol" + "description": "Private key filename.", + "group": "ssh" }, { - "name": "Host Pubkey MD5", - "description": "Acceptable MD5 hash of host public key.", + "key": "--key-type", + "displayName": "Key Type", "parameterType": "Option", "dataType": "String", - "longFlag": "--hostpubmd5", - "keyValueSeparator": " ", "sortOrder": 98, - "key": "hostpubmd5" + "description": "Private key file type.", + "group": "tls" }, { - "name": "Host Pubkey SHA256", - "description": "Acceptable SHA256 hash of host public key.", + "key": "--krb", + "displayName": "Krb", "parameterType": "Option", "dataType": "String", - "longFlag": "--hostpubsha256", - "keyValueSeparator": " ", "sortOrder": 99, - "key": "hostpubsha256" + "description": "Enable Kerberos authentication and use.", + "group": "ftp" }, { - "name": "HSTS", - "description": "Enable HSTS with this cache file.", + "key": "--libcurl", + "displayName": "Libcurl", "parameterType": "Option", "dataType": "String", - "longFlag": "--hsts", - "keyValueSeparator": " ", "sortOrder": 100, - "key": "hsts" + "description": "Append this option to any ordinary curl command line, and you get libcurl-using C source code written to the file that does the equivalent of what your command-line operation does!", + "group": "curl" }, { - "name": "HTTP 0.9", - "description": "Allow HTTP/0.9 responses.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--http0.9", + "key": "--limit-rate", + "displayName": "Limit Rate", + "parameterType": "Option", + "dataType": "String", "sortOrder": 101, - "key": "http09" + "description": "Specify the maximum transfer rate you want curl to use - for both downloads and uploads.", + "group": "connection" }, { - "name": "HTTP 1.0", - "description": "Use HTTP/1.0.", + "key": "--list-only", + "displayName": "List Only", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-0", - "longFlag": "--http1.0", "sortOrder": 102, - "key": "http10" + "description": "When listing an FTP directory, force a name-only view.", + "group": "ftp", + "aliases": [ + "-l" + ] }, { - "name": "HTTP 1.1", - "description": "Use HTTP/1.1.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--http1.1", + "key": "--local-port", + "displayName": "Local Port", + "parameterType": "Option", + "dataType": "String", "sortOrder": 103, - "key": "http11" + "description": "Set a preferred single number or range (FROM-TO) of local port numbers to use for the connection(s).", + "group": "connection" }, { - "name": "HTTP/2", - "description": "Use HTTP/2.", + "key": "--location", + "displayName": "Location", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--http2", "sortOrder": 104, - "key": "http2" + "description": "If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option makes curl redo the request on the new place.", + "group": "http", + "aliases": [ + "-L" + ] }, { - "name": "HTTP/2 Prior Knowledge", - "description": "Use HTTP/2 without HTTP/1.1 Upgrade.", + "key": "--location-trusted", + "displayName": "Location Trusted", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--http2-prior-knowledge", "sortOrder": 105, - "key": "http2-prior-knowledge" + "description": "Like --location, but allows sending the name + password to all hosts that the site may redirect to.", + "group": "auth" }, { - "name": "HTTP/3", - "description": "Use HTTP/3.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--http3", + "key": "--login-options", + "displayName": "Login Options", + "parameterType": "Option", + "dataType": "String", "sortOrder": 106, - "key": "http3" - }, - { - "name": "HTTP/3 Only", - "description": "Use HTTP/3 only.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--http3-only", - "sortOrder": 107, - "key": "http3-only" + "description": "Specify the login options to use during server authentication.", + "group": "auth" }, { - "name": "Ignore Content Length", - "description": "Ignore the size of the remote resource.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--ignore-content-length", - "sortOrder": 108, - "key": "ignore-content-length" - }, - { - "name": "Interface", - "description": "Use network interface.", + "key": "--mail-auth", + "displayName": "Mail Auth", "parameterType": "Option", "dataType": "String", - "longFlag": "--interface", - "keyValueSeparator": " ", - "sortOrder": 109, - "key": "interface" + "sortOrder": 107, + "description": "Specify a single address.", + "group": "smtp" }, { - "name": "IP TOS", - "description": "Set IP Type of Service or Traffic Class.", + "key": "--mail-from", + "displayName": "Mail From", "parameterType": "Option", "dataType": "String", - "longFlag": "--ip-tos", - "keyValueSeparator": " ", - "sortOrder": 110, - "key": "ip-tos" + "sortOrder": 108, + "description": "Specify a single address that the given mail should get sent from.", + "group": "smtp" }, { - "name": "IPFS Gateway", - "description": "Gateway for IPFS.", + "key": "--mail-rcpt", + "displayName": "Mail Rcpt", "parameterType": "Option", "dataType": "String", - "longFlag": "--ipfs-gateway", - "keyValueSeparator": " ", - "sortOrder": 111, - "key": "ipfs-gateway" + "sortOrder": 109, + "description": "Specify a single email address, username or mailing list name.", + "group": "smtp", + "isRepeatable": true }, { - "name": "IPv4", - "description": "Resolve names to IPv4 addresses.", + "key": "--mail-rcpt-allowfails", + "displayName": "Mail Rcpt Allowfails", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-4", - "longFlag": "--ipv4", - "sortOrder": 112, - "key": "ipv4" + "sortOrder": 110, + "description": "When sending data to multiple recipients, by default curl aborts SMTP conversation if at least one of the recipients causes RCPT TO command to return an error.", + "group": "smtp" }, { - "name": "IPv6", - "description": "Resolve names to IPv6 addresses.", + "key": "--manual", + "displayName": "Manual", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-6", - "longFlag": "--ipv6", - "sortOrder": 113, - "key": "ipv6" + "sortOrder": 111, + "description": "Manual.", + "group": "curl", + "aliases": [ + "-M" + ] }, { - "name": "JSON", - "description": "HTTP POST JSON.", + "key": "--max-filesize", + "displayName": "Max Filesize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 112, + "description": "Specify the maximum size (in bytes) of a file to download.", + "group": "connection" + }, + { + "key": "--max-redirs", + "displayName": "Max Redirs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 113, + "description": "Set maximum number of redirections to follow.", + "group": "http" + }, + { + "key": "--max-time", + "displayName": "Max Time", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "longFlag": "--json", - "keyValueSeparator": " ", "sortOrder": 114, - "key": "json" + "description": "Set maximum time in seconds that you allow each transfer to take.", + "group": "connection", + "aliases": [ + "-m" + ] }, { - "name": "Junk Session Cookies", - "description": "Ignore session cookies read from file.", + "key": "--metalink", + "displayName": "Metalink", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-j", - "longFlag": "--junk-session-cookies", "sortOrder": 115, - "key": "junk-session-cookies" + "description": "This option was previously used to specify a Metalink resource.", + "group": "misc" }, { - "name": "Keepalive Count", - "description": "Maximum number of keepalive probes.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--keepalive-cnt", - "keyValueSeparator": " ", + "key": "--negotiate", + "displayName": "Negotiate", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 116, - "key": "keepalive-cnt" + "description": "Enable Negotiate (SPNEGO) authentication.", + "group": "auth" }, { - "name": "Keepalive Time", - "description": "Interval time for keepalive probes.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--keepalive-time", - "keyValueSeparator": " ", + "key": "--netrc", + "displayName": "Netrc", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 117, - "key": "keepalive-time" + "description": "Make curl scan the .netrc file in the user's home directory for login name and password.", + "group": "curl", + "aliases": [ + "-n" + ] }, { - "name": "Key", - "description": "Private key filename.", + "key": "--netrc-file", + "displayName": "Netrc File", "parameterType": "Option", "dataType": "String", - "longFlag": "--key", - "keyValueSeparator": " ", "sortOrder": 118, - "key": "key" + "description": "Set the netrc file to use.", + "group": "curl" }, { - "name": "Key Type", - "description": "Private key file type (DER/PEM/ENG).", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--key-type", - "keyValueSeparator": " ", + "key": "--netrc-optional", + "displayName": "Netrc Optional", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 119, - "key": "key-type" + "description": "Similar to --netrc, but this option makes the .netrc usage optional and not mandatory as the --netrc option does.", + "group": "curl" }, { - "name": "Knownhosts", - "description": "Specify knownhosts path.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--knownhosts", - "keyValueSeparator": " ", + "key": "--next", + "displayName": "Next", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 120, - "key": "knownhosts" + "description": "Use a separate operation for the following URL and associated options.", + "group": "curl", + "aliases": [ + "-:" + ], + "isRepeatable": true }, { - "name": "Krb", - "description": "Enable Kerberos with security .", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--krb", - "keyValueSeparator": " ", + "key": "--no-alpn", + "displayName": "No Alpn", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 121, - "key": "krb" + "description": "Disable the ALPN TLS extension.", + "group": "http" }, { - "name": "Libcurl", - "description": "Generate libcurl code for this command line.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--libcurl", - "keyValueSeparator": " ", + "key": "--no-buffer", + "displayName": "No Buffer", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 122, - "key": "libcurl" + "description": "Disables the buffering of the output stream.", + "group": "curl", + "aliases": [ + "-N" + ] }, { - "name": "Limit Rate", - "description": "Limit transfer speed to RATE.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--limit-rate", - "keyValueSeparator": " ", + "key": "--no-clobber", + "displayName": "No Clobber", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 123, - "key": "limit-rate" + "description": "When used in conjunction with the --output, --remote-header-name, --remote-name, or --remote-name-all options, curl avoids overwriting files that already exist.", + "group": "curl" }, { - "name": "List Only", - "description": "List only mode.", + "key": "--no-keepalive", + "displayName": "No Keepalive", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-l", - "longFlag": "--list-only", "sortOrder": 124, - "key": "list-only" + "description": "Disables the use of keepalive messages on the TCP connection.", + "group": "connection" }, { - "name": "Local Port", - "description": "Use a local port number within RANGE.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--local-port", - "keyValueSeparator": " ", + "key": "--no-npn", + "displayName": "No Npn", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 125, - "key": "local-port" + "description": "curl never uses NPN, this option has no effect (added in 7.86.0).", + "group": "http" }, { - "name": "Location Trusted", - "description": "As --location, but send secrets to other hosts.", + "key": "--no-progress-meter", + "displayName": "No Progress Meter", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--location-trusted", "sortOrder": 126, - "key": "location-trusted" + "description": "Option to switch off the progress meter output without muting or otherwise affecting warning and informational messages like --silent does.", + "group": "verbose" }, { - "name": "Login Options", - "description": "Server login options.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--login-options", - "keyValueSeparator": " ", + "key": "--no-sessionid", + "displayName": "No Sessionid", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 127, - "key": "login-options" + "description": "Disable curl's use of SSL session-ID caching.", + "group": "tls" }, { - "name": "Mail Auth", - "description": "Originator address of the original email.", + "key": "--noproxy", + "displayName": "Noproxy", "parameterType": "Option", "dataType": "String", - "longFlag": "--mail-auth", - "keyValueSeparator": " ", "sortOrder": 128, - "key": "mail-auth" + "description": "Comma-separated list of hosts for which not to use a proxy, if one is specified.", + "group": "proxy" }, { - "name": "Mail From", - "description": "Mail from this address.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--mail-from", - "keyValueSeparator": " ", + "key": "--ntlm", + "displayName": "Ntlm", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 129, - "key": "mail-from" + "description": "Use NTLM authentication.", + "group": "auth" }, { - "name": "Mail Recipients", - "description": "Mail to this address.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "longFlag": "--mail-rcpt", - "keyValueSeparator": " ", + "key": "--ntlm-wb", + "displayName": "Ntlm Wb", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 130, - "key": "mail-rcpt" + "description": "Enables NTLM much in the style --ntlm does, but hand over the authentication to the separate binary \"ntlmauth\" application that is executed when needed.", + "group": "auth" }, { - "name": "Mail RCPT Allow Fails", - "description": "Allow RCPT TO command to fail.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--mail-rcpt-allowfails", + "key": "--oauth2-bearer", + "displayName": "Oauth2 Bearer", + "parameterType": "Option", + "dataType": "String", "sortOrder": 131, - "key": "mail-rcpt-allowfails" + "description": "Specify the Bearer Token for OAUTH 2.0 server authentication.", + "group": "auth" }, { - "name": "Manual", - "description": "Display the full manual.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-M", - "longFlag": "--manual", + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", "sortOrder": 132, - "key": "manual" + "description": "Write output to the given file instead of stdout.", + "group": "curl", + "aliases": [ + "-o" + ], + "isRepeatable": true }, { - "name": "Max File Size", - "description": "Maximum file size to download.", + "key": "--output-dir", + "displayName": "Output Dir", "parameterType": "Option", - "dataType": "Number", - "longFlag": "--max-filesize", - "keyValueSeparator": " ", + "dataType": "String", "sortOrder": 133, - "key": "max-filesize" + "description": "Specify the directory in which files should be stored, when --remote-name or --output are used.", + "group": "curl" }, { - "name": "Max Redirects", - "description": "Maximum number of redirects allowed.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--max-redirs", - "keyValueSeparator": " ", + "key": "--parallel", + "displayName": "Parallel", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 134, - "key": "max-redirs" + "description": "Makes curl perform its transfers in parallel as compared to the regular serial manner.", + "group": "connection", + "aliases": [ + "-Z" + ] }, { - "name": "Metalink", - "description": "Process given URLs as metalink XML file.", + "key": "--parallel-immediate", + "displayName": "Parallel Immediate", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--metalink", "sortOrder": 135, - "key": "metalink" + "description": "When doing parallel transfers, this option instructs curl that it should rather prefer opening up more connections in parallel at once rather than waiting to see if new transfers can be added as multiplexed streams on another connection.", + "group": "connection" }, { - "name": "Mptcp", - "description": "Enable Multipath TCP.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--mptcp", + "key": "--parallel-max", + "displayName": "Parallel Max", + "parameterType": "Option", + "dataType": "String", "sortOrder": 136, - "key": "mptcp" + "description": "When asked to do parallel transfers, using --parallel, this option controls the maximum amount of transfers to do simultaneously.", + "group": "connection" }, { - "name": "Negotiate", - "description": "Use HTTP Negotiate (SPNEGO) authentication.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--negotiate", + "key": "--pass", + "displayName": "Pass", + "parameterType": "Option", + "dataType": "String", "sortOrder": 137, - "key": "negotiate" + "description": "Passphrase for the private key.", + "group": "auth" }, { - "name": "Netrc", - "description": "Must read .netrc for username and password.", + "key": "--path-as-is", + "displayName": "Path As Is", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-n", - "longFlag": "--netrc", "sortOrder": 138, - "key": "netrc" + "description": "Do not handle sequences of /../ or /./ in the given URL path.", + "group": "curl" }, { - "name": "Netrc File", - "description": "Specify FILE for netrc.", + "key": "--pinnedpubkey", + "displayName": "Pinnedpubkey", "parameterType": "Option", "dataType": "String", - "longFlag": "--netrc-file", - "keyValueSeparator": " ", "sortOrder": 139, - "key": "netrc-file" + "description": "Use the specified public key file (or hashes) to verify the peer.", + "group": "tls" }, { - "name": "Netrc Optional", - "description": "Use either .netrc or URL.", + "key": "--post301", + "displayName": "Post301", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--netrc-optional", "sortOrder": 140, - "key": "netrc-optional" + "description": "Respect RFC 7231/6.4.2 and do not convert POST requests into GET requests when following a 301 redirect.", + "group": "http" }, { - "name": "Next", - "description": "Make next URL use separate options.", + "key": "--post302", + "displayName": "Post302", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-:", - "longFlag": "--next", "sortOrder": 141, - "key": "next" + "description": "Respect RFC 7231/6.4.3 and do not convert POST requests into GET requests when following a 302 redirect.", + "group": "http" }, { - "name": "No ALPN", - "description": "Disable the ALPN TLS extension.", + "key": "--post303", + "displayName": "Post303", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--no-alpn", "sortOrder": 142, - "key": "no-alpn" + "description": "Violate RFC 7231/6.4.4 and do not convert POST requests into GET requests when following 303 redirect.", + "group": "http" }, { - "name": "No Buffer", - "description": "Disable buffering of the output stream.", + "key": "--progress-bar", + "displayName": "Progress Bar", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-N", - "longFlag": "--no-buffer", "sortOrder": 143, - "key": "no-buffer" + "description": "Make curl display transfer progress as a simple progress bar instead of the standard, more informational, meter.", + "group": "verbose", + "aliases": [ + "-#" + ] }, { - "name": "No Clobber", - "description": "Do not overwrite files that already exist.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--no-clobber", + "key": "--proto", + "displayName": "Proto", + "parameterType": "Option", + "dataType": "String", "sortOrder": 144, - "key": "no-clobber" + "description": "Limit what protocols to allow for transfers.", + "group": "connection" }, { - "name": "No Keepalive", - "description": "Disable TCP keepalive on the connection.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--no-keepalive", + "key": "--proto-default", + "displayName": "Proto Default", + "parameterType": "Option", + "dataType": "String", "sortOrder": 145, - "key": "no-keepalive" + "description": "Use protocol for any provided URL missing a scheme.", + "group": "connection" }, { - "name": "No NPN", - "description": "Disable the NPN TLS extension.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--no-npn", + "key": "--proto-redir", + "displayName": "Proto Redir", + "parameterType": "Option", + "dataType": "String", "sortOrder": 146, - "key": "no-npn" + "description": "Limit what protocols to allow on redirects.", + "group": "connection" }, { - "name": "No Progress Meter", - "description": "Do not show the progress meter.", + "key": "--proxy-anyauth", + "displayName": "Proxy Anyauth", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--no-progress-meter", "sortOrder": 147, - "key": "no-progress-meter" + "description": "Automatically pick a suitable authentication method when communicating with the given HTTP proxy.", + "group": "auth" }, { - "name": "No Session ID", - "description": "Disable SSL session-ID reusing.", + "key": "--proxy-basic", + "displayName": "Proxy Basic", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--no-sessionid", "sortOrder": 148, - "key": "no-sessionid" + "description": "Use HTTP Basic authentication when communicating with the given proxy.", + "group": "auth" }, { - "name": "Noproxy", - "description": "List of hosts which do not use proxy.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--noproxy", - "keyValueSeparator": " ", + "key": "--proxy-ca-native", + "displayName": "Proxy CA Native", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 149, - "key": "noproxy" + "description": "Use the CA store from the native operating system to verify the HTTPS proxy.", + "group": "tls" }, { - "name": "NTLM", - "description": "HTTP NTLM authentication.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--ntlm", + "key": "--proxy-cacert", + "displayName": "Proxy CA Cert", + "parameterType": "Option", + "dataType": "String", "sortOrder": 150, - "key": "ntlm" + "description": "Same as --cacert but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "NTLM WB", - "description": "HTTP NTLM authentication with winbind.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--ntlm-wb", + "key": "--proxy-capath", + "displayName": "Proxy CA Path", + "parameterType": "Option", + "dataType": "String", "sortOrder": 151, - "key": "ntlm-wb" + "description": "Same as --capath but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "OAuth2 Bearer", - "description": "OAuth 2 Bearer Token.", + "key": "--proxy-cert", + "displayName": "Proxy Cert", "parameterType": "Option", "dataType": "String", - "longFlag": "--oauth2-bearer", - "keyValueSeparator": " ", "sortOrder": 152, - "key": "oauth2-bearer" + "description": "Same as --cert but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Output Null", - "description": "Discard response data into the void.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--out-null", + "key": "--proxy-cert-type", + "displayName": "Proxy Cert Type", + "parameterType": "Option", + "dataType": "String", "sortOrder": 153, - "key": "out-null" + "description": "Same as --cert-type but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Parallel", - "description": "Perform transfers in parallel.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-Z", - "longFlag": "--parallel", + "key": "--proxy-ciphers", + "displayName": "Proxy Ciphers", + "parameterType": "Option", + "dataType": "String", "sortOrder": 154, - "key": "parallel" + "description": "Same as --ciphers but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Parallel Immediate", - "description": "Do not wait for multiplexing.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--parallel-immediate", + "key": "--proxy-crlfile", + "displayName": "Proxy CRL File", + "parameterType": "Option", + "dataType": "String", "sortOrder": 155, - "key": "parallel-immediate" + "description": "Same as --crlfile but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Parallel Max", - "description": "Maximum concurrency for parallel transfers.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--parallel-max", - "keyValueSeparator": " ", + "key": "--proxy-digest", + "displayName": "Proxy Digest", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 156, - "key": "parallel-max" + "description": "Use HTTP Digest authentication when communicating with the given proxy.", + "group": "proxy" }, { - "name": "Parallel Max Host", - "description": "Maximum connections to a single host.", + "key": "--proxy-header", + "displayName": "Proxy Header", "parameterType": "Option", - "dataType": "Number", - "longFlag": "--parallel-max-host", - "keyValueSeparator": " ", + "dataType": "String", "sortOrder": 157, - "key": "parallel-max-host" + "description": "Extra header to include in the request when sending HTTP to a proxy.", + "group": "proxy", + "isRepeatable": true }, { - "name": "Pass", - "description": "Passphrase for the private key.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--pass", - "keyValueSeparator": " ", + "key": "--proxy-http2", + "displayName": "Proxy HTTP/2", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 158, - "key": "pass" + "description": "Negotiate HTTP/2 with an HTTPS proxy.", + "group": "http" }, { - "name": "Path As Is", - "description": "Do not squash .. sequences in URL path.", + "key": "--proxy-insecure", + "displayName": "Proxy Insecure", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--path-as-is", "sortOrder": 159, - "key": "path-as-is" + "description": "Same as --insecure but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Pinnedpubkey", - "description": "Public key to verify peer against.", + "key": "--proxy-key", + "displayName": "Proxy Key", "parameterType": "Option", "dataType": "String", - "longFlag": "--pinnedpubkey", - "keyValueSeparator": " ", "sortOrder": 160, - "key": "pinnedpubkey" + "description": "Same as --key but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Post 301", - "description": "Do not switch to GET after a 301 redirect.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--post301", + "key": "--proxy-key-type", + "displayName": "Proxy Key Type", + "parameterType": "Option", + "dataType": "String", "sortOrder": 161, - "key": "post301" + "description": "Same as --key-type but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Post 302", - "description": "Do not switch to GET after a 302 redirect.", + "key": "--proxy-negotiate", + "displayName": "Proxy Negotiate", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--post302", "sortOrder": 162, - "key": "post302" + "description": "Use HTTP Negotiate (SPNEGO) authentication when communicating with the given proxy.", + "group": "auth" }, { - "name": "Post 303", - "description": "Do not switch to GET after a 303 redirect.", + "key": "--proxy-ntlm", + "displayName": "Proxy Ntlm", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--post303", "sortOrder": 163, - "key": "post303" + "description": "Use HTTP NTLM authentication when communicating with the given proxy.", + "group": "auth" }, { - "name": "Preproxy", - "description": "Use this proxy first.", + "key": "--proxy-pass", + "displayName": "Proxy Pass", "parameterType": "Option", "dataType": "String", - "longFlag": "--preproxy", - "keyValueSeparator": " ", "sortOrder": 164, - "key": "preproxy" + "description": "Same as --pass but used in HTTPS proxy context.", + "group": "auth" }, { - "name": "Progress Bar", - "description": "Display transfer progress as a bar.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-#", - "longFlag": "--progress-bar", + "key": "--proxy-pinnedpubkey", + "displayName": "Proxy Pinnedpubkey", + "parameterType": "Option", + "dataType": "String", "sortOrder": 165, - "key": "progress-bar" + "description": "Use the specified public key file (or hashes) to verify the proxy.", + "group": "proxy" }, { - "name": "Proto", - "description": "Enable/disable PROTOCOLS.", + "key": "--proxy-service-name", + "displayName": "Proxy Service Name", "parameterType": "Option", "dataType": "String", - "longFlag": "--proto", - "keyValueSeparator": " ", "sortOrder": 166, - "key": "proto" + "description": "Set the service name for proxy negotiation.", + "group": "proxy" }, { - "name": "Proto Default", - "description": "Use PROTOCOL for any URL missing a scheme.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proto-default", - "keyValueSeparator": " ", + "key": "--proxy-ssl-allow-beast", + "displayName": "Proxy SSL Allow Beast", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 167, - "key": "proto-default" + "description": "Same as --ssl-allow-beast but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Proto Redirect", - "description": "Enable/disable PROTOCOLS on redirect.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proto-redir", - "keyValueSeparator": " ", + "key": "--proxy-ssl-auto-client-cert", + "displayName": "Proxy SSL Auto Client Cert", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 168, - "key": "proto-redir" + "description": "Same as --ssl-auto-client-cert but used in HTTPS proxy context.", + "group": "proxy" }, { - "name": "Proxy anyauth", - "description": "Pick any proxy authentication method.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-anyauth", + "key": "--proxy-tls13-ciphers", + "displayName": "Proxy Tls13 Ciphers", + "parameterType": "Option", + "dataType": "String", "sortOrder": 169, - "key": "proxy-anyauth" + "description": "Specify which cipher suites to use in the connection to your HTTPS proxy when it negotiates TLS 1.3.", + "group": "proxy" }, { - "name": "Proxy basic", - "description": "Use Basic authentication on the proxy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-basic", + "key": "--proxy-tlsauthtype", + "displayName": "Proxy Tlsauthtype", + "parameterType": "Option", + "dataType": "String", "sortOrder": 170, - "key": "proxy-basic" + "description": "Same as --tlsauthtype but used in HTTPS proxy context.", + "group": "auth" }, { - "name": "Proxy CA Native", - "description": "Load CA certs from the OS to verify proxy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-ca-native", + "key": "--proxy-tlspassword", + "displayName": "Proxy Tlspassword", + "parameterType": "Option", + "dataType": "String", "sortOrder": 171, - "key": "proxy-ca-native" + "description": "Same as --tlspassword but used in HTTPS proxy context.", + "group": "auth" }, { - "name": "Proxy CA Cert", - "description": "CA certificates to verify proxy against.", + "key": "--proxy-tlsuser", + "displayName": "Proxy Tlsuser", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy-cacert", - "keyValueSeparator": " ", "sortOrder": 172, - "key": "proxy-cacert" + "description": "Same as --tlsuser but used in HTTPS proxy context.", + "group": "auth" }, { - "name": "Proxy CA Path", - "description": "CA directory to verify proxy against.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-capath", - "keyValueSeparator": " ", + "key": "--proxy-tlsv1", + "displayName": "Proxy TLSv1", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 173, - "key": "proxy-capath" + "description": "Same as --tlsv1 but used in HTTPS proxy context.", + "group": "auth" }, { - "name": "Proxy cert", - "description": "Set client certificate for proxy.", + "key": "--proxy-user", + "displayName": "Proxy User", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy-cert", - "keyValueSeparator": " ", "sortOrder": 174, - "key": "proxy-cert" + "description": "Specify the username and password to use for proxy authentication.", + "group": "auth", + "aliases": [ + "-U" + ] }, { - "name": "Proxy Cert Type", - "description": "Client certificate type for HTTPS proxy.", + "key": "--proxy1.0", + "displayName": "Proxy1 0", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy-cert-type", - "keyValueSeparator": " ", "sortOrder": 175, - "key": "proxy-cert-type" + "description": "Use the specified HTTP 1.0 proxy.", + "group": "proxy" }, { - "name": "Proxy Ciphers", - "description": "TLS 1.2 (1.1, 1.0) ciphers to use for proxy.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-ciphers", - "keyValueSeparator": " ", + "key": "--proxytunnel", + "displayName": "Proxytunnel", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 176, - "key": "proxy-ciphers" + "description": "When an HTTP proxy is used --proxy, this option makes curl tunnel the traffic through the proxy.", + "group": "proxy", + "aliases": [ + "-p" + ] }, { - "name": "Proxy CRL File", - "description": "Set a CRL list for proxy.", + "key": "--pubkey", + "displayName": "Pubkey", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy-crlfile", - "keyValueSeparator": " ", "sortOrder": 177, - "key": "proxy-crlfile" + "description": "Public key filename.", + "group": "auth" }, { - "name": "Proxy digest", - "description": "Digest auth with the proxy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-digest", + "key": "--quote", + "displayName": "Quote", + "parameterType": "Option", + "dataType": "String", "sortOrder": 178, - "key": "proxy-digest" + "description": "Send an arbitrary command to the remote FTP or SFTP server.", + "group": "ftp", + "aliases": [ + "-Q" + ], + "isRepeatable": true }, { - "name": "Proxy Header", - "description": "Pass custom header(s) to proxy.", + "key": "--random-file", + "displayName": "Random File", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "longFlag": "--proxy-header", - "keyValueSeparator": " ", "sortOrder": 179, - "key": "proxy-header" + "description": "Deprecated option.", + "group": "misc" }, { - "name": "Proxy HTTP/2", - "description": "Use HTTP/2 with HTTPS proxy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-http2", + "key": "--range", + "displayName": "Range", + "parameterType": "Option", + "dataType": "String", "sortOrder": 180, - "key": "proxy-http2" + "description": "Retrieve a byte range (i.e.", + "group": "file", + "aliases": [ + "-r" + ] }, { - "name": "Proxy insecure", - "description": "Skip HTTPS proxy cert verification.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-insecure", + "key": "--rate", + "displayName": "Rate", + "parameterType": "Option", + "dataType": "String", "sortOrder": 181, - "key": "proxy-insecure" + "description": "Specify the maximum transfer frequency you allow curl to use - in number of transfer starts per time unit (sometimes called request rate).", + "group": "connection" }, { - "name": "Proxy key", - "description": "Private key for HTTPS proxy.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-key", - "keyValueSeparator": " ", + "key": "--raw", + "displayName": "Raw", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 182, - "key": "proxy-key" + "description": "When used, it disables all internal HTTP decoding of content or transfer encodings and instead makes them passed on unaltered, raw.", + "group": "http" }, { - "name": "Proxy Key Type", - "description": "Private key file type for proxy.", + "key": "--referer", + "displayName": "Referer", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy-key-type", - "keyValueSeparator": " ", "sortOrder": 183, - "key": "proxy-key-type" + "description": "Set the referrer URL in the HTTP request.", + "group": "http", + "aliases": [ + "-e" + ] }, { - "name": "Proxy Negotiate", - "description": "HTTP Negotiate (SPNEGO) auth with the proxy.", + "key": "--remote-header-name", + "displayName": "Remote Header Name", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--proxy-negotiate", "sortOrder": 184, - "key": "proxy-negotiate" + "description": "Tell the --remote-name option to use the server-specified Content-Disposition filename instead of extracting a filename from the URL.", + "group": "output", + "aliases": [ + "-J" + ] }, { - "name": "Proxy NTLM", - "description": "NTLM authentication with the proxy.", + "key": "--remote-name", + "displayName": "Remote Name", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--proxy-ntlm", "sortOrder": 185, - "key": "proxy-ntlm" + "description": "Write output to a local file named like the remote file we get.", + "group": "output", + "aliases": [ + "-O" + ], + "isRepeatable": true }, { - "name": "Proxy Password", - "description": "Passphrase for private key for HTTPS proxy.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-pass", - "keyValueSeparator": " ", + "key": "--remote-name-all", + "displayName": "Remote Name All", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 186, - "key": "proxy-pass" + "description": "Change the default action for all given URLs to be dealt with as if --remote-name were used for each one.", + "group": "output" }, { - "name": "Proxy Pinned Public Key", - "description": "FILE/HASHES public key to verify proxy with.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-pinnedpubkey", - "keyValueSeparator": " ", + "key": "--remote-time", + "displayName": "Remote Time", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 187, - "key": "proxy-pinnedpubkey" + "description": "Makes curl attempt to figure out the timestamp of the remote file that is getting downloaded, and if that is available make the local file get that same timestamp.", + "group": "output", + "aliases": [ + "-R" + ] }, { - "name": "Proxy Service Name", - "description": "SPNEGO proxy service name.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-service-name", - "keyValueSeparator": " ", + "key": "--remove-on-error", + "displayName": "Remove On Error", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 188, - "key": "proxy-service-name" + "description": "Remove output file if an error occurs.", + "group": "curl" }, { - "name": "Proxy SSL Allow BEAST", - "description": "Allow this security flaw for HTTPS proxy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-ssl-allow-beast", + "key": "--request", + "displayName": "Request", + "parameterType": "Option", + "dataType": "String", "sortOrder": 189, - "key": "proxy-ssl-allow-beast" + "description": "Change the method to use when starting the transfer.", + "group": "connection", + "aliases": [ + "-X" + ] }, { - "name": "Proxy SSL Auto Client Cert", - "description": "Auto client certificate for proxy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-ssl-auto-client-cert", + "key": "--request-target", + "displayName": "Request Target", + "parameterType": "Option", + "dataType": "String", "sortOrder": 190, - "key": "proxy-ssl-auto-client-cert" + "description": "Use an alternative target (path) instead of using the path as provided in the URL.", + "group": "http" }, { - "name": "Proxy TLS 1.3 Ciphers", - "description": "TLS 1.3 proxy cipher suites.", + "key": "--resolve", + "displayName": "Resolve", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy-tls13-ciphers", - "keyValueSeparator": " ", "sortOrder": 191, - "key": "proxy-tls13-ciphers" + "description": "Provide a custom address for a specific host and port pair.", + "group": "connection", + "isRepeatable": true }, { - "name": "Proxy TLS Auth Type", - "description": "TLS authentication type for HTTPS proxy.", + "key": "--retry", + "displayName": "Retry", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy-tlsauthtype", - "keyValueSeparator": " ", "sortOrder": 192, - "key": "proxy-tlsauthtype" + "description": "If a transient error is returned when curl tries to perform a transfer, it retries this number of times before giving up.", + "group": "curl" }, { - "name": "Proxy TLS Password", - "description": "TLS password for HTTPS proxy.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-tlspassword", - "keyValueSeparator": " ", + "key": "--retry-all-errors", + "displayName": "Retry All Errors", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 193, - "key": "proxy-tlspassword" + "description": "Retry on any error.", + "group": "curl" }, { - "name": "Proxy TLS User", - "description": "TLS username for HTTPS proxy.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--proxy-tlsuser", - "keyValueSeparator": " ", + "key": "--retry-connrefused", + "displayName": "Retry Connrefused", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 194, - "key": "proxy-tlsuser" + "description": "In addition to the other conditions, consider ECONNREFUSED as a transient error too for --retry.", + "group": "curl" }, { - "name": "Proxy TLS v1", - "description": "TLSv1 for HTTPS proxy.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--proxy-tlsv1", + "key": "--retry-delay", + "displayName": "Retry Delay", + "parameterType": "Option", + "dataType": "String", "sortOrder": 195, - "key": "proxy-tlsv1" + "description": "Make curl sleep this amount of time before each retry when a transfer has failed with a transient error (it changes the default backoff time algorithm between retries).", + "group": "curl" }, { - "name": "Proxy User", - "description": "Proxy user and password.", + "key": "--retry-max-time", + "displayName": "Retry Max Time", "parameterType": "Option", "dataType": "String", - "shortFlag": "-U", - "longFlag": "--proxy-user", - "keyValueSeparator": " ", "sortOrder": 196, - "key": "proxy-user" + "description": "The retry timer is reset before the first transfer attempt.", + "group": "curl" }, { - "name": "Proxy 1.0", - "description": "Use HTTP/1.0 proxy on given port.", + "key": "--sasl-authzid", + "displayName": "Sasl Authzid", "parameterType": "Option", "dataType": "String", - "longFlag": "--proxy1.0", - "keyValueSeparator": " ", "sortOrder": 197, - "key": "proxy10" + "description": "Use this authorization identity (authzid), during SASL PLAIN authentication, in addition to the authentication identity (authcid) as specified by --user.", + "group": "auth" }, { - "name": "Proxytunnel", - "description": "HTTP proxy tunnel (using CONNECT).", + "key": "--sasl-ir", + "displayName": "Sasl Ir", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-p", - "longFlag": "--proxytunnel", "sortOrder": 198, - "key": "proxytunnel" + "description": "Enable initial response in SASL authentication.", + "group": "auth" }, { - "name": "Pubkey", - "description": "SSH Public key filename.", + "key": "--service-name", + "displayName": "Service Name", "parameterType": "Option", "dataType": "String", - "longFlag": "--pubkey", - "keyValueSeparator": " ", "sortOrder": 199, - "key": "pubkey" + "description": "Set the service name for SPNEGO.", + "group": "misc" }, { - "name": "Quote", - "description": "Send command(s) to server before transfer.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "shortFlag": "-Q", - "longFlag": "--quote", - "keyValueSeparator": " ", + "key": "--show-error", + "displayName": "Show Error", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 200, - "key": "quote" + "description": "When used with --silent, it makes curl show an error message if it fails.", + "group": "curl", + "aliases": [ + "-S" + ] }, { - "name": "Random File", - "description": "File for reading random data from.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--random-file", - "keyValueSeparator": " ", + "key": "--silent", + "displayName": "Silent", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 201, - "key": "random-file" + "description": "Silent or quiet mode.", + "group": "verbose", + "aliases": [ + "-s" + ] }, { - "name": "Range", - "description": "Retrieve only the bytes within RANGE.", + "key": "--socks4", + "displayName": "Socks4", "parameterType": "Option", "dataType": "String", - "shortFlag": "-r", - "longFlag": "--range", - "keyValueSeparator": " ", "sortOrder": 202, - "key": "range" + "description": "Use the specified SOCKS4 proxy.", + "group": "proxy" }, { - "name": "Rate", - "description": "Request rate for serial transfers.", + "key": "--socks4a", + "displayName": "Socks4a", "parameterType": "Option", "dataType": "String", - "longFlag": "--rate", - "keyValueSeparator": " ", "sortOrder": 203, - "key": "rate" + "description": "Use the specified SOCKS4a proxy.", + "group": "proxy" }, { - "name": "Raw", - "description": "Do HTTP raw; no transfer decoding.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--raw", + "key": "--socks5", + "displayName": "Socks5", + "parameterType": "Option", + "dataType": "String", "sortOrder": 204, - "key": "raw" + "description": "Use the specified SOCKS5 proxy - but resolve the hostname locally.", + "group": "proxy" }, { - "name": "Referer", - "description": "Referrer URL.", - "parameterType": "Option", - "dataType": "String", - "shortFlag": "-e", - "longFlag": "--referer", - "keyValueSeparator": " ", + "key": "--socks5-basic", + "displayName": "Socks5 Basic", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 205, - "key": "referer" + "description": "Use username/password authentication when connecting to a SOCKS5 proxy.", + "group": "auth" }, { - "name": "Remote Header Name", - "description": "Use the header-provided filename.", + "key": "--socks5-gssapi", + "displayName": "Socks5 Gssapi", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-J", - "longFlag": "--remote-header-name", "sortOrder": 206, - "key": "remote-header-name" + "description": "Use GSS-API authentication when connecting to a SOCKS5 proxy.", + "group": "auth" }, { - "name": "Remote Name All", - "description": "Use the remote filename for all URLs.", + "key": "--socks5-gssapi-nec", + "displayName": "Socks5 Gssapi Nec", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--remote-name-all", "sortOrder": 207, - "key": "remote-name-all" + "description": "As part of the GSS-API negotiation a protection mode is negotiated.", + "group": "auth" }, { - "name": "Remote Time", - "description": "Set remote file's time on local output.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-R", - "longFlag": "--remote-time", + "key": "--socks5-gssapi-service", + "displayName": "Socks5 Gssapi Service", + "parameterType": "Option", + "dataType": "String", "sortOrder": 208, - "key": "remote-time" + "description": "Set the service name for a socks server.", + "group": "auth" }, { - "name": "Remove On Error", - "description": "Remove output file on errors.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--remove-on-error", + "key": "--socks5-hostname", + "displayName": "Socks5 Hostname", + "parameterType": "Option", + "dataType": "String", "sortOrder": 209, - "key": "remove-on-error" + "description": "Use the specified SOCKS5 proxy (and let the proxy resolve the hostname).", + "group": "proxy" }, { - "name": "Request Target", - "description": "Specify the target for this request.", + "key": "--speed-limit", + "displayName": "Speed Limit", "parameterType": "Option", "dataType": "String", - "longFlag": "--request-target", - "keyValueSeparator": " ", "sortOrder": 210, - "key": "request-target" + "description": "If a transfer is slower than this set speed (in bytes per second) for a given number of seconds, it gets aborted.", + "group": "connection", + "aliases": [ + "-Y" + ] }, { - "name": "Resolve", - "description": "Resolve host+port to address.", + "key": "--speed-time", + "displayName": "Speed Time", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "longFlag": "--resolve", - "keyValueSeparator": " ", "sortOrder": 211, - "key": "resolve" + "description": "If a transfer runs slower than speed-limit bytes per second during a speed-time period, the transfer is aborted.", + "group": "connection", + "aliases": [ + "-y" + ] }, { - "name": "Retry All Errors", - "description": "Retry all errors (with --retry).", + "key": "--ssl", + "displayName": "SSL", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--retry-all-errors", "sortOrder": 212, - "key": "retry-all-errors", - "dependencies": [ - { - "key": "dep-retry-all-errors-retry", - "parameterKey": "retry-all-errors", - "dependsOnParameterKey": "retry", - "dependencyType": "requires" - } - ] + "description": "Warning: this is considered an insecure option.", + "group": "tls" }, { - "name": "Retry Connection Refused", - "description": "Retry on connection refused (with --retry).", + "key": "--ssl-allow-beast", + "displayName": "SSL Allow Beast", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--retry-connrefused", "sortOrder": 213, - "key": "retry-connrefused", - "dependencies": [ - { - "key": "dep-retry-connrefused-retry", - "parameterKey": "retry-connrefused", - "dependsOnParameterKey": "retry", - "dependencyType": "requires" - } - ] + "description": "Do not work around a security flaw in the SSL3 and TLS1.0 protocols known as BEAST.", + "group": "tls" }, { - "name": "Retry Delay", - "description": "Wait time between retries.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--retry-delay", - "keyValueSeparator": " ", + "key": "--ssl-auto-client-cert", + "displayName": "SSL Auto Client Cert", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 214, - "key": "retry-delay", - "dependencies": [ - { - "key": "dep-retry-delay-retry", - "parameterKey": "retry-delay", - "dependsOnParameterKey": "retry", - "dependencyType": "requires" - } - ] + "description": "(Schannel) Automatically locate and use a client certificate for authentication, when requested by the server.", + "group": "tls" }, { - "name": "Retry Max Time", - "description": "Retry only within this period.", - "parameterType": "Option", - "dataType": "Number", - "longFlag": "--retry-max-time", - "keyValueSeparator": " ", + "key": "--ssl-no-revoke", + "displayName": "SSL No Revoke", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 215, - "key": "retry-max-time", - "dependencies": [ - { - "key": "dep-retry-max-time-retry", - "parameterKey": "retry-max-time", - "dependsOnParameterKey": "retry", - "dependencyType": "requires" - } - ] + "description": "(Schannel) Disable certificate revocation checks.", + "group": "tls" }, { - "name": "SASL Auth ID", - "description": "Identity for SASL PLAIN authentication.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--sasl-authzid", - "keyValueSeparator": " ", + "key": "--ssl-reqd", + "displayName": "SSL Reqd", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 216, - "key": "sasl-authzid" + "description": "Require SSL/TLS for the connection.", + "group": "tls" }, { - "name": "SASL IR", - "description": "Initial response in SASL authentication.", + "key": "--ssl-revoke-best-effort", + "displayName": "SSL Revoke Best Effort", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--sasl-ir", "sortOrder": 217, - "key": "sasl-ir" + "description": "(Schannel) Ignore certificate revocation checks when they failed due to missing/offline distribution points for the revocation check lists.", + "group": "tls" }, { - "name": "Service Name", - "description": "SPNEGO service name.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--service-name", - "keyValueSeparator": " ", + "key": "--sslv2", + "displayName": "Sslv2", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 218, - "key": "service-name" + "description": "This option previously asked curl to use SSLv2, but is now ignored (added in 7.77.0).", + "group": "tls", + "aliases": [ + "-2" + ] }, { - "name": "Show Error", - "description": "Show error even when -s is used.", + "key": "--sslv3", + "displayName": "SSLv3", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-S", - "longFlag": "--show-error", "sortOrder": 219, - "key": "show-error", - "dependencies": [ - { - "key": "dep-show-error-silent", - "parameterKey": "show-error", - "dependsOnParameterKey": "silent", - "dependencyType": "requires" - } + "description": "This option previously asked curl to use SSLv3, but is now ignored (added in 7.77.0).", + "group": "tls", + "aliases": [ + "-3" ] }, { - "name": "Sigalgs", - "description": "TLS signature algorithms to use.", + "key": "--stderr", + "displayName": "Stderr", "parameterType": "Option", "dataType": "String", - "longFlag": "--sigalgs", - "keyValueSeparator": " ", "sortOrder": 220, - "key": "sigalgs" + "description": "Redirect all writes to stderr to the specified file instead.", + "group": "verbose" }, { - "name": "Skip Existing", - "description": "Skip download if local file already exists.", + "key": "--styled-output", + "displayName": "Styled Output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--skip-existing", "sortOrder": 221, - "key": "skip-existing" + "description": "Enable automatic use of bold font styles when writing HTTP headers to the terminal.", + "group": "verbose" }, { - "name": "SOCKS4", - "description": "SOCKS4 proxy on given host + port.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--socks4", - "keyValueSeparator": " ", + "key": "--suppress-connect-headers", + "displayName": "Suppress Connect Headers", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 222, - "key": "socks4" + "description": "When --proxytunnel is used and a CONNECT request is made do not output proxy CONNECT response headers.", + "group": "proxy" }, { - "name": "SOCKS4a", - "description": "SOCKS4a proxy on given host + port.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--socks4a", - "keyValueSeparator": " ", + "key": "--tcp-fastopen", + "displayName": "TCP Fastopen", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 223, - "key": "socks4a" + "description": "Enable use of TCP Fast Open (RFC 7413).", + "group": "connection" }, { - "name": "SOCKS5", - "description": "SOCKS5 proxy on given host + port.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--socks5", - "keyValueSeparator": " ", + "key": "--tcp-nodelay", + "displayName": "TCP Nodelay", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 224, - "key": "socks5" + "description": "Turn on the TCP_NODELAY option.", + "group": "connection" }, { - "name": "SOCKS5 Basic", - "description": "Username/password auth for SOCKS5 proxies.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--socks5-basic", + "key": "--telnet-option", + "displayName": "Telnet Option", + "parameterType": "Option", + "dataType": "String", "sortOrder": 225, - "key": "socks5-basic" + "description": "Pass options to the telnet protocol.", + "group": "telnet", + "aliases": [ + "-t" + ], + "isRepeatable": true }, { - "name": "SOCKS5 GSSAPI", - "description": "Enable GSS-API auth for SOCKS5 proxies.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--socks5-gssapi", + "key": "--tftp-blksize", + "displayName": "Tftp Blksize", + "parameterType": "Option", + "dataType": "String", "sortOrder": 226, - "key": "socks5-gssapi" + "description": "Set the TFTP BLKSIZE option (must be 512 or larger).", + "group": "tftp" }, { - "name": "SOCKS5 GSSAPI NEC", - "description": "Compatibility with NEC SOCKS5 server.", + "key": "--tftp-no-options", + "displayName": "Tftp No Options", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--socks5-gssapi-nec", "sortOrder": 227, - "key": "socks5-gssapi-nec" + "description": "Do not to send TFTP options requests.", + "group": "tftp" }, { - "name": "SOCKS5 GSSAPI Service", - "description": "SOCKS5 proxy service name for GSS-API.", + "key": "--time-cond", + "displayName": "Time Cond", "parameterType": "Option", "dataType": "String", - "longFlag": "--socks5-gssapi-service", - "keyValueSeparator": " ", "sortOrder": 228, - "key": "socks5-gssapi-service" + "description": "Request a file that has been modified later than the given time and date, or one that has been modified before that time.", + "group": "ftp", + "aliases": [ + "-z" + ] }, { - "name": "SOCKS5 Hostname", - "description": "SOCKS5 proxy, pass hostname to proxy.", + "key": "--tls-max", + "displayName": "TLS Max", "parameterType": "Option", "dataType": "String", - "longFlag": "--socks5-hostname", - "keyValueSeparator": " ", "sortOrder": 229, - "key": "socks5-hostname" + "description": "VERSION defines maximum supported TLS version.", + "group": "tls" }, { - "name": "Speed Limit", - "description": "Stop transfers slower than this.", + "key": "--tls13-ciphers", + "displayName": "Tls13 Ciphers", "parameterType": "Option", "dataType": "String", - "shortFlag": "-Y", - "longFlag": "--speed-limit", - "keyValueSeparator": " ", "sortOrder": 230, - "key": "speed-limit" + "description": "Specifies which cipher suites to use in the connection if it negotiates TLS 1.3.", + "group": "tls" }, { - "name": "Speed Time", - "description": "Trigger 'speed-limit' abort after this time.", + "key": "--tlsauthtype", + "displayName": "Tlsauthtype", "parameterType": "Option", - "dataType": "Number", - "shortFlag": "-y", - "longFlag": "--speed-time", - "keyValueSeparator": " ", + "dataType": "String", "sortOrder": 231, - "key": "speed-time" + "description": "Set TLS authentication type.", + "group": "auth" }, { - "name": "SSL", - "description": "Try enabling TLS.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--ssl", + "key": "--tlspassword", + "displayName": "Tlspassword", + "parameterType": "Option", + "dataType": "String", "sortOrder": 232, - "key": "ssl" + "description": "Set password for use with the TLS authentication method specified with --tlsauthtype.", + "group": "auth" }, { - "name": "SSL Allow BEAST", - "description": "Allow security flaw to improve interop.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--ssl-allow-beast", + "key": "--tlsuser", + "displayName": "Tlsuser", + "parameterType": "Option", + "dataType": "String", "sortOrder": 233, - "key": "ssl-allow-beast" + "description": "Set username for use with the TLS authentication method specified with --tlsauthtype.", + "group": "auth" }, { - "name": "SSL Auto Client Cert", - "description": "Use auto client certificate (Schannel).", + "key": "--tlsv1", + "displayName": "TLSv1", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ssl-auto-client-cert", "sortOrder": 234, - "key": "ssl-auto-client-cert" + "description": "Use at least TLS version 1.x when negotiating with a remote TLS server.", + "group": "tls", + "aliases": [ + "-1" + ] }, { - "name": "SSL No Revoke", - "description": "Disable cert revocation checks (Schannel).", + "key": "--tlsv1.0", + "displayName": "TLSv1 0", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ssl-no-revoke", "sortOrder": 235, - "key": "ssl-no-revoke" + "description": "Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.", + "group": "tls" }, { - "name": "SSL Required", - "description": "Require SSL/TLS.", + "key": "--tlsv1.1", + "displayName": "TLSv1 1", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ssl-reqd", "sortOrder": 236, - "key": "ssl-reqd" + "description": "Forces curl to use TLS version 1.1 or later when connecting to a remote TLS server.", + "group": "tls" }, { - "name": "SSL Revoke Best Effort", - "description": "Ignore missing cert CRL dist points.", + "key": "--tlsv1.2", + "displayName": "TLSv1 2", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--ssl-revoke-best-effort", "sortOrder": 237, - "key": "ssl-revoke-best-effort" + "description": "Forces curl to use TLS version 1.2 or later when connecting to a remote TLS server.", + "group": "tls" }, { - "name": "SSL Sessions", - "description": "Load/save SSL session tickets from/to this file.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--ssl-sessions", - "keyValueSeparator": " ", + "key": "--tlsv1.3", + "displayName": "TLSv1 3", + "parameterType": "Flag", + "dataType": "Boolean", "sortOrder": 238, - "key": "ssl-sessions" + "description": "Forces curl to use TLS version 1.3 or later when connecting to a remote TLS server.", + "group": "tls" }, { - "name": "SSLv2", - "description": "SSLv2.", + "key": "--tr-encoding", + "displayName": "Tr Encoding", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-2", - "longFlag": "--sslv2", "sortOrder": 239, - "key": "sslv2" + "description": "Request a compressed Transfer-Encoding response using one of the algorithms curl supports, and uncompress the data while receiving it.", + "group": "http" }, { - "name": "SSLv3", - "description": "SSLv3.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-3", - "longFlag": "--sslv3", + "key": "--trace", + "displayName": "Trace", + "parameterType": "Option", + "dataType": "String", "sortOrder": 240, - "key": "sslv3" + "description": "Save a full trace dump of all incoming and outgoing data, including descriptive information, in the given output file.", + "group": "verbose" }, { - "name": "Stderr", - "description": "Where to redirect stderr.", + "key": "--trace-ascii", + "displayName": "Trace ASCII", "parameterType": "Option", "dataType": "String", - "longFlag": "--stderr", - "keyValueSeparator": " ", "sortOrder": 241, - "key": "stderr" + "description": "Save a full trace dump of all incoming and outgoing data, including descriptive information, in the given output file.", + "group": "verbose" }, { - "name": "Styled Output", - "description": "Enable styled output for HTTP headers.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--styled-output", + "key": "--trace-config", + "displayName": "Trace Config", + "parameterType": "Option", + "dataType": "String", "sortOrder": 242, - "key": "styled-output" + "description": "Set configuration for trace output.", + "group": "verbose", + "isRepeatable": true }, { - "name": "Suppress Connect Headers", - "description": "Suppress proxy CONNECT response headers.", + "key": "--trace-ids", + "displayName": "Trace IDS", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--suppress-connect-headers", "sortOrder": 243, - "key": "suppress-connect-headers" + "description": "Prepends the transfer and connection identifiers to each trace or verbose line that curl displays.", + "group": "verbose" }, { - "name": "TCP Fast Open", - "description": "Use TCP Fast Open.", + "key": "--trace-time", + "displayName": "Trace Time", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--tcp-fastopen", "sortOrder": 244, - "key": "tcp-fastopen" + "description": "Prepends a time stamp to each trace or verbose line that curl displays.", + "group": "verbose" }, { - "name": "TCP No Delay", - "description": "Set TCP_NODELAY.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--tcp-nodelay", + "key": "--unix-socket", + "displayName": "Unix Socket", + "parameterType": "Option", + "dataType": "String", "sortOrder": 245, - "key": "tcp-nodelay" + "description": "Connect through this Unix domain socket, instead of using the network.", + "group": "connection" }, { - "name": "Telnet Option", - "description": "Set telnet option.", + "key": "--upload-file", + "displayName": "Upload File", "parameterType": "Option", "dataType": "String", - "isRepeatable": true, - "shortFlag": "-t", - "longFlag": "--telnet-option", - "keyValueSeparator": " ", "sortOrder": 246, - "key": "telnet-option" + "description": "Upload the specified local file to the remote URL.", + "group": "upload", + "aliases": [ + "-T" + ], + "isRepeatable": true }, { - "name": "TFTP Block Size", - "description": "Set TFTP BLKSIZE option.", + "key": "--url", + "displayName": "URL", "parameterType": "Option", "dataType": "String", - "longFlag": "--tftp-blksize", - "keyValueSeparator": " ", "sortOrder": 247, - "key": "tftp-blksize" - }, - { - "name": "TFTP No Options", - "description": "Do not send any TFTP options.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--tftp-no-options", - "sortOrder": 248, - "key": "tftp-no-options" - }, - { - "name": "Time Condition", - "description": "Transfer based on a time condition.", - "parameterType": "Option", - "dataType": "String", - "shortFlag": "-z", - "longFlag": "--time-cond", - "keyValueSeparator": " ", - "sortOrder": 249, - "key": "time-cond" - }, - { - "name": "TLS Early Data", - "description": "Allow use of TLSv1.3 early data (0RTT).", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--tls-earlydata", - "sortOrder": 250, - "key": "tls-earlydata" + "description": "Specify a URL to fetch.", + "group": "curl", + "isRepeatable": true }, { - "name": "TLS Max", - "description": "Maximum allowed TLS version.", + "key": "--url-query", + "displayName": "URL Query", "parameterType": "Option", "dataType": "String", - "longFlag": "--tls-max", - "keyValueSeparator": " ", - "sortOrder": 251, - "key": "tls-max" - }, - { - "name": "TLS 1.3 Ciphers", - "description": "TLS 1.3 cipher suites to use.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--tls13-ciphers", - "keyValueSeparator": " ", - "sortOrder": 252, - "key": "tls13-ciphers" - }, - { - "name": "TLS Auth Type", - "description": "TLS authentication type.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--tlsauthtype", - "keyValueSeparator": " ", - "sortOrder": 253, - "key": "tlsauthtype" - }, - { - "name": "TLS Password", - "description": "TLS password.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--tlspassword", - "keyValueSeparator": " ", - "sortOrder": 254, - "key": "tlspassword" - }, - { - "name": "TLS User", - "description": "TLS username.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--tlsuser", - "keyValueSeparator": " ", - "sortOrder": 255, - "key": "tlsuser" - }, - { - "name": "TLS v1", - "description": "TLSv1.0 or greater.", - "parameterType": "Flag", - "dataType": "Boolean", - "shortFlag": "-1", - "longFlag": "--tlsv1", - "sortOrder": 256, - "key": "tlsv1" - }, - { - "name": "TLS v1.0", - "description": "TLSv1.0 or greater.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--tlsv1.0", - "sortOrder": 257, - "key": "tlsv10" - }, - { - "name": "TLS v1.1", - "description": "TLSv1.1 or greater.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--tlsv1.1", - "sortOrder": 258, - "key": "tlsv11" - }, - { - "name": "TLS v1.2", - "description": "TLSv1.2 or greater.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--tlsv1.2", - "sortOrder": 259, - "key": "tlsv12" - }, - { - "name": "TLS v1.3", - "description": "TLSv1.3 or greater.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--tlsv1.3", - "sortOrder": 260, - "key": "tlsv13" + "sortOrder": 248, + "description": "Add a piece of data, usually a name + value pair, to the end of the URL query part.", + "group": "http", + "isRepeatable": true }, { - "name": "Transfer-Encoding", - "description": "Request compressed transfer encoding.", + "key": "--use-ascii", + "displayName": "Use ASCII", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--tr-encoding", - "sortOrder": 261, - "key": "tr-encoding" + "sortOrder": 249, + "description": "Enable ASCII transfer mode.", + "group": "misc", + "aliases": [ + "-B" + ] }, { - "name": "Trace", - "description": "Write a debug trace to FILE.", + "key": "--user", + "displayName": "User", "parameterType": "Option", "dataType": "String", - "longFlag": "--trace", - "keyValueSeparator": " ", - "sortOrder": 262, - "key": "trace" + "sortOrder": 250, + "description": "Specify the username and password to use for server authentication.", + "group": "auth", + "aliases": [ + "-u" + ] }, { - "name": "Trace ASCII", - "description": "Like --trace, but without hex output.", + "key": "--user-agent", + "displayName": "User Agent", "parameterType": "Option", "dataType": "String", - "longFlag": "--trace-ascii", - "keyValueSeparator": " ", - "sortOrder": 263, - "key": "trace-ascii" + "sortOrder": 251, + "description": "Specify the User-Agent string to send to the HTTP server.", + "group": "http", + "aliases": [ + "-A" + ] }, { - "name": "Trace Config", - "description": "Details to log in trace/verbose output.", + "key": "--variable", + "displayName": "Variable", "parameterType": "Option", "dataType": "String", - "longFlag": "--trace-config", - "keyValueSeparator": " ", - "sortOrder": 264, - "key": "trace-config" - }, - { - "name": "Trace IDs", - "description": "Transfer + connection ids in verbose output.", - "parameterType": "Flag", - "dataType": "Boolean", - "longFlag": "--trace-ids", - "sortOrder": 265, - "key": "trace-ids" + "sortOrder": 252, + "description": "Set a variable with \"name=content\" or \"name@file\" (where \"file\" can be stdin if set to a single dash (\"-\")).", + "group": "curl", + "isRepeatable": true }, { - "name": "Trace Time", - "description": "Add time stamps to trace/verbose output.", + "key": "--verbose", + "displayName": "Verbose", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--trace-time", - "sortOrder": 266, - "key": "trace-time" - }, - { - "name": "Unix Socket", - "description": "Connect through this Unix domain socket.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--unix-socket", - "keyValueSeparator": " ", - "sortOrder": 267, - "key": "unix-socket" - }, - { - "name": "Upload Flags", - "description": "IMAP upload behavior.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--upload-flags", - "keyValueSeparator": " ", - "sortOrder": 268, - "key": "upload-flags" - }, - { - "name": "URL Query", - "description": "Add a URL query part.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "longFlag": "--url-query", - "keyValueSeparator": " ", - "sortOrder": 269, - "key": "url-query" + "sortOrder": 253, + "description": "Makes curl verbose during the operation.", + "group": "verbose", + "aliases": [ + "-v" + ] }, { - "name": "Use ASCII", - "description": "Use ASCII/text transfer.", + "key": "--version", + "displayName": "Version", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-B", - "longFlag": "--use-ascii", - "sortOrder": 270, - "key": "use-ascii" - }, - { - "name": "Variable", - "description": "Set variable.", - "parameterType": "Option", - "dataType": "String", - "isRepeatable": true, - "longFlag": "--variable", - "keyValueSeparator": " ", - "sortOrder": 271, - "key": "variable" - }, - { - "name": "VLAN Priority", - "description": "Set VLAN priority.", - "parameterType": "Option", - "dataType": "String", - "longFlag": "--vlan-priority", - "keyValueSeparator": " ", - "sortOrder": 272, - "key": "vlan-priority" + "sortOrder": 254, + "description": "Displays information about curl and the libcurl version it uses.", + "group": "curl", + "aliases": [ + "-V" + ] }, { - "name": "Write Out", - "description": "Output FORMAT after completion.", + "key": "--write-out", + "displayName": "Write Out", "parameterType": "Option", "dataType": "String", - "shortFlag": "-w", - "longFlag": "--write-out", - "keyValueSeparator": " ", - "sortOrder": 273, - "key": "write-out" + "sortOrder": 255, + "description": "Make curl display information on stdout after a completed transfer.", + "group": "verbose", + "aliases": [ + "-w" + ] }, { - "name": "Xattr", - "description": "Store metadata in extended file attributes.", + "key": "--xattr", + "displayName": "Xattr", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "--xattr", - "sortOrder": 274, - "key": "xattr" + "sortOrder": 256, + "description": "When saving output to a file, tell curl to store file metadata in extended file attributes.", + "group": "misc" } - ] + ], + "commands": [] } diff --git a/public/tools-collection/dnsx.json b/public/tools-collection/dnsx.json index 2515a97..ff6caab 100644 --- a/public/tools-collection/dnsx.json +++ b/public/tools-collection/dnsx.json @@ -1,153 +1,141 @@ { - "$schema": "https://commandly.divyeshio.in/specification/flat.json", + "$schema": "https://commandly.divyeshio.in/specification/tool.json", "binaryName": "dnsx", "displayName": "DNSX", "info": { "description": "A fast and multi-purpose DNS toolkit designed for running DNS queries.", - "version": "1.2.3", + "version": "1.3.1", "url": "https://github.com/projectdiscovery/dnsx" }, "commands": [], "parameters": [ { - "name": "List", + "displayName": "List", "description": "List of sub(domains)/hosts to resolve (file or stdin).", "parameterType": "Option", "dataType": "String", - "shortFlag": "-l", - "longFlag": "-list", - "key": "list" + "key": "-list", + "aliases": [ + "-l" + ] }, { - "name": "Domain", + "displayName": "Domain", "description": "List of domain to bruteforce (file or comma separated or stdin).", "parameterType": "Option", "dataType": "String", - "shortFlag": "-d", - "longFlag": "-domain", - "key": "domain" + "key": "-domain", + "aliases": [ + "-d" + ] }, { - "name": "Wordlist", + "displayName": "Wordlist", "description": "List of words to bruteforce (file or comma separated or stdin).", "parameterType": "Option", "dataType": "String", - "shortFlag": "-w", - "longFlag": "-wordlist", - "key": "wordlist" + "key": "-wordlist", + "aliases": [ + "-w" + ] }, { - "name": "A", + "displayName": "A", "description": "Query A record (default).", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-a", - "key": "a" + "key": "-a" }, { - "name": "AAAA", + "displayName": "AAAA", "description": "Query AAAA record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-aaaa", - "key": "aaaa" + "key": "-aaaa" }, { - "name": "CNAME", + "displayName": "CNAME", "description": "Query CNAME record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-cname", - "key": "cname" + "key": "-cname" }, { - "name": "NS", + "displayName": "NS", "description": "Query NS record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-ns", - "key": "ns" + "key": "-ns" }, { - "name": "TXT", + "displayName": "TXT", "description": "Query TXT record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-txt", - "key": "txt" + "key": "-txt" }, { - "name": "SRV", + "displayName": "SRV", "description": "Query SRV record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-srv", - "key": "srv" + "key": "-srv" }, { - "name": "PTR", + "displayName": "PTR", "description": "Query PTR record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-ptr", - "key": "ptr" + "key": "-ptr" }, { - "name": "MX", + "displayName": "MX", "description": "Query MX record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-mx", - "key": "mx" + "key": "-mx" }, { - "name": "SOA", + "displayName": "SOA", "description": "Query SOA record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-soa", - "key": "soa" + "key": "-soa" }, { - "name": "ANY", + "displayName": "ANY", "description": "Query ANY record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-any", - "key": "any" + "key": "-any" }, { - "name": "AXFR", + "displayName": "AXFR", "description": "Query AXFR.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-axfr", - "key": "axfr" + "key": "-axfr" }, { - "name": "CAA", + "displayName": "CAA", "description": "Query CAA record.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-caa", - "key": "caa" + "key": "-caa" }, { - "name": "Recon", + "displayName": "Recon", "description": "Query all the DNS records (A, AAAA, CNAME, NS, TXT, SRV, PTR, MX, SOA, AXFR, CAA).", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-recon", - "key": "recon" + "key": "-recon" }, { - "name": "Exclude Type", + "displayName": "Exclude Type", "description": "DNS query type to exclude (A, AAAA, CNAME, NS, TXT, SRV, PTR, MX, SOA, AXFR, CAA) (default none).", "parameterType": "Option", "dataType": "Enum", - "shortFlag": "-e", - "longFlag": "-exclude-type", - "key": "exclude-type", + "key": "-exclude-type", "enum": { "allowMultiple": true, "values": [ @@ -196,162 +184,326 @@ "displayName": "CAA" } ] - } + }, + "aliases": [ + "-e" + ] }, { - "name": "Response", + "displayName": "Response", "description": "Display DNS response.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-re", - "longFlag": "-resp", - "key": "resp" + "key": "-resp", + "aliases": [ + "-re" + ] }, { - "name": "Response Only", + "displayName": "Response Only", "description": "Display DNS response only.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-ro", - "longFlag": "-resp-only", - "key": "resp-only" + "key": "-resp-only", + "aliases": [ + "-ro" + ] }, { - "name": "Response Code", + "displayName": "Response Code", "description": "Filter result by DNS status code (e.g. -rcode noerror, servfail, refused).", "parameterType": "Option", "dataType": "String", - "shortFlag": "-rc", - "longFlag": "-rcode", - "key": "rcode" + "key": "-rcode", + "aliases": [ + "-rc" + ] }, { - "name": "CDN", + "displayName": "CDN", "description": "Display CDN name.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-cdn", - "key": "cdn" + "key": "-cdn" }, { - "name": "ASN", + "displayName": "ASN", "description": "Display host ASN information.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-asn", - "key": "asn" + "key": "-asn" }, { - "name": "Threads", + "displayName": "Threads", "description": "Number of concurrent threads to use (default 100).", "parameterType": "Option", "dataType": "Number", - "shortFlag": "-t", - "longFlag": "-threads", - "key": "threads" + "key": "-threads", + "aliases": [ + "-t" + ] }, { - "name": "Rate Limit", + "displayName": "Rate Limit", "description": "Number of DNS requests/second to make (disabled by default) (default -1).", "parameterType": "Option", "dataType": "Number", - "shortFlag": "-rl", - "longFlag": "-rate-limit", - "key": "rate-limit" + "key": "-rate-limit", + "aliases": [ + "-rl" + ] }, { - "name": "Update", + "displayName": "Update", "description": "Update dnsx to latest version.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-up", - "longFlag": "-update", - "key": "update" + "key": "-update", + "aliases": [ + "-up" + ] }, { - "name": "Disable Update Check", + "displayName": "Disable Update Check", "description": "Disable automatic dnsx update check.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-duc", - "longFlag": "-disable-update-check", - "key": "disable-update-check" + "key": "-disable-update-check", + "aliases": [ + "-duc" + ] }, { - "name": "Output", + "displayName": "Output", "description": "File to write output.", "parameterType": "Option", "dataType": "String", - "shortFlag": "-o", - "longFlag": "-output", - "key": "output" + "key": "-output", + "aliases": [ + "-o" + ] }, { - "name": "JSON Output", + "displayName": "JSON Output", "description": "Write output in JSONL(ines) format.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-j", - "longFlag": "-json", - "key": "json" + "key": "-json", + "aliases": [ + "-j" + ] }, { - "name": "Omit Raw", + "displayName": "Omit Raw", "description": "Omit raw DNS response from JSONL output.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-or", - "longFlag": "-omit-raw", - "key": "or" + "key": "-omit-raw", + "aliases": [ + "-or" + ] }, { - "name": "Health Check", + "displayName": "Health Check", "description": "Display dnsx health status.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-health-check", - "key": "health-check" + "key": "-health-check", + "aliases": [ + "-hc" + ] }, { - "name": "Verbose", + "displayName": "Verbose", "description": "Show verbose output.", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-v", - "longFlag": "-verbose", - "key": "verbose" + "key": "-verbose", + "aliases": [ + "-v" + ] }, { - "name": "No Color", + "displayName": "No Color", "description": "Disable colors in CLI output.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-no-color", - "key": "no-color" + "key": "-no-color", + "aliases": [ + "-nc" + ] }, { - "name": "Silent", + "displayName": "Silent", "description": "Show only results in CLI output.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-silent", - "key": "silent" + "key": "-silent" }, { - "name": "Version", + "displayName": "Version", "description": "Show version of dnsx.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-version", - "key": "v" + "key": "-version" + }, + { + "displayName": "Output Template", + "description": "Custom output template (e.g. -ot '{{host}} {{a}}').", + "parameterType": "Option", + "dataType": "String", + "key": "-output-template", + "aliases": [ + "-ot" + ] + }, + { + "displayName": "Debug", + "description": "Display raw DNS response.", + "parameterType": "Flag", + "dataType": "Boolean", + "key": "-debug", + "aliases": [ + "-raw" + ] + }, + { + "displayName": "Stats", + "description": "Display stats of the running scan.", + "parameterType": "Flag", + "dataType": "Boolean", + "key": "-stats" + }, + { + "displayName": "Retry", + "description": "Number of DNS attempts to make (must be at least 1) (default 2).", + "parameterType": "Option", + "dataType": "Number", + "key": "-retry" + }, + { + "displayName": "Hosts File", + "description": "Use system host file.", + "parameterType": "Flag", + "dataType": "Boolean", + "key": "-hostsfile", + "aliases": [ + "-hf" + ] }, { - "name": "Show Config", - "description": "Show configuration file location.", + "displayName": "Trace", + "description": "Perform DNS tracing.", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-sc", - "key": "sc" + "key": "-trace" + }, + { + "displayName": "Trace Max Recursion", + "description": "Max recursion for DNS trace (default 32767).", + "parameterType": "Option", + "dataType": "Number", + "key": "-trace-max-recursion" + }, + { + "displayName": "Resume", + "description": "Resume existing scan.", + "parameterType": "Flag", + "dataType": "Boolean", + "key": "-resume" + }, + { + "displayName": "Stream", + "description": "Stream mode (wordlist, wildcard, stats and stop/resume will be disabled).", + "parameterType": "Flag", + "dataType": "Boolean", + "key": "-stream" + }, + { + "displayName": "Timeout", + "description": "Maximum time to wait for a DNS query to complete (default 3s).", + "parameterType": "Option", + "dataType": "String", + "key": "-timeout" + }, + { + "displayName": "Auth", + "description": "Configure ProjectDiscovery Cloud (PDCP) API key.", + "parameterType": "Flag", + "dataType": "Boolean", + "key": "-auth" + }, + { + "displayName": "Resolver", + "description": "List of resolvers to use (file or comma separated).", + "parameterType": "Option", + "dataType": "String", + "key": "-resolver", + "aliases": [ + "-r" + ] + }, + { + "displayName": "Wildcard Threshold", + "description": "Wildcard filter threshold (default 5).", + "parameterType": "Option", + "dataType": "Number", + "key": "-wildcard-threshold", + "aliases": [ + "-wt" + ] + }, + { + "displayName": "Auto Wildcard", + "description": "Automatically detect wildcard domains for filtering.", + "parameterType": "Flag", + "dataType": "Boolean", + "key": "-auto-wildcard" + }, + { + "displayName": "Wildcard Domain", + "description": "Domain name for manual wildcard filtering.", + "parameterType": "Option", + "dataType": "String", + "key": "-wildcard-domain", + "aliases": [ + "-wd" + ] } - ] + ], + "installation": { + "sources": [ + { + "key": "go-install", + "method": "package_manager", + "manager": "go", + "command": "go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest", + "url": "https://docs.projectdiscovery.io/opensource/dnsx/install" + }, + { + "key": "brew", + "method": "package_manager", + "manager": "brew", + "command": "brew install dnsx", + "url": "https://docs.projectdiscovery.io/opensource/dnsx/install", + "os": [ + "linux", + "macos" + ] + }, + { + "key": "docker", + "method": "docker", + "command": "docker pull projectdiscovery/dnsx:latest", + "url": "https://docs.projectdiscovery.io/opensource/dnsx/install" + }, + { + "key": "release-binary", + "method": "binary", + "command": "https://github.com/projectdiscovery/dnsx/releases", + "url": "https://docs.projectdiscovery.io/opensource/dnsx/install", + "note": "Download the latest binary for your OS and unzip it." + } + ] + } } diff --git a/public/tools-collection/dotnet.json b/public/tools-collection/dotnet.json new file mode 100644 index 0000000..661ea3c --- /dev/null +++ b/public/tools-collection/dotnet.json @@ -0,0 +1,8256 @@ +{ + "$schema": "https://commandly.divyeshio.in/specification/tool.json", + "binaryName": "dotnet", + "displayName": "dotnet", + "parameters": [ + { + "key": "path-to-application", + "displayName": "Path To Application", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The path to an application .dll file to execute." + }, + { + "key": "--diagnostics", + "displayName": "Diagnostics", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Enable diagnostic output.", + "aliases": [ + "-d" + ] + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Show command line help.", + "aliases": [ + "-?", + "-h", + "/?", + "/h" + ], + "recursive": true + }, + { + "key": "--info", + "displayName": "Info", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Display .NET information." + }, + { + "key": "--list-runtimes", + "displayName": "List Runtimes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Display the installed runtimes." + }, + { + "key": "--list-sdks", + "displayName": "List Sdks", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Display the installed SDKs." + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Display .NET SDK version in use." + }, + { + "key": "--additionalprobingpath", + "displayName": "Additionalprobingpath", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "Path containing probing policy and assemblies to probe for.", + "group": "Runtime" + }, + { + "key": "--additional-deps", + "displayName": "Additional Deps", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "Path to additional deps.json file.", + "group": "Runtime" + }, + { + "key": "--depsfile", + "displayName": "Depsfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Path to .deps.json file.", + "group": "Runtime" + }, + { + "key": "--fx-version", + "displayName": "Fx Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Version of the installed Shared Framework to use to run the application.", + "group": "Runtime" + }, + { + "key": "--roll-forward", + "displayName": "Roll Forward", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Roll forward to framework version (LatestPatch, Minor, LatestMinor, Major, LatestMajor, Disable).", + "group": "Runtime" + }, + { + "key": "--runtimeconfig", + "displayName": "Runtimeconfig", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "Path to .runtimeconfig.json file.", + "group": "Runtime" + } + ], + "commands": [ + { + "key": "add", + "displayName": "add", + "sortOrder": 0, + "description": ".NET Add Command", + "parameters": [ + { + "key": "PROJECT | FILE", + "displayName": "PROJECT | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project file or C# file-based app to operate on." + } + ], + "commands": [ + { + "key": "add-package", + "displayName": "package", + "sortOrder": 1, + "description": "Add a NuGet package reference to the project.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'Newtonsoft.Json' or package identifier and version separated by '@' like 'Newtonsoft.Json@13.0.3'.", + "isRequired": true + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The file-based app to operate on.", + "recursive": true + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Add the reference only when targeting a specific framework.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Add the reference without performing restore preview and compatibility check.", + "aliases": [ + "-n" + ] + }, + { + "key": "--package-directory", + "displayName": "Package Directory", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The directory to restore packages to." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Allows prerelease packages to be installed." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The project file to operate on.", + "recursive": true + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The NuGet package source to use during the restore.", + "aliases": [ + "-s" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "The version of the package to add.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "add-reference", + "displayName": "reference", + "sortOrder": 2, + "description": "Add a project-to-project reference to the project.", + "parameters": [ + { + "key": "PROJECT_PATH", + "displayName": "PROJECT_PATH", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The paths to the projects to add as references.", + "isRequired": true + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Add the reference only when targeting a specific framework.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The project file to operate on.", + "recursive": true + } + ] + } + ] + }, + { + "key": "build", + "displayName": "build", + "sortOrder": 3, + "description": "Build a .NET project.", + "parameters": [ + { + "key": "PROJECT | SOLUTION | FILE", + "displayName": "PROJECT | SOLUTION | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution or C# (file-based program) file to operate on." + }, + { + "key": "--arch", + "displayName": "Arch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The target architecture.", + "aliases": [ + "-a" + ] + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The artifacts path." + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The configuration to use for building the project.", + "aliases": [ + "-c" + ] + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The target framework to build for.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-dependencies", + "displayName": "No Dependencies", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Do not build project-to-project references and only build the specified project." + }, + { + "key": "--no-incremental", + "displayName": "No Incremental", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Do not use incremental building." + }, + { + "key": "--no-logo", + "displayName": "No Logo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Do not display the startup banner or the copyright message.", + "aliases": [ + "--nologo", + "-nologo", + "/nologo" + ] + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Do not restore the project before building." + }, + { + "key": "--no-self-contained", + "displayName": "No Self Contained", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Publish your application as a framework dependent application." + }, + { + "key": "--os", + "displayName": "OS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "The target operating system." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "The output directory to place built artifacts in.", + "aliases": [ + "-o" + ] + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "The target runtime to build for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--self-contained", + "displayName": "Self Contained", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine.", + "aliases": [ + "--sc" + ] + }, + { + "key": "--use-current-runtime", + "displayName": "Use Current Runtime", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Use current runtime as the target runtime.", + "aliases": [ + "--ucr" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "--v", + "-v", + "-verbosity", + "/v", + "/verbosity" + ] + }, + { + "key": "--version-suffix", + "displayName": "Version Suffix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "Set the value of the $(VersionSuffix) property to use when building the project." + } + ] + }, + { + "key": "build-server", + "displayName": "build-server", + "sortOrder": 4, + "description": "Interact with servers started by a build.", + "commands": [ + { + "key": "build-server-shutdown", + "displayName": "shutdown", + "sortOrder": 5, + "description": "Shuts down build servers that are started from dotnet.", + "parameters": [ + { + "key": "--msbuild", + "displayName": "Msbuild", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Shut down the MSBuild build server." + }, + { + "key": "--razor", + "displayName": "Razor", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Shut down the Razor build server." + }, + { + "key": "--vbcscompiler", + "displayName": "Vbcscompiler", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Shut down the VB/C# compiler build server." + } + ] + } + ] + }, + { + "key": "clean", + "displayName": "clean", + "sortOrder": 6, + "description": "Clean build outputs of a .NET project.", + "parameters": [ + { + "key": "PROJECT | SOLUTION | FILE", + "displayName": "PROJECT | SOLUTION | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution or C# (file-based program) file to operate on." + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The artifacts path." + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The configuration to clean for.", + "aliases": [ + "-c" + ] + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The target framework to clean for.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-logo", + "displayName": "No Logo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Do not display the startup banner or the copyright message.", + "aliases": [ + "--nologo", + "-nologo", + "/nologo" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The directory containing the build artifacts to clean.", + "aliases": [ + "-o" + ] + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The target runtime to clean for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ], + "commands": [ + { + "key": "clean-file-based-apps", + "displayName": "file-based-apps", + "sortOrder": 7, + "description": "Removes artifacts created for file-based apps", + "parameters": [ + { + "key": "--days", + "displayName": "Days", + "parameterType": "Option", + "dataType": "Number", + "sortOrder": 0, + "description": "How many days an artifact folder needs to be unused in order to be removed" + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Determines changes without actually modifying the file system" + } + ] + } + ] + }, + { + "key": "complete", + "displayName": "complete", + "sortOrder": 8, + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--position", + "displayName": "Position", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1 + } + ] + }, + { + "key": "completions", + "displayName": "completions", + "sortOrder": 9, + "description": "Commands for generating and registering completions for supported shells", + "commands": [ + { + "key": "completions-script", + "displayName": "script", + "sortOrder": 10, + "description": "Generate the completion script for a supported shell", + "parameters": [ + { + "key": "shell", + "displayName": "Shell", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The shell for which to generate or register completions" + } + ] + } + ] + }, + { + "key": "dnx", + "displayName": "dnx", + "sortOrder": 11, + "description": "Executes a tool from source without permanently installing it.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'dotnetsay' or package identifier and version separated by '@' like 'dotnetsay@2.1.7'.", + "isRequired": true + }, + { + "key": "commandArguments", + "displayName": "commandArguments", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "Arguments forwarded to the tool" + }, + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Add an additional NuGet package source to use during installation." + }, + { + "key": "--allow-roll-forward", + "displayName": "Allow Roll Forward", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Treat package source failures as warnings." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Do not cache packages and http requests." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Include pre-release packages." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Replace all NuGet package sources to use during installation with these." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "The version of the tool package to install." + } + ] + }, + { + "key": "format", + "displayName": "format", + "sortOrder": 12, + "description": "Apply style preferences to a project or solution.", + "parameters": [ + { + "key": "PROJECT | SOLUTION", + "displayName": "PROJECT | SOLUTION", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution file to operate on." + }, + { + "key": "--diagnostics", + "displayName": "Diagnostics", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues." + }, + { + "key": "--exclude-diagnostics", + "displayName": "Exclude Diagnostics", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues." + }, + { + "key": "--severity", + "displayName": "Severity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The severity of diagnostics to fix." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Doesn't execute an implicit restore before formatting." + }, + { + "key": "--verify-no-changes", + "displayName": "Verify No Changes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Verify no formatting changes would be performed." + }, + { + "key": "--include", + "displayName": "Include", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "A list of relative file or folder paths to include in formatting." + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "A list of relative file or folder paths to exclude from formatting." + }, + { + "key": "--include-generated", + "displayName": "Include Generated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Format files generated by the SDK." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Set the verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--binarylog", + "displayName": "Binarylog", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Log all project or solution load information to a binary log file." + }, + { + "key": "--report", + "displayName": "Report", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Accepts a file path which if provided will produce a json report in the given directory." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Show help and usage information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Show version information" + } + ], + "commands": [ + { + "key": "format-whitespace", + "displayName": "whitespace", + "sortOrder": 13, + "description": "Run whitespace formatting.", + "parameters": [ + { + "key": "PROJECT | SOLUTION", + "displayName": "PROJECT | SOLUTION", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution file to operate on." + }, + { + "key": "--folder", + "displayName": "Folder", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Whether to treat the `` argument as a simple folder of files." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Doesn't execute an implicit restore before formatting." + }, + { + "key": "--verify-no-changes", + "displayName": "Verify No Changes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Verify no formatting changes would be performed." + }, + { + "key": "--include", + "displayName": "Include", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "A list of relative file or folder paths to include in formatting." + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "A list of relative file or folder paths to exclude from formatting." + }, + { + "key": "--include-generated", + "displayName": "Include Generated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Format files generated by the SDK." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "Set the verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--binarylog", + "displayName": "Binarylog", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "Log all project or solution load information to a binary log file." + }, + { + "key": "--report", + "displayName": "Report", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Accepts a file path which if provided will produce a json report in the given directory." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Show help and usage information", + "aliases": [ + "-?", + "-h" + ] + } + ] + }, + { + "key": "format-style", + "displayName": "style", + "sortOrder": 14, + "description": "Run code style analyzers and apply fixes.", + "parameters": [ + { + "key": "PROJECT | SOLUTION", + "displayName": "PROJECT | SOLUTION", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution file to operate on." + }, + { + "key": "--diagnostics", + "displayName": "Diagnostics", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues." + }, + { + "key": "--exclude-diagnostics", + "displayName": "Exclude Diagnostics", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues." + }, + { + "key": "--severity", + "displayName": "Severity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The severity of diagnostics to fix." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Doesn't execute an implicit restore before formatting." + }, + { + "key": "--verify-no-changes", + "displayName": "Verify No Changes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Verify no formatting changes would be performed." + }, + { + "key": "--include", + "displayName": "Include", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "A list of relative file or folder paths to include in formatting." + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "A list of relative file or folder paths to exclude from formatting." + }, + { + "key": "--include-generated", + "displayName": "Include Generated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Format files generated by the SDK." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Set the verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--binarylog", + "displayName": "Binarylog", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Log all project or solution load information to a binary log file." + }, + { + "key": "--report", + "displayName": "Report", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Accepts a file path which if provided will produce a json report in the given directory." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Show help and usage information", + "aliases": [ + "-?", + "-h" + ] + } + ] + }, + { + "key": "format-analyzers", + "displayName": "analyzers", + "sortOrder": 15, + "description": "Run 3rd party analyzers and apply fixes.", + "parameters": [ + { + "key": "PROJECT | SOLUTION", + "displayName": "PROJECT | SOLUTION", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution file to operate on." + }, + { + "key": "--diagnostics", + "displayName": "Diagnostics", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues." + }, + { + "key": "--exclude-diagnostics", + "displayName": "Exclude Diagnostics", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues." + }, + { + "key": "--severity", + "displayName": "Severity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The severity of diagnostics to fix." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Doesn't execute an implicit restore before formatting." + }, + { + "key": "--verify-no-changes", + "displayName": "Verify No Changes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Verify no formatting changes would be performed." + }, + { + "key": "--include", + "displayName": "Include", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "A list of relative file or folder paths to include in formatting." + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "A list of relative file or folder paths to exclude from formatting." + }, + { + "key": "--include-generated", + "displayName": "Include Generated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Format files generated by the SDK." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Set the verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--binarylog", + "displayName": "Binarylog", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Log all project or solution load information to a binary log file." + }, + { + "key": "--report", + "displayName": "Report", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Accepts a file path which if provided will produce a json report in the given directory." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Show help and usage information", + "aliases": [ + "-?", + "-h" + ] + } + ] + } + ] + }, + { + "key": "fsi", + "displayName": "fsi", + "sortOrder": 16, + "description": "Start F# Interactive / execute F# scripts.", + "parameters": [ + { + "key": "script.fsx", + "displayName": "Script Fsx", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "An F# script to execute." + }, + { + "key": "arguments", + "displayName": "Arguments", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "Arguments passed to the script." + }, + { + "key": "--use", + "displayName": "Use", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Use the given file on startup as initial input", + "group": "Input files" + }, + { + "key": "--load", + "displayName": "Load", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "#load the given file on startup", + "group": "Input files" + }, + { + "key": "--reference", + "displayName": "Reference", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Reference an assembly", + "group": "Input files", + "aliases": [ + "-r" + ] + }, + { + "key": "--compilertool", + "displayName": "Compilertool", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Reference an assembly or directory containing a design time tool", + "group": "Input files", + "aliases": [ + "-t" + ] + }, + { + "key": "--usesdkrefs", + "displayName": "Usesdkrefs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Use reference assemblies for .NET framework references when available (Enabled by default).", + "group": "Input files" + }, + { + "key": "--debug", + "displayName": "Debug", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Emit debug information (on by default)", + "group": "Code generation", + "aliases": [ + "-g" + ] + }, + { + "key": "--optimize", + "displayName": "Optimize", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Enable optimizations (on by default)", + "group": "Code generation", + "aliases": [ + "-O" + ] + }, + { + "key": "--tailcalls", + "displayName": "Tailcalls", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Enable or disable tailcalls (on by default)", + "group": "Code generation" + }, + { + "key": "--deterministic", + "displayName": "Deterministic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Produce a deterministic assembly (including module version GUID and timestamp) (off by default)", + "group": "Code generation" + }, + { + "key": "--realsig", + "displayName": "Realsig", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Generate assembly with IL visibility that matches the source code visibility (off by default)", + "group": "Code generation" + }, + { + "key": "--pathmap", + "displayName": "Pathmap", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "Maps physical paths to source path names output by the compiler", + "group": "Code generation" + }, + { + "key": "--crossoptimize", + "displayName": "Crossoptimize", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Enable or disable cross-module optimizations (on by default)", + "group": "Code generation" + }, + { + "key": "--reflectionfree", + "displayName": "Reflectionfree", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "Disable implicit generation of constructs using reflection", + "group": "Code generation" + }, + { + "key": "--warnaserror", + "displayName": "Warnaserror", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "Report specific warnings as errors", + "group": "Errors and warnings" + }, + { + "key": "--warn", + "displayName": "Warn", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "Set a warning level (0-5)", + "group": "Errors and warnings" + }, + { + "key": "--nowarn", + "displayName": "Nowarn", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "Disable specific warning messages", + "group": "Errors and warnings" + }, + { + "key": "--warnon", + "displayName": "Warnon", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "Enable specific warnings that may be off by default", + "group": "Errors and warnings" + }, + { + "key": "--checknulls", + "displayName": "Checknulls", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "Enable nullness declarations and checks (off by default)", + "group": "Errors and warnings" + }, + { + "key": "--consolecolors", + "displayName": "Consolecolors", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Output warning and error messages in color (on by default)", + "group": "Errors and warnings" + }, + { + "key": "--langversion", + "displayName": "Langversion", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "Display the allowed values for language version.", + "group": "Language" + }, + { + "key": "--disableLanguageFeature", + "displayName": "disableLanguageFeature", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 22, + "description": "Disable a specific language feature by name.", + "group": "Language" + }, + { + "key": "--checked", + "displayName": "Checked", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "Generate overflow checks (off by default)", + "group": "Language" + }, + { + "key": "--define", + "displayName": "Define", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 24, + "description": "Define conditional compilation symbols", + "group": "Language", + "aliases": [ + "-d" + ] + }, + { + "key": "--strict-indentation", + "displayName": "Strict Indentation", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "Override indentation rules implied by the language version (off by default)", + "group": "Language" + }, + { + "key": "--nologo", + "displayName": "Nologo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "Suppress compiler copyright message", + "group": "Miscellaneous" + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "Display compiler version banner and exit", + "group": "Miscellaneous" + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "Display this usage message", + "group": "Miscellaneous", + "aliases": [ + "-?" + ] + }, + { + "key": "--codepage", + "displayName": "Codepage", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 29, + "description": "Specify the codepage used to read source files", + "group": "Advanced" + }, + { + "key": "--utf8output", + "displayName": "Utf8output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "Output messages in UTF-8 encoding", + "group": "Advanced" + }, + { + "key": "--preferreduilang", + "displayName": "Preferreduilang", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 31, + "description": "Specify the preferred output language culture name (e.g.", + "group": "Advanced" + }, + { + "key": "--fullpaths", + "displayName": "Fullpaths", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "Output messages with fully qualified paths", + "group": "Advanced" + }, + { + "key": "--lib", + "displayName": "Lib", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "Specify a directory for the include path which is used to resolve source files and assemblies", + "group": "Advanced", + "aliases": [ + "-I" + ] + }, + { + "key": "--simpleresolution", + "displayName": "Simpleresolution", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "Resolve assembly references using directory-based rules rather than MSBuild resolution", + "group": "Advanced" + }, + { + "key": "--targetprofile", + "displayName": "Targetprofile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 35, + "description": "Specify target framework profile of this assembly.", + "group": "Advanced" + }, + { + "key": "--clearResultsCache", + "displayName": "clearResultsCache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "Clear the package manager results cache", + "group": "Advanced" + }, + { + "key": "--typecheck-only", + "displayName": "Typecheck Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "Perform type checking only, do not execute code", + "group": "Advanced" + }, + { + "key": "--exec", + "displayName": "Exec", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "Exit fsi after loading the files or running the .fsx script given on the command line", + "group": "Advanced" + }, + { + "key": "--gui", + "displayName": "Gui", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "Execute interactions on a Windows Forms event loop (on by default)", + "group": "Advanced" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "Suppress fsi writing to stdout", + "group": "Advanced" + }, + { + "key": "--readline", + "displayName": "Readline", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "Support TAB completion in console (on by default)", + "group": "Advanced" + }, + { + "key": "--quotations-debug", + "displayName": "Quotations Debug", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "Emit debug information in quotations (off by default)", + "group": "Advanced" + }, + { + "key": "--shadowcopyreferences", + "displayName": "Shadowcopyreferences", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "Prevents references from being locked by the F# Interactive process (off by default)", + "group": "Advanced" + }, + { + "key": "--multiemit", + "displayName": "Multiemit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "Emit multiple assemblies (on by default)", + "group": "Advanced" + } + ] + }, + { + "key": "help", + "displayName": "help", + "sortOrder": 17, + "description": "Opens the reference page in a browser for the specified command.", + "parameters": [ + { + "key": "COMMAND_NAME", + "displayName": "COMMAND_NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The SDK command to launch online help for." + } + ] + }, + { + "key": "internal-reportinstallsuccess", + "displayName": "internal-reportinstallsuccess", + "sortOrder": 18, + "parameters": [ + { + "key": "internal-reportinstallsuccess-arg", + "displayName": "Internal Reportinstallsuccess Arg", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + } + ] + }, + { + "key": "list", + "displayName": "list", + "sortOrder": 19, + "description": "List references or packages of a .NET project.", + "parameters": [ + { + "key": "PROJECT | SOLUTION | FILE", + "displayName": "PROJECT | SOLUTION | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution or C# (file-based program) file to operate on." + } + ], + "commands": [ + { + "key": "list-package", + "displayName": "package", + "sortOrder": 20, + "description": "List all package references of the project or solution.", + "parameters": [ + { + "key": "--config", + "displayName": "Config", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "The path to the NuGet config file to use.", + "aliases": [ + "--configfile" + ] + }, + { + "key": "--deprecated", + "displayName": "Deprecated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Lists packages that have been deprecated." + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The file-based app to operate on.", + "recursive": true + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Specifies the output format type for the list packages command." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Chooses a framework to show its packages.", + "aliases": [ + "-f" + ] + }, + { + "key": "--highest-minor", + "displayName": "Highest Minor", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Consider only the packages with a matching major version number when searching for newer packages." + }, + { + "key": "--highest-patch", + "displayName": "Highest Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Consider only the packages with a matching major and minor version numbers when searching for newer packages." + }, + { + "key": "--include-prerelease", + "displayName": "Include Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Consider packages with prerelease versions when searching for newer packages." + }, + { + "key": "--include-transitive", + "displayName": "Include Transitive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Lists transitive and top-level packages." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Do not restore before running the command." + }, + { + "key": "--outdated", + "displayName": "Outdated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Lists packages that have newer versions." + }, + { + "key": "--output-version", + "displayName": "Output Version", + "parameterType": "Option", + "dataType": "Number", + "sortOrder": 12, + "description": "Specifies the version of machine-readable output." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "The project file to operate on.", + "recursive": true + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "The NuGet sources to use when searching for newer packages.", + "aliases": [ + "-s" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--vulnerable", + "displayName": "Vulnerable", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Lists packages that have known vulnerabilities." + } + ] + }, + { + "key": "list-reference", + "displayName": "reference", + "sortOrder": 21, + "description": "List all project-to-project references of the project.", + "parameters": [ + { + "key": "argument", + "displayName": "Argument", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + } + ] + }, + { + "key": "msbuild", + "displayName": "msbuild", + "sortOrder": 22, + "description": "Run Microsoft Build Engine (MSBuild) commands.", + "parameters": [ + { + "key": "arguments", + "displayName": "Arguments", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Force the command to ignore any persistent build servers." + } + ] + }, + { + "key": "new", + "displayName": "new", + "sortOrder": 23, + "description": "Create a new .NET project or file.", + "parameters": [ + { + "key": "template-short-name", + "displayName": "Template Short Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "A short name of the template to create." + }, + { + "key": "template-args", + "displayName": "Template Args", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "Template specific options to use." + }, + { + "key": "--diagnostics", + "displayName": "Diagnostics", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Enables diagnostic output.", + "aliases": [ + "-d" + ], + "recursive": true + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Displays a summary of what would happen if the given command line were run if it would result in a template creation." + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Forces content to be generated even if it would change existing files." + }, + { + "key": "--name", + "displayName": "Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The name for the output being created.", + "aliases": [ + "-n" + ] + }, + { + "key": "--no-update-check", + "displayName": "No Update Check", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Disables checking for the template package updates when instantiating a template." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "Location to place the generated output.", + "aliases": [ + "-o" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The project that should be used for context evaluation." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Sets the verbosity level.", + "aliases": [ + "-v" + ], + "recursive": true + } + ], + "commands": [ + { + "key": "new---alias", + "displayName": "--alias", + "sortOrder": 24, + "description": "Creates an alias for instantiate command with a certain set of arguments." + }, + { + "key": "new---install", + "displayName": "--install", + "sortOrder": 25, + "description": "Installs a template package.", + "parameters": [ + { + "key": "package", + "displayName": "Package", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "NuGet package ID or path to folder or NuGet package to install.", + "isRequired": true + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Allows installing template packages from the specified sources even if they would override a template package from another source." + } + ] + }, + { + "key": "new---list", + "displayName": "--list", + "sortOrder": 26, + "description": "Lists templates containing the specified template name.", + "parameters": [ + { + "key": "template-name", + "displayName": "Template Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "If specified, only the templates matching the name will be shown." + }, + { + "key": "--ignore-constraints", + "displayName": "Ignore Constraints", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Disables checking if the template meets the constraints to be run." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Location to place the generated output.", + "aliases": [ + "-o" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The project that should be used for context evaluation." + } + ] + }, + { + "key": "new---search", + "displayName": "--search", + "sortOrder": 27, + "description": "Searches for the templates on NuGet.org.", + "parameters": [ + { + "key": "template-name", + "displayName": "Template Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "If specified, only the templates matching the name will be shown." + } + ] + }, + { + "key": "new---show-alias", + "displayName": "--show-alias", + "sortOrder": 28, + "description": "Displays defined aliases." + }, + { + "key": "new---uninstall", + "displayName": "--uninstall", + "sortOrder": 29, + "description": "Uninstalls a template package.", + "parameters": [ + { + "key": "package", + "displayName": "Package", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "NuGet package ID (without version) or path to folder to uninstall." + } + ] + }, + { + "key": "new---update-apply", + "displayName": "--update-apply", + "sortOrder": 30, + "description": "Checks the currently installed template packages for update, and install the updates." + }, + { + "key": "new---update-check", + "displayName": "--update-check", + "sortOrder": 31, + "description": "Checks the currently installed template packages for updates." + }, + { + "key": "new-alias", + "displayName": "alias", + "sortOrder": 32, + "description": "Creates or displays defined aliases.", + "commands": [ + { + "key": "new-alias-add", + "displayName": "add", + "sortOrder": 33, + "description": "Creates an alias for instantiate command with a certain set of arguments." + }, + { + "key": "new-alias-show", + "displayName": "show", + "sortOrder": 34, + "description": "Displays defined aliases." + } + ] + }, + { + "key": "new-create", + "displayName": "create", + "sortOrder": 35, + "description": "Instantiates a template with given short name.", + "parameters": [ + { + "key": "template-short-name", + "displayName": "Template Short Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "A short name of the template to create." + }, + { + "key": "template-args", + "displayName": "Template Args", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "Template specific options to use." + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Displays a summary of what would happen if the given command line were run if it would result in a template creation." + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Forces content to be generated even if it would change existing files." + }, + { + "key": "--name", + "displayName": "Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The name for the output being created.", + "aliases": [ + "-n" + ] + }, + { + "key": "--no-update-check", + "displayName": "No Update Check", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Disables checking for the template package updates when instantiating a template." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Location to place the generated output.", + "aliases": [ + "-o" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The project that should be used for context evaluation." + } + ] + }, + { + "key": "new-details", + "displayName": "details", + "sortOrder": 36, + "description": "Provides the details for specified template package.", + "parameters": [ + { + "key": "package-identifier", + "displayName": "Package Identifier", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package identifier", + "isRequired": true + }, + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Specifies a NuGet source to use.", + "aliases": [ + "--nuget-source" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + } + ] + }, + { + "key": "new-install", + "displayName": "install", + "sortOrder": 37, + "description": "Installs a template package.", + "parameters": [ + { + "key": "package", + "displayName": "Package", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "NuGet package ID or path to folder or NuGet package to install.", + "isRequired": true + }, + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Specifies a NuGet source to use.", + "aliases": [ + "--nuget-source" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allows installing template packages from the specified sources even if they would override a template package from another source." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + } + ] + }, + { + "key": "new-list", + "displayName": "list", + "sortOrder": 38, + "description": "Lists templates containing the specified template name.", + "parameters": [ + { + "key": "template-name", + "displayName": "Template Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "If specified, only the templates matching the name will be shown." + }, + { + "key": "--author", + "displayName": "Author", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Filters the templates based on the template author." + }, + { + "key": "--columns", + "displayName": "Columns", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Specifies the columns to display in the output." + }, + { + "key": "--columns-all", + "displayName": "Columns All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Displays all columns in the output." + }, + { + "key": "--ignore-constraints", + "displayName": "Ignore Constraints", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Disables checking if the template meets the constraints to be run." + }, + { + "key": "--language", + "displayName": "Language", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Filters templates based on language.", + "aliases": [ + "-lang" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Location to place the generated output.", + "aliases": [ + "-o" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The project that should be used for context evaluation." + }, + { + "key": "--tag", + "displayName": "Tag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "Filters the templates based on the tag." + }, + { + "key": "--type", + "displayName": "Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Filters templates based on available types." + } + ] + }, + { + "key": "new-search", + "displayName": "search", + "sortOrder": 39, + "description": "Searches for the templates on NuGet.org.", + "parameters": [ + { + "key": "template-name", + "displayName": "Template Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "If specified, only the templates matching the name will be shown." + }, + { + "key": "--author", + "displayName": "Author", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Filters the templates based on the template author." + }, + { + "key": "--columns", + "displayName": "Columns", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Specifies the columns to display in the output." + }, + { + "key": "--columns-all", + "displayName": "Columns All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Displays all columns in the output." + }, + { + "key": "--language", + "displayName": "Language", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Filters templates based on language.", + "aliases": [ + "-lang" + ] + }, + { + "key": "--package", + "displayName": "Package", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Filters the templates based on NuGet package ID." + }, + { + "key": "--tag", + "displayName": "Tag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Filters the templates based on the tag." + }, + { + "key": "--type", + "displayName": "Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "Filters templates based on available types." + } + ] + }, + { + "key": "new-uninstall", + "displayName": "uninstall", + "sortOrder": 40, + "description": "Uninstalls a template package.", + "parameters": [ + { + "key": "package", + "displayName": "Package", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "NuGet package ID (without version) or path to folder to uninstall." + } + ] + }, + { + "key": "new-update", + "displayName": "update", + "sortOrder": 41, + "description": "Checks the currently installed template packages for update, and install the updates.", + "parameters": [ + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "Specifies a NuGet source to use.", + "aliases": [ + "--nuget-source" + ] + }, + { + "key": "--check-only", + "displayName": "Check Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Only checks for updates and display the template packages to be updated without applying update.", + "aliases": [ + "--dry-run" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + } + ] + } + ] + }, + { + "key": "nuget", + "displayName": "nuget", + "sortOrder": 42, + "description": "Provides additional NuGet commands.", + "parameters": [ + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + } + ], + "commands": [ + { + "key": "nuget-delete", + "displayName": "delete", + "sortOrder": 43, + "parameters": [ + { + "key": "package-paths", + "displayName": "Package Paths", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--api-key", + "displayName": "API Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "aliases": [ + "-k" + ] + }, + { + "key": "--force-english-output", + "displayName": "Force English Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-service-endpoint", + "displayName": "No Service Endpoint", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4 + }, + { + "key": "--non-interactive", + "displayName": "Non Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5 + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "aliases": [ + "-s" + ] + } + ] + }, + { + "key": "nuget-locals", + "displayName": "locals", + "sortOrder": 44, + "parameters": [ + { + "key": "folders", + "displayName": "Folders", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--clear", + "displayName": "Clear", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "aliases": [ + "-c" + ] + }, + { + "key": "--force-english-output", + "displayName": "Force English Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "--list", + "displayName": "List", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "aliases": [ + "-l" + ] + } + ] + }, + { + "key": "nuget-push", + "displayName": "push", + "sortOrder": 45, + "parameters": [ + { + "key": "package-paths", + "displayName": "Package Paths", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--api-key", + "displayName": "API Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "aliases": [ + "-k" + ] + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2 + }, + { + "key": "--disable-buffering", + "displayName": "Disable Buffering", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "aliases": [ + "-d" + ] + }, + { + "key": "--force-english-output", + "displayName": "Force English Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4 + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-service-endpoint", + "displayName": "No Service Endpoint", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6 + }, + { + "key": "--no-symbols", + "displayName": "No Symbols", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "aliases": [ + "-n" + ] + }, + { + "key": "--skip-duplicate", + "displayName": "Skip Duplicate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8 + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "aliases": [ + "-s" + ] + }, + { + "key": "--symbol-api-key", + "displayName": "Symbol API Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "aliases": [ + "-sk" + ] + }, + { + "key": "--symbol-source", + "displayName": "Symbol Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "aliases": [ + "-ss" + ] + }, + { + "key": "--timeout", + "displayName": "Timeout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "aliases": [ + "-t" + ] + } + ] + }, + { + "key": "nuget-sign", + "displayName": "sign", + "sortOrder": 46, + "parameters": [ + { + "key": "package-paths", + "displayName": "Package Paths", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--certificate-fingerprint", + "displayName": "Certificate Fingerprint", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1 + }, + { + "key": "--certificate-password", + "displayName": "Certificate Password", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2 + }, + { + "key": "--certificate-path", + "displayName": "Certificate Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3 + }, + { + "key": "--certificate-store-location", + "displayName": "Certificate Store Location", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4 + }, + { + "key": "--certificate-store-name", + "displayName": "Certificate Store Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5 + }, + { + "key": "--certificate-subject-name", + "displayName": "Certificate Subject Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6 + }, + { + "key": "--hash-algorithm", + "displayName": "Hash Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7 + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "aliases": [ + "-o" + ] + }, + { + "key": "--overwrite", + "displayName": "Overwrite", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9 + }, + { + "key": "--timestamp-hash-algorithm", + "displayName": "Timestamp Hash Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10 + }, + { + "key": "--timestamper", + "displayName": "Timestamper", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-trust", + "displayName": "trust", + "sortOrder": 47, + "parameters": [ + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ], + "commands": [ + { + "key": "nuget-trust-author", + "displayName": "author", + "sortOrder": 48, + "parameters": [ + { + "key": "NAME", + "displayName": "NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "PACKAGE", + "displayName": "PACKAGE", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "isRequired": true + }, + { + "key": "--allow-untrusted-root", + "displayName": "Allow Untrusted Root", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-trust-certificate", + "displayName": "certificate", + "sortOrder": 49, + "parameters": [ + { + "key": "NAME", + "displayName": "NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "FINGERPRINT", + "displayName": "FINGERPRINT", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "isRequired": true + }, + { + "key": "--algorithm", + "displayName": "Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2 + }, + { + "key": "--allow-untrusted-root", + "displayName": "Allow Untrusted Root", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3 + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-trust-list", + "displayName": "list", + "sortOrder": 50, + "parameters": [ + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-trust-remove", + "displayName": "remove", + "sortOrder": 51, + "parameters": [ + { + "key": "NAME", + "displayName": "NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-trust-repository", + "displayName": "repository", + "sortOrder": 52, + "parameters": [ + { + "key": "NAME", + "displayName": "NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "PACKAGE", + "displayName": "PACKAGE", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "isRequired": true + }, + { + "key": "--allow-untrusted-root", + "displayName": "Allow Untrusted Root", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3 + }, + { + "key": "--owners", + "displayName": "Owners", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-trust-source", + "displayName": "source", + "sortOrder": 53, + "parameters": [ + { + "key": "NAME", + "displayName": "NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1 + }, + { + "key": "--owners", + "displayName": "Owners", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2 + }, + { + "key": "--source-url", + "displayName": "Source URL", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-trust-sync", + "displayName": "sync", + "sortOrder": 54, + "parameters": [ + { + "key": "NAME", + "displayName": "NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + } + ] + }, + { + "key": "nuget-verify", + "displayName": "verify", + "sortOrder": 55, + "parameters": [ + { + "key": "package-paths", + "displayName": "Package Paths", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + }, + { + "key": "--certificate-fingerprint", + "displayName": "Certificate Fingerprint", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2 + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "nuget-why", + "displayName": "why", + "sortOrder": 56, + "description": "Shows the dependency graph for a particular package for a given project or solution.", + "parameters": [ + { + "key": "PACKAGE", + "displayName": "PACKAGE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The package name to lookup in the dependency graph.", + "isRequired": true + }, + { + "key": "PROJECT|SOLUTION|FILE", + "displayName": "PROJECT|SOLUTION|FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "A path to a project, solution file, file-based app, or project directory." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The target framework(s) for which dependency graphs are shown.", + "aliases": [ + "-f" + ] + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Show help and usage information", + "aliases": [ + "-?", + "-h", + "/?", + "/h" + ], + "recursive": true + } + ] + } + ] + }, + { + "key": "pack", + "displayName": "pack", + "sortOrder": 57, + "description": "Create a NuGet package.", + "parameters": [ + { + "key": "PROJECT | SOLUTION | FILE", + "displayName": "PROJECT | SOLUTION | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution or C# (file-based program) file to operate on." + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The artifacts path." + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The configuration to use for building the package.", + "aliases": [ + "-c" + ] + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--include-source", + "displayName": "Include Source", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Include PDBs and source files." + }, + { + "key": "--include-symbols", + "displayName": "Include Symbols", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Include packages with symbols in addition to regular packages in output directory." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-build", + "displayName": "No Build", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Do not build the project before packing." + }, + { + "key": "--no-logo", + "displayName": "No Logo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Do not display the startup banner or the copyright message.", + "aliases": [ + "--nologo", + "-nologo", + "/nologo" + ] + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Do not restore the project before building." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "The output directory to place built packages in.", + "aliases": [ + "-o" + ] + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "The target runtime to build for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--serviceable", + "displayName": "Serviceable", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Set the serviceable flag in the package.", + "aliases": [ + "-s" + ] + }, + { + "key": "--use-current-runtime", + "displayName": "Use Current Runtime", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Use current runtime as the target runtime.", + "aliases": [ + "--ucr" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "--v", + "-v", + "-verbosity", + "/v", + "/verbosity" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "The version of the package to create" + }, + { + "key": "--version-suffix", + "displayName": "Version Suffix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "Set the value of the $(VersionSuffix) property to use when building the project." + } + ] + }, + { + "key": "package", + "displayName": "package", + "sortOrder": 58, + "description": "Search for, add, remove, or list PackageReferences for a .NET project.", + "commands": [ + { + "key": "package-add", + "displayName": "add", + "sortOrder": 59, + "description": "Add a NuGet package reference to the project.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'Newtonsoft.Json' or package identifier and version separated by '@' like 'Newtonsoft.Json@13.0.3'.", + "isRequired": true + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The file-based app to operate on.", + "recursive": true + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Add the reference only when targeting a specific framework.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Add the reference without performing restore preview and compatibility check.", + "aliases": [ + "-n" + ] + }, + { + "key": "--package-directory", + "displayName": "Package Directory", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The directory to restore packages to." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Allows prerelease packages to be installed." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The project file to operate on.", + "recursive": true + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The NuGet package source to use during the restore.", + "aliases": [ + "-s" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "The version of the package to add.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "package-download", + "displayName": "download", + "sortOrder": 60, + "description": "Downloads a NuGet package to a local folder without requiring a project file.", + "parameters": [ + { + "key": "packages", + "displayName": "Packages", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'Newtonsoft.Json' or package identifier and version separated by '@' like 'Newtonsoft.Json@13.0.3'.", + "isRequired": true + }, + { + "key": "--allow-insecure-connections", + "displayName": "Allow Insecure Connections", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Allows downloading from HTTP (non-HTTPS) package sources." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The NuGet configuration file." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Directory where the package will be placed.", + "aliases": [ + "-o" + ] + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Allows prerelease packages to be installed." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Specifies one or more NuGet package sources to use.", + "aliases": [ + "-s" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "Set the verbosity level of the command.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "package-list", + "displayName": "list", + "sortOrder": 61, + "description": "List all package references of the project or solution.", + "parameters": [ + { + "key": "--config", + "displayName": "Config", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "The path to the NuGet config file to use.", + "aliases": [ + "--configfile" + ] + }, + { + "key": "--deprecated", + "displayName": "Deprecated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Lists packages that have been deprecated." + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The file-based app to operate on.", + "recursive": true + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Specifies the output format type for the list packages command." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Chooses a framework to show its packages.", + "aliases": [ + "-f" + ] + }, + { + "key": "--highest-minor", + "displayName": "Highest Minor", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Consider only the packages with a matching major version number when searching for newer packages." + }, + { + "key": "--highest-patch", + "displayName": "Highest Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Consider only the packages with a matching major and minor version numbers when searching for newer packages." + }, + { + "key": "--include-prerelease", + "displayName": "Include Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Consider packages with prerelease versions when searching for newer packages." + }, + { + "key": "--include-transitive", + "displayName": "Include Transitive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Lists transitive and top-level packages." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Do not restore before running the command." + }, + { + "key": "--outdated", + "displayName": "Outdated", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Lists packages that have newer versions." + }, + { + "key": "--output-version", + "displayName": "Output Version", + "parameterType": "Option", + "dataType": "Number", + "sortOrder": 12, + "description": "Specifies the version of machine-readable output." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "The project file to operate on.", + "recursive": true + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "The NuGet sources to use when searching for newer packages.", + "aliases": [ + "-s" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--vulnerable", + "displayName": "Vulnerable", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Lists packages that have known vulnerabilities." + } + ] + }, + { + "key": "package-remove", + "displayName": "remove", + "sortOrder": 62, + "description": "Remove a NuGet package reference from the project.", + "parameters": [ + { + "key": "PACKAGE_NAME", + "displayName": "PACKAGE_NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The package reference to remove.", + "isRequired": true + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The file-based app to operate on.", + "recursive": true + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The project file to operate on.", + "recursive": true + } + ] + }, + { + "key": "package-search", + "displayName": "search", + "sortOrder": 63, + "description": "Searches one or more package sources for packages that match a search term.", + "parameters": [ + { + "key": "SearchTerm", + "displayName": "SearchTerm", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Search term to filter package names, descriptions, and tags." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The NuGet configuration file." + }, + { + "key": "--exact-match", + "displayName": "Exact Match", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Require that the search term exactly match the name of the package." + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Format the output accordingly." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Include prerelease packages." + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Number of results to skip, to allow pagination." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The package source to search." + }, + { + "key": "--take", + "displayName": "Take", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "Number of results to return." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Display this amount of details in the output: `normal`, `minimal`, `detailed`." + } + ] + }, + { + "key": "package-update", + "displayName": "update", + "sortOrder": 64, + "description": "Update referenced packages in a project or solution.", + "parameters": [ + { + "key": "packages", + "displayName": "Packages", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'Newtonsoft.Json' or package identifier and version separated by '@' like 'Newtonsoft.Json@13.0.3'." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Path to a project or solution file or file-based app, or a project directory.", + "aliases": [ + "--file" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Set the verbosity level of the command.", + "aliases": [ + "-v" + ] + }, + { + "key": "--vulnerable", + "displayName": "Vulnerable", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Upgrade packages with known vulnerabilities." + } + ] + } + ] + }, + { + "key": "parse", + "displayName": "parse", + "sortOrder": 65 + }, + { + "key": "project", + "displayName": "project", + "sortOrder": 66, + "commands": [ + { + "key": "project-convert", + "displayName": "convert", + "sortOrder": 67, + "description": "Convert a file-based program to a project-based program.", + "parameters": [ + { + "key": "file", + "displayName": "File", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Path to the file-based program.", + "isRequired": true + }, + { + "key": "--delete-source", + "displayName": "Delete Source", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Delete all source files after conversion" + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Determines changes without actually modifying the file system" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Force conversion even if there are malformed directives." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Location to place the generated output.", + "aliases": [ + "-o" + ] + } + ] + } + ] + }, + { + "key": "publish", + "displayName": "publish", + "sortOrder": 68, + "description": "Publish a .NET project for deployment.", + "parameters": [ + { + "key": "PROJECT | SOLUTION | FILE", + "displayName": "PROJECT | SOLUTION | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution or C# (file-based program) file to operate on." + }, + { + "key": "--arch", + "displayName": "Arch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The target architecture.", + "aliases": [ + "-a" + ] + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The artifacts path." + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The configuration to publish for.", + "aliases": [ + "-c" + ] + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The target framework to publish for.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--manifest", + "displayName": "Manifest", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The path to a target manifest file that contains the list of packages to be excluded from the publish step." + }, + { + "key": "--no-build", + "displayName": "No Build", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Do not build the project before publishing." + }, + { + "key": "--no-logo", + "displayName": "No Logo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Do not display the startup banner or the copyright message.", + "aliases": [ + "--nologo", + "-nologo", + "/nologo" + ] + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Do not restore the project before building." + }, + { + "key": "--no-self-contained", + "displayName": "No Self Contained", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Publish your application as a framework dependent application." + }, + { + "key": "--os", + "displayName": "OS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "The target operating system." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "The output directory to place the published artifacts in.", + "aliases": [ + "-o" + ] + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "The target runtime to publish for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--self-contained", + "displayName": "Self Contained", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine.", + "aliases": [ + "--sc" + ] + }, + { + "key": "--use-current-runtime", + "displayName": "Use Current Runtime", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Use current runtime as the target runtime.", + "aliases": [ + "--ucr" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "--v", + "-v", + "-verbosity", + "/v", + "/verbosity" + ] + }, + { + "key": "--version-suffix", + "displayName": "Version Suffix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "Set the value of the $(VersionSuffix) property to use when building the project." + } + ] + }, + { + "key": "reference", + "displayName": "reference", + "sortOrder": 69, + "description": "Add, remove, or list ProjectReferences for a .NET project.", + "parameters": [ + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "The project file to operate on.", + "recursive": true + } + ], + "commands": [ + { + "key": "reference-add", + "displayName": "add", + "sortOrder": 70, + "description": "Add a project-to-project reference to the project.", + "parameters": [ + { + "key": "PROJECT_PATH", + "displayName": "PROJECT_PATH", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The paths to the projects to add as references.", + "isRequired": true + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Add the reference only when targeting a specific framework.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + } + ] + }, + { + "key": "reference-list", + "displayName": "list", + "sortOrder": 71, + "description": "List all project-to-project references of the project." + }, + { + "key": "reference-remove", + "displayName": "remove", + "sortOrder": 72, + "description": "Remove a project-to-project reference from the project.", + "parameters": [ + { + "key": "PROJECT_PATH", + "displayName": "PROJECT_PATH", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The paths to the referenced projects to remove.", + "isRequired": true + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Remove the reference only when targeting a specific framework.", + "aliases": [ + "-f" + ] + } + ] + } + ] + }, + { + "key": "remove", + "displayName": "remove", + "sortOrder": 73, + "description": ".NET Remove Command", + "parameters": [ + { + "key": "PROJECT | FILE", + "displayName": "PROJECT | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project file or C# file-based app to operate on." + } + ], + "commands": [ + { + "key": "remove-package", + "displayName": "package", + "sortOrder": 74, + "description": "Remove a NuGet package reference from the project.", + "parameters": [ + { + "key": "PACKAGE_NAME", + "displayName": "PACKAGE_NAME", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The package reference to remove.", + "isRequired": true + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + } + ] + }, + { + "key": "remove-reference", + "displayName": "reference", + "sortOrder": 75, + "description": "Remove a project-to-project reference from the project.", + "parameters": [ + { + "key": "PROJECT_PATH", + "displayName": "PROJECT_PATH", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The paths to the referenced projects to remove.", + "isRequired": true + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Remove the reference only when targeting a specific framework.", + "aliases": [ + "-f" + ] + } + ] + } + ] + }, + { + "key": "restore", + "displayName": "restore", + "sortOrder": 76, + "description": "Restore dependencies specified in a .NET project.", + "parameters": [ + { + "key": "PROJECT | SOLUTION | FILE", + "displayName": "PROJECT | SOLUTION | FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution or C# (file-based program) file to operate on." + }, + { + "key": "--arch", + "displayName": "Arch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The target architecture.", + "aliases": [ + "-a" + ] + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The artifacts path." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Force all dependencies to be resolved even if the last restore was successful.", + "aliases": [ + "-f" + ] + }, + { + "key": "--force-evaluate", + "displayName": "Force Evaluate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Forces restore to reevaluate all dependencies even if a lock file already exists." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Treat package source failures as warnings." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--lock-file-path", + "displayName": "Lock File Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Output location where project lock file is written." + }, + { + "key": "--locked-mode", + "displayName": "Locked Mode", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Don't allow updating project lock file." + }, + { + "key": "--no-dependencies", + "displayName": "No Dependencies", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Do not restore project-to-project references and only restore the specified project." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Disable Http Caching for packages." + }, + { + "key": "--no-logo", + "displayName": "No Logo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "Do not display the startup banner or the copyright message.", + "aliases": [ + "--nologo", + "-nologo", + "/nologo" + ] + }, + { + "key": "--os", + "displayName": "OS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "The target operating system." + }, + { + "key": "--packages", + "displayName": "Packages", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "The directory to restore packages to." + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "The target runtime to restore packages for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "The NuGet package source to use for the restore.", + "aliases": [ + "-s" + ] + }, + { + "key": "--use-current-runtime", + "displayName": "Use Current Runtime", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "Use current runtime as the target runtime.", + "aliases": [ + "--ucr" + ] + }, + { + "key": "--use-lock-file", + "displayName": "Use Lock File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Enables project lock file to be generated and used with restore." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "run", + "displayName": "run", + "sortOrder": 77, + "description": "Build and run a .NET project output.", + "parameters": [ + { + "key": "applicationArguments", + "displayName": "applicationArguments", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Arguments passed to the application that is being run." + }, + { + "key": "--arch", + "displayName": "Arch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The target architecture.", + "aliases": [ + "-a" + ] + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The artifacts path." + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The configuration to run for.", + "aliases": [ + "-c" + ] + }, + { + "key": "--device", + "displayName": "Device", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The device identifier to use for running the application." + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--environment", + "displayName": "Environment", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Sets the value of an environment variable.", + "aliases": [ + "-e" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory)." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The target framework to run for.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--launch-profile", + "displayName": "Launch Profile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "The name of the launch profile (if any) to use when launching the application.", + "aliases": [ + "-lp" + ] + }, + { + "key": "--list-devices", + "displayName": "List Devices", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "List available devices for running the application." + }, + { + "key": "--no-build", + "displayName": "No Build", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Do not build the project before running." + }, + { + "key": "--no-cache", + "displayName": "No Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Skip up to date checks and always build the program before running." + }, + { + "key": "--no-launch-profile", + "displayName": "No Launch Profile", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "Do not attempt to use launchSettings.json or [app].run.json to configure the application." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "Do not restore the project before building." + }, + { + "key": "--no-self-contained", + "displayName": "No Self Contained", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Publish your application as a framework dependent application." + }, + { + "key": "--os", + "displayName": "OS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "The target operating system." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "Defines the path of the project file to run." + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 19, + "description": "The target runtime to run for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--self-contained", + "displayName": "Self Contained", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine.", + "aliases": [ + "--sc" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "--v", + "-v", + "-verbosity", + "/v", + "/verbosity" + ] + } + ] + }, + { + "key": "run-api", + "displayName": "run-api", + "sortOrder": 78 + }, + { + "key": "sdk", + "displayName": "sdk", + "sortOrder": 79, + "description": "Manage .NET SDK installation.", + "commands": [ + { + "key": "sdk-check", + "displayName": "check", + "sortOrder": 80, + "description": ".NET SDK Check Command" + } + ] + }, + { + "key": "solution", + "displayName": "solution", + "sortOrder": 81, + "description": "Modify Visual Studio solution files.", + "parameters": [ + { + "key": "SLN_FILE", + "displayName": "SLN_FILE", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The solution file to operate on." + } + ], + "commands": [ + { + "key": "solution-add", + "displayName": "add", + "sortOrder": 82, + "description": "Add one or more projects to a solution file.", + "parameters": [ + { + "key": "PROJECT_PATH", + "displayName": "PROJECT_PATH", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The paths to the projects to add to the solution." + }, + { + "key": "--in-root", + "displayName": "In Root", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Place project in root of the solution, rather than creating a solution folder." + }, + { + "key": "--include-references", + "displayName": "Include References", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Recursively add projects' ReferencedProjects to solution" + }, + { + "key": "--solution-folder", + "displayName": "Solution Folder", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The destination solution folder path to add the projects to.", + "aliases": [ + "-s" + ] + } + ] + }, + { + "key": "solution-list", + "displayName": "list", + "sortOrder": 83, + "description": "List all projects in a solution file.", + "parameters": [ + { + "key": "--solution-folders", + "displayName": "Solution Folders", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Display solution folder paths." + } + ] + }, + { + "key": "solution-migrate", + "displayName": "migrate", + "sortOrder": 84, + "description": "Generate a .slnx file from a .sln file." + }, + { + "key": "solution-remove", + "displayName": "remove", + "sortOrder": 85, + "description": "Remove one or more projects from a solution file.", + "parameters": [ + { + "key": "PROJECT_PATH", + "displayName": "PROJECT_PATH", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project paths or names to remove from the solution." + } + ] + } + ] + }, + { + "key": "store", + "displayName": "store", + "sortOrder": 86, + "description": "Store the specified assemblies in the runtime package store.", + "parameters": [ + { + "key": "argument", + "displayName": "Argument", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "The target framework to store packages for.", + "aliases": [ + "-f" + ] + }, + { + "key": "--framework-version", + "displayName": "Framework Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The Microsoft.NETCore.App package version that will be used to run the assemblies." + }, + { + "key": "--manifest", + "displayName": "Manifest", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The XML file that contains the list of packages to be stored.", + "aliases": [ + "-m" + ] + }, + { + "key": "--no-logo", + "displayName": "No Logo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Do not display the startup banner or the copyright message.", + "aliases": [ + "--nologo", + "-nologo", + "/nologo" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "The output directory to store the given assemblies in.", + "aliases": [ + "-o" + ] + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The target runtime to store packages for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--skip-optimization", + "displayName": "Skip Optimization", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Skip the optimization phase." + }, + { + "key": "--skip-symbols", + "displayName": "Skip Symbols", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Skip creating symbol files which can be used for profiling the optimized assemblies." + }, + { + "key": "--use-current-runtime", + "displayName": "Use Current Runtime", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Use current runtime as the target runtime.", + "aliases": [ + "--ucr" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "--v", + "-v", + "-verbosity", + "/v", + "/verbosity" + ] + }, + { + "key": "--working-dir", + "displayName": "Working Dir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "The working directory used by the command to execute.", + "aliases": [ + "-w" + ] + } + ] + }, + { + "key": "test", + "displayName": "test", + "sortOrder": 87, + "description": "Run unit tests using the test runner specified in a .NET project.", + "parameters": [ + { + "key": "--arch", + "displayName": "Arch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "The target architecture.", + "aliases": [ + "-a" + ] + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The artifacts path." + }, + { + "key": "--blame", + "displayName": "Blame", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Runs the tests in blame mode." + }, + { + "key": "--blame-crash", + "displayName": "Blame Crash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly." + }, + { + "key": "--blame-crash-collect-always", + "displayName": "Blame Crash Collect Always", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Enables collecting crash dump on expected as well as unexpected testhost exit." + }, + { + "key": "--blame-crash-dump-type", + "displayName": "Blame Crash Dump Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The type of crash dump to be collected." + }, + { + "key": "--blame-hang", + "displayName": "Blame Hang", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout." + }, + { + "key": "--blame-hang-dump-type", + "displayName": "Blame Hang Dump Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The type of crash dump to be collected." + }, + { + "key": "--blame-hang-timeout", + "displayName": "Blame Hang Timeout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "Per-test timeout, after which hang dump is triggered and the testhost process is terminated." + }, + { + "key": "--collect", + "displayName": "Collect", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "The friendly name of the data collector to use for the test run." + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "The configuration to use for running tests.", + "aliases": [ + "-c" + ] + }, + { + "key": "--diag", + "displayName": "Diag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Enable verbose logging to the specified file.", + "aliases": [ + "-d" + ] + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--environment", + "displayName": "Environment", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "Sets the value of an environment variable.", + "aliases": [ + "-e" + ] + }, + { + "key": "--filter", + "displayName": "Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "Run tests that match the given expression." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "The target framework to run tests for.", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--list-tests", + "displayName": "List Tests", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "List the discovered tests instead of running the tests.", + "aliases": [ + "-t" + ] + }, + { + "key": "--logger", + "displayName": "Logger", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "The logger to use for test results.", + "aliases": [ + "-l" + ] + }, + { + "key": "--no-build", + "displayName": "No Build", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "Do not build the project before testing." + }, + { + "key": "--no-logo", + "displayName": "No Logo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Run test(s), without displaying Microsoft Testplatform banner", + "aliases": [ + "--nologo", + "-nologo", + "/nologo" + ] + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "Do not restore the project before building." + }, + { + "key": "--os", + "displayName": "OS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 22, + "description": "The target operating system." + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 23, + "description": "The output directory to place built artifacts in.", + "aliases": [ + "-o" + ] + }, + { + "key": "--results-directory", + "displayName": "Results Directory", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 24, + "description": "The directory where the test results will be placed." + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 25, + "description": "The target runtime to test for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--settings", + "displayName": "Settings", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 26, + "description": "The settings file to use when running tests.", + "aliases": [ + "-s" + ] + }, + { + "key": "--test-adapter-path", + "displayName": "Test Adapter Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 27, + "description": "The path to the custom adapters to use for the test run." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 28, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "--v", + "-v", + "-verbosity", + "/v", + "/verbosity" + ] + } + ] + }, + { + "key": "tool", + "displayName": "tool", + "sortOrder": 88, + "description": "Install or manage tools that extend the .NET experience.", + "commands": [ + { + "key": "tool-execute", + "displayName": "execute", + "sortOrder": 89, + "description": "Executes a tool from source without permanently installing it.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'dotnetsay' or package identifier and version separated by '@' like 'dotnetsay@2.1.7'.", + "isRequired": true + }, + { + "key": "commandArguments", + "displayName": "commandArguments", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "Arguments forwarded to the tool" + }, + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Add an additional NuGet package source to use during installation." + }, + { + "key": "--allow-roll-forward", + "displayName": "Allow Roll Forward", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Treat package source failures as warnings." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Do not cache packages and http requests." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Include pre-release packages." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Replace all NuGet package sources to use during installation with these." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "The version of the tool package to install." + } + ] + }, + { + "key": "tool-install", + "displayName": "install", + "sortOrder": 90, + "description": "Install global or local tool.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'dotnetsay' or package identifier and version separated by '@' like 'dotnetsay@2.1.7'.", + "isRequired": true + }, + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Add an additional NuGet package source to use during installation." + }, + { + "key": "--allow-downgrade", + "displayName": "Allow Downgrade", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allow package downgrade when installing a .NET tool package." + }, + { + "key": "--allow-roll-forward", + "displayName": "Allow Roll Forward", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed." + }, + { + "key": "--arch", + "displayName": "Arch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The target architecture.", + "aliases": [ + "-a" + ] + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The NuGet configuration file to use." + }, + { + "key": "--create-manifest-if-needed", + "displayName": "Create Manifest If Needed", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Create a tool manifest if one isn't found during tool installation." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The target framework to install the tool for." + }, + { + "key": "--global", + "displayName": "Global", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Install the tool for the current user.", + "aliases": [ + "-g" + ] + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Treat package source failures as warnings." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--local", + "displayName": "Local", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Install the tool and add to the local tool manifest (default)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Do not cache packages and http requests." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "Include pre-release packages." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "Replace all NuGet package sources to use during installation with these." + }, + { + "key": "--tool-manifest", + "displayName": "Tool Manifest", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Path to the manifest file." + }, + { + "key": "--tool-path", + "displayName": "Tool Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "The directory where the tool will be installed." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 19, + "description": "The version of the tool package to install." + } + ] + }, + { + "key": "tool-list", + "displayName": "list", + "sortOrder": 91, + "description": "List tools installed globally or locally.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The NuGet Package Id of the tool to list" + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The output format for the list of tools." + }, + { + "key": "--global", + "displayName": "Global", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "List tools installed for the current user.", + "aliases": [ + "-g" + ] + }, + { + "key": "--local", + "displayName": "Local", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "List the tools installed in the local tool manifest." + }, + { + "key": "--tool-path", + "displayName": "Tool Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The directory containing the tools to list." + } + ] + }, + { + "key": "tool-restore", + "displayName": "restore", + "sortOrder": 92, + "description": "Restore tools defined in the local tool manifest.", + "parameters": [ + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "Add an additional NuGet package source to use during installation." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Treat package source failures as warnings." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Do not cache packages and http requests." + }, + { + "key": "--tool-manifest", + "displayName": "Tool Manifest", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Path to the manifest file." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "tool-run", + "displayName": "run", + "sortOrder": 93, + "description": "Run a local tool.", + "parameters": [ + { + "key": "commandName", + "displayName": "commandName", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The command name of the tool to run.", + "isRequired": true + }, + { + "key": "toolArguments", + "displayName": "toolArguments", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "Arguments forwarded to the tool" + }, + { + "key": "--allow-roll-forward", + "displayName": "Allow Roll Forward", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed." + } + ] + }, + { + "key": "tool-search", + "displayName": "search", + "sortOrder": 94, + "description": "Search dotnet tools in nuget.org", + "parameters": [ + { + "key": "searchTerm", + "displayName": "searchTerm", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Search term from package id or package description.", + "isRequired": true + }, + { + "key": "--detail", + "displayName": "Detail", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Show detail result of the query." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Include pre-release packages." + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "The number of results to skip, for pagination." + }, + { + "key": "--take", + "displayName": "Take", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The number of results to return, for pagination." + } + ] + }, + { + "key": "tool-uninstall", + "displayName": "uninstall", + "sortOrder": 95, + "description": "Uninstall a global tool or local tool.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference", + "isRequired": true + }, + { + "key": "--global", + "displayName": "Global", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Uninstall the tool from the current user's tools directory.", + "aliases": [ + "-g" + ] + }, + { + "key": "--local", + "displayName": "Local", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Uninstall the tool and remove it from the local tool manifest." + }, + { + "key": "--tool-manifest", + "displayName": "Tool Manifest", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Path to the manifest file." + }, + { + "key": "--tool-path", + "displayName": "Tool Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The directory containing the tool to uninstall." + } + ] + }, + { + "key": "tool-update", + "displayName": "update", + "sortOrder": 96, + "description": "Update a global or local tool.", + "parameters": [ + { + "key": "packageId", + "displayName": "packageId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Package reference in the form of a package identifier like 'dotnetsay' or package identifier and version separated by '@' like 'dotnetsay@2.1.7'." + }, + { + "key": "--add-source", + "displayName": "Add Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Add an additional NuGet package source to use during installation." + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Update all tools." + }, + { + "key": "--allow-downgrade", + "displayName": "Allow Downgrade", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allow package downgrade when installing a .NET tool package." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "The target framework to install the tool for." + }, + { + "key": "--global", + "displayName": "Global", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Install the tool for the current user.", + "aliases": [ + "-g" + ] + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Treat package source failures as warnings." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--local", + "displayName": "Local", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Install the tool and add to the local tool manifest (default)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Do not cache packages and http requests." + }, + { + "key": "--prerelease", + "displayName": "Prerelease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Include pre-release packages." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "Replace all NuGet package sources to use during installation with these." + }, + { + "key": "--tool-manifest", + "displayName": "Tool Manifest", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "Path to the manifest file." + }, + { + "key": "--tool-path", + "displayName": "Tool Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "The directory where the tool will be installed." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "The version of the tool package to install." + } + ] + } + ] + }, + { + "key": "vstest", + "displayName": "vstest", + "sortOrder": 97, + "description": "Run Microsoft Test Engine (VSTest) commands.", + "parameters": [ + { + "key": "--Framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0 + }, + { + "key": "--logger", + "displayName": "Logger", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1 + }, + { + "key": "--Platform", + "displayName": "Platform", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2 + } + ] + }, + { + "key": "workload", + "displayName": "workload", + "sortOrder": 98, + "description": "Manage optional workloads.", + "parameters": [ + { + "key": "--info", + "displayName": "Info", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Display information about installed workloads." + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Display the currently installed workload version." + } + ], + "commands": [ + { + "key": "workload-clean", + "displayName": "clean", + "sortOrder": 99, + "description": "Removes workload components that may have been left behind from previous updates and uninstallations.", + "parameters": [ + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Causes clean to remove and uninstall all workload components from all SDK versions." + } + ] + }, + { + "key": "workload-config", + "displayName": "config", + "sortOrder": 100, + "description": "Modify or display workload configuration values.", + "parameters": [ + { + "key": "--update-mode", + "displayName": "Update Mode", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Controls whether updates should look for workload sets or the latest version of each individual manifest." + } + ] + }, + { + "key": "workload-elevate", + "displayName": "elevate", + "sortOrder": 101, + "description": "Start the elevated server process to facilitate MSI based installations." + }, + { + "key": "workload-history", + "displayName": "history", + "sortOrder": 102, + "description": "Shows a history of workload installation actions." + }, + { + "key": "workload-install", + "displayName": "install", + "sortOrder": 103, + "description": "Install one or more workloads.", + "parameters": [ + { + "key": "workloadId", + "displayName": "workloadId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The NuGet package ID of the workload to install.", + "isRequired": true + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Treat package source failures as warnings." + }, + { + "key": "--include-previews", + "displayName": "Include Previews", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Allow prerelease workload manifests." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Do not cache packages and http requests." + }, + { + "key": "--skip-manifest-update", + "displayName": "Skip Manifest Update", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Skip updating the workload manifests." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The NuGet package source to use during the restore.", + "aliases": [ + "-s" + ] + }, + { + "key": "--temp-dir", + "displayName": "Temp Dir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Specify a temporary directory for this command to download and extract NuGet packages (must be secure)." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "A workload version to display or one or more workloads and their versions joined by the '@' character." + } + ] + }, + { + "key": "workload-list", + "displayName": "list", + "sortOrder": 104, + "description": "List workloads available." + }, + { + "key": "workload-repair", + "displayName": "repair", + "sortOrder": 105, + "description": "Repair workload installations.", + "parameters": [ + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Treat package source failures as warnings." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Do not cache packages and http requests." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The NuGet package source to use during the restore.", + "aliases": [ + "-s" + ] + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "workload-restore", + "displayName": "restore", + "sortOrder": 106, + "description": "Restore workloads required for a project.", + "parameters": [ + { + "key": "PROJECT | SOLUTION", + "displayName": "PROJECT | SOLUTION", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The project or solution file to operate on." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Treat package source failures as warnings." + }, + { + "key": "--include-previews", + "displayName": "Include Previews", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Allow prerelease workload manifests." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Do not cache packages and http requests." + }, + { + "key": "--skip-manifest-update", + "displayName": "Skip Manifest Update", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Skip updating the workload manifests." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "The NuGet package source to use during the restore.", + "aliases": [ + "-s" + ] + }, + { + "key": "--temp-dir", + "displayName": "Temp Dir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Specify a temporary directory for this command to download and extract NuGet packages (must be secure)." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "A workload version to display or one or more workloads and their versions joined by the '@' character." + } + ] + }, + { + "key": "workload-search", + "displayName": "search", + "sortOrder": 107, + "description": "Search for available workloads.", + "parameters": [ + { + "key": "SEARCH_STRING", + "displayName": "SEARCH_STRING", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The text to search for in the IDs and descriptions of available workloads." + } + ], + "commands": [ + { + "key": "workload-search-version", + "displayName": "version", + "sortOrder": 108, + "description": "'dotnet workload search version' has three functions depending on its argument: 1.", + "parameters": [ + { + "key": "WORKLOAD_VERSION", + "displayName": "WORKLOAD_VERSION", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Output workload manifest versions associated with the provided workload version." + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Changes the format of outputted workload versions." + }, + { + "key": "--include-previews", + "displayName": "Include Previews", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "--take", + "displayName": "Take", + "parameterType": "Option", + "dataType": "Number", + "sortOrder": 3 + } + ] + } + ] + }, + { + "key": "workload-uninstall", + "displayName": "uninstall", + "sortOrder": 109, + "description": "Uninstall one or more workloads.", + "parameters": [ + { + "key": "workloadId", + "displayName": "workloadId", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The NuGet package ID of the workload to install.", + "isRequired": true + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "workload-update", + "displayName": "update", + "sortOrder": 110, + "description": "Update all installed workloads.", + "parameters": [ + { + "key": "--advertising-manifests-only", + "displayName": "Advertising Manifests Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Only update advertising manifests." + }, + { + "key": "--configfile", + "displayName": "Configfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "The NuGet configuration file to use." + }, + { + "key": "--disable-parallel", + "displayName": "Disable Parallel", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Prevent restoring multiple projects in parallel." + }, + { + "key": "--from-history", + "displayName": "From History", + "parameterType": "Option", + "dataType": "Number", + "sortOrder": 3, + "description": "Update workloads to a previous version specified by the argument." + }, + { + "key": "--from-previous-sdk", + "displayName": "From Previous Sdk", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Include workloads installed with earlier SDK versions in update." + }, + { + "key": "--ignore-failed-sources", + "displayName": "Ignore Failed Sources", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Treat package source failures as warnings." + }, + { + "key": "--include-previews", + "displayName": "Include Previews", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Allow prerelease workload manifests." + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--manifests-only", + "displayName": "Manifests Only", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "Update to the workload versions specified in the history without changing which workloads are installed." + }, + { + "key": "--no-http-cache", + "displayName": "No HTTP Cache", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Do not cache packages and http requests." + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "The NuGet package source to use during the restore.", + "aliases": [ + "-s" + ] + }, + { + "key": "--temp-dir", + "displayName": "Temp Dir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Specify a temporary directory for this command to download and extract NuGet packages (must be secure)." + }, + { + "key": "--verbosity", + "displayName": "Verbosity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-v" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "A workload version to display or one or more workloads and their versions joined by the '@' character." + } + ] + } + ] + }, + { + "key": "dev-certs", + "displayName": "dev-certs", + "sortOrder": 111, + "description": "Create and manage development certificates.", + "parameters": [ + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ], + "commands": [ + { + "key": "dev-certs-https", + "displayName": "https", + "sortOrder": 112, + "parameters": [ + { + "key": "--export-path", + "displayName": "Export Path", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Full path to the exported certificate", + "aliases": [ + "-ep" + ] + }, + { + "key": "--password", + "displayName": "Password", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Password to use when exporting the certificate with the private key into a pfx file or to encrypt the Pem exported key", + "aliases": [ + "-p" + ] + }, + { + "key": "--no-password", + "displayName": "No Password", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Explicitly request that you don't use a password for the key when exporting a certificate to a PEM format", + "aliases": [ + "-np" + ] + }, + { + "key": "--check", + "displayName": "Check", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Check for the existence of the certificate but do not perform any action", + "aliases": [ + "-c" + ] + }, + { + "key": "--clean", + "displayName": "Clean", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Cleans all HTTPS development certificates from the machine." + }, + { + "key": "--import", + "displayName": "Import", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Imports the provided HTTPS development certificate into the machine.", + "aliases": [ + "-i" + ] + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Export the certificate in the given format." + }, + { + "key": "--trust", + "displayName": "Trust", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "When not combined with the --check option, trusts the certificate on the current platform, creating one if necessary.", + "aliases": [ + "-t" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Display more debug information.", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Display warnings and errors only.", + "aliases": [ + "-q" + ] + }, + { + "key": "--check-trust-machine-readable", + "displayName": "Check Trust Machine Readable", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Same as running --check --trust, but output the results in json." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ] + } + ] + }, + { + "key": "user-jwts", + "displayName": "user-jwts", + "sortOrder": 113, + "description": "Manage JSON Web Tokens in development.", + "parameters": [ + { + "key": "--project", + "displayName": "Project", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "The path of the project to operate on.", + "aliases": [ + "-p" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The format to use for displaying output from the command.", + "aliases": [ + "-o" + ] + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ], + "commands": [ + { + "key": "user-jwts-clear", + "displayName": "clear", + "sortOrder": 114, + "description": "Remove all issued JWTs for a project", + "parameters": [ + { + "key": "--project", + "displayName": "Project", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "The path of the project to operate on.", + "aliases": [ + "-p" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The format to use for displaying output from the command.", + "aliases": [ + "-o" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Don't prompt for confirmation before deleting JWTs." + }, + { + "key": "--appsettings-file", + "displayName": "Appsettings File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "The appSettings configuration file to add the test scheme to." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ] + }, + { + "key": "user-jwts-create", + "displayName": "create", + "sortOrder": 115, + "description": "Issue a new JSON Web Token", + "parameters": [ + { + "key": "--project", + "displayName": "Project", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "The path of the project to operate on.", + "aliases": [ + "-p" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The format to use for displaying output from the command.", + "aliases": [ + "-o" + ] + }, + { + "key": "--scheme", + "displayName": "Scheme", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "The scheme name to use for the generated token." + }, + { + "key": "--name", + "displayName": "Name", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "The name of the user to create the JWT for.", + "aliases": [ + "-n" + ] + }, + { + "key": "--audience", + "displayName": "Audience", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "The audiences to create the JWT for." + }, + { + "key": "--issuer", + "displayName": "Issuer", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "The issuer of the JWT." + }, + { + "key": "--scope", + "displayName": "Scope", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "A scope claim to add to the JWT." + }, + { + "key": "--role", + "displayName": "Role", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "A role claim to add to the JWT." + }, + { + "key": "--claim", + "displayName": "Claim", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Claims to add to the JWT." + }, + { + "key": "--not-before", + "displayName": "Not Before", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "The UTC date & time the JWT should not be valid before in the format 'yyyy-MM-dd [[HH:mm[[:ss]]]]'." + }, + { + "key": "--expires-on", + "displayName": "Expires On", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "The UTC date & time the JWT should expire in the format 'yyyy-MM-dd [[[[HH:mm]]:ss]]'." + }, + { + "key": "--valid-for", + "displayName": "Valid For", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "The period the JWT should expire after." + }, + { + "key": "--appsettings-file", + "displayName": "Appsettings File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "The appSettings configuration file to add the test scheme to." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ] + }, + { + "key": "user-jwts-key", + "displayName": "key", + "sortOrder": 116, + "description": "Display or reset the signing key used to issue JWTs", + "parameters": [ + { + "key": "--project", + "displayName": "Project", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "The path of the project to operate on.", + "aliases": [ + "-p" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The format to use for displaying output from the command.", + "aliases": [ + "-o" + ] + }, + { + "key": "--scheme", + "displayName": "Scheme", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "The scheme name associated with the signing key to be reset or displayed." + }, + { + "key": "--issuer", + "displayName": "Issuer", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "The issuer associated with the signing key to be reset or displayed." + }, + { + "key": "--reset", + "displayName": "Reset", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Reset the signing key." + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Don't prompt for confirmation before resetting the signing key." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ] + }, + { + "key": "user-jwts-list", + "displayName": "list", + "sortOrder": 117, + "description": "Lists the JWTs issued for the project", + "parameters": [ + { + "key": "--project", + "displayName": "Project", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "The path of the project to operate on.", + "aliases": [ + "-p" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The format to use for displaying output from the command.", + "aliases": [ + "-o" + ] + }, + { + "key": "--show-tokens", + "displayName": "Show Tokens", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Indicates whether JWT base64 strings should be shown." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ] + }, + { + "key": "user-jwts-print", + "displayName": "print", + "sortOrder": 118, + "description": "Print the details of a given JWT", + "parameters": [ + { + "key": "id", + "displayName": "ID", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The ID of the JWT to print." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The path of the project to operate on.", + "aliases": [ + "-p" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "The format to use for displaying output from the command.", + "aliases": [ + "-o" + ] + }, + { + "key": "--show-all", + "displayName": "Show All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Whether to show all details associated with the JWT." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ] + }, + { + "key": "user-jwts-remove", + "displayName": "remove", + "sortOrder": 119, + "description": "Remove a given JWT", + "parameters": [ + { + "key": "id", + "displayName": "ID", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "The ID of the JWT to delete." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "The path of the project to operate on.", + "aliases": [ + "-p" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "The format to use for displaying output from the command.", + "aliases": [ + "-o" + ] + }, + { + "key": "--appsettings-file", + "displayName": "Appsettings File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "The appSettings configuration file to add the test scheme to." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Show help information", + "aliases": [ + "-h" + ] + } + ] + } + ] + }, + { + "key": "user-secrets", + "displayName": "user-secrets", + "sortOrder": 120, + "description": "Manage development user secrets.", + "parameters": [ + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Show help information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Show version information" + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Show verbose output", + "aliases": [ + "-v" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Path to project.", + "aliases": [ + "-p" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Path to file-based app.", + "aliases": [ + "-f" + ] + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The project configuration to use.", + "aliases": [ + "-c" + ] + }, + { + "key": "--id", + "displayName": "ID", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "The user secret ID to use." + } + ], + "commands": [ + { + "key": "user-secrets-clear", + "displayName": "clear", + "sortOrder": 121, + "description": "Deletes all the application secrets", + "parameters": [ + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Show help information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Show verbose output", + "aliases": [ + "-v" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Path to project.", + "aliases": [ + "-p" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Path to file-based app.", + "aliases": [ + "-f" + ] + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The project configuration to use.", + "aliases": [ + "-c" + ] + }, + { + "key": "--id", + "displayName": "ID", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "The user secret ID to use." + } + ] + }, + { + "key": "user-secrets-init", + "displayName": "init", + "sortOrder": 122, + "description": "Set a user secrets ID to enable secret storage", + "parameters": [ + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Show help information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Show verbose output", + "aliases": [ + "-v" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Path to project.", + "aliases": [ + "-p" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Path to file-based app.", + "aliases": [ + "-f" + ] + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "The project configuration to use.", + "aliases": [ + "-c" + ] + }, + { + "key": "--id", + "displayName": "ID", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "The user secret ID to use." + } + ] + }, + { + "key": "user-secrets-list", + "displayName": "list", + "sortOrder": 123, + "description": "Lists all the application secrets", + "parameters": [ + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Show help information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--json", + "displayName": "JSON", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Use json output." + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Show verbose output", + "aliases": [ + "-v" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Path to project.", + "aliases": [ + "-p" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Path to file-based app.", + "aliases": [ + "-f" + ] + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The project configuration to use.", + "aliases": [ + "-c" + ] + }, + { + "key": "--id", + "displayName": "ID", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "The user secret ID to use." + } + ] + }, + { + "key": "user-secrets-remove", + "displayName": "remove", + "sortOrder": 124, + "description": "Removes the specified user secret", + "parameters": [ + { + "key": "name", + "displayName": "Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Name of the secret" + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Show help information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Show verbose output", + "aliases": [ + "-v" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Path to project.", + "aliases": [ + "-p" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Path to file-based app.", + "aliases": [ + "-f" + ] + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "The project configuration to use.", + "aliases": [ + "-c" + ] + }, + { + "key": "--id", + "displayName": "ID", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "The user secret ID to use." + } + ] + }, + { + "key": "user-secrets-set", + "displayName": "set", + "sortOrder": 125, + "description": "Sets the user secret to the specified value", + "parameters": [ + { + "key": "name", + "displayName": "Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Name of the secret" + }, + { + "key": "value", + "displayName": "Value", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "description": "Value of the secret" + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Show help information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Show verbose output", + "aliases": [ + "-v" + ] + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Path to project.", + "aliases": [ + "-p" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Path to file-based app.", + "aliases": [ + "-f" + ] + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "The project configuration to use.", + "aliases": [ + "-c" + ] + }, + { + "key": "--id", + "displayName": "ID", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "The user secret ID to use." + } + ] + } + ] + }, + { + "key": "watch", + "displayName": "watch", + "sortOrder": 126, + "description": "Start a file watcher that runs a command when files change.", + "parameters": [ + { + "key": "arguments", + "displayName": "Arguments", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Arguments passed to the application that is being run" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Suppresses all output except warnings and errors", + "aliases": [ + "-q" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "Show verbose output" + }, + { + "key": "--list", + "displayName": "List", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Lists all discovered files without starting the watcher." + }, + { + "key": "--no-hot-reload", + "displayName": "No Hot Reload", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "Suppress hot reload for supported apps." + }, + { + "key": "--non-interactive", + "displayName": "Non Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Runs dotnet-watch in non-interactive mode." + }, + { + "key": "--framework", + "displayName": "Framework", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "The target framework to build for.", + "aliases": [ + "-f" + ] + }, + { + "key": "--device", + "displayName": "Device", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "The device identifier to run on (e.g." + }, + { + "key": "--project", + "displayName": "Project", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "Defines the path of the project file to run." + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory)." + }, + { + "key": "--launch-profile", + "displayName": "Launch Profile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "The name of the launch profile (if any) to use when launching the application.", + "aliases": [ + "-lp" + ] + }, + { + "key": "--no-launch-profile", + "displayName": "No Launch Profile", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Do not attempt to use launchSettings.json or [app].run.json to configure the application." + }, + { + "key": "--configuration", + "displayName": "Configuration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "The configuration to run for.", + "aliases": [ + "-c" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Allows the command to stop and wait for user input or action (for example to complete authentication)." + }, + { + "key": "--no-restore", + "displayName": "No Restore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "Do not restore the project before building." + }, + { + "key": "--sc", + "displayName": "Sc", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine.", + "aliases": [ + "--self-contained" + ] + }, + { + "key": "--no-self-contained", + "displayName": "No Self Contained", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Publish your application as a framework dependent application." + }, + { + "key": "-v", + "displayName": "V", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "Set the MSBuild verbosity level.", + "aliases": [ + "-verbosity" + ] + }, + { + "key": "--runtime", + "displayName": "Runtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "The target runtime to run for.", + "aliases": [ + "-r" + ] + }, + { + "key": "--arch", + "displayName": "Arch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 19, + "description": "The target architecture.", + "aliases": [ + "-a" + ] + }, + { + "key": "--os", + "displayName": "OS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 20, + "description": "The target operating system." + }, + { + "key": "--disable-build-servers", + "displayName": "Disable Build Servers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "Force the command to ignore any persistent build servers." + }, + { + "key": "--artifacts-path", + "displayName": "Artifacts Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 22, + "description": "The artifacts path." + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "Show help and usage information", + "aliases": [ + "-?", + "-h" + ] + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "Show version information" + } + ] + } + ], + "info": { + "description": "The dotnet command is the generic driver for the .NET SDK and runtime.", + "version": "10.0.302", + "url": "https://github.com/dotnet/sdk" + }, + "installation": { + "sources": [ + { + "key": "winget", + "method": "package_manager", + "manager": "winget", + "command": "winget install Microsoft.DotNet.SDK.10", + "url": "https://learn.microsoft.com/dotnet/core/install/windows#install-with-windows-package-manager-winget", + "os": [ + "windows" + ] + }, + { + "key": "brew", + "method": "package_manager", + "manager": "brew", + "command": "brew install --cask dotnet-sdk", + "url": "https://learn.microsoft.com/dotnet/core/install/macos", + "os": [ + "macos" + ] + }, + { + "key": "install-script", + "method": "script", + "command": "wget https://dot.net/v1/dotnet-install.sh\nchmod +x dotnet-install.sh\n./dotnet-install.sh", + "url": "https://learn.microsoft.com/dotnet/core/install/macos#install-net-with-a-script", + "os": [ + "linux", + "macos" + ] + }, + { + "key": "release-binary", + "method": "binary", + "command": "https://dotnet.microsoft.com/download/dotnet", + "url": "https://dotnet.microsoft.com/download/dotnet", + "note": "Download the SDK or runtime binary release for your OS." + } + ] + } +} diff --git a/public/tools-collection/ffmpeg.json b/public/tools-collection/ffmpeg.json new file mode 100644 index 0000000..bae9112 --- /dev/null +++ b/public/tools-collection/ffmpeg.json @@ -0,0 +1,10164 @@ +{ + "$schema": "https://commandly.divyeshio.in/specification/tool.json", + "binaryName": "ffmpeg", + "displayName": "ffmpeg", + "parameters": [ + { + "key": "outfile", + "displayName": "Outfile", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "description": "Output file URL." + }, + { + "key": "-L", + "displayName": "L", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "show license", + "group": "Print help / information / capabilities", + "aliases": [ + "-license" + ] + }, + { + "key": "-h", + "displayName": "H", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "show help", + "group": "Print help / information / capabilities", + "aliases": [ + "-?", + "-help", + "--help" + ] + }, + { + "key": "-version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "show version", + "group": "Print help / information / capabilities" + }, + { + "key": "-muxers", + "displayName": "Muxers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "show available muxers", + "group": "Print help / information / capabilities" + }, + { + "key": "-demuxers", + "displayName": "Demuxers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "show available demuxers", + "group": "Print help / information / capabilities" + }, + { + "key": "-devices", + "displayName": "Devices", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "show available devices", + "group": "Print help / information / capabilities" + }, + { + "key": "-decoders", + "displayName": "Decoders", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "show available decoders", + "group": "Print help / information / capabilities" + }, + { + "key": "-encoders", + "displayName": "Encoders", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "show available encoders", + "group": "Print help / information / capabilities" + }, + { + "key": "-filters", + "displayName": "Filters", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "show available filters", + "group": "Print help / information / capabilities" + }, + { + "key": "-pix_fmts", + "displayName": "Pix Fmts", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "show available pixel formats", + "group": "Print help / information / capabilities" + }, + { + "key": "-layouts", + "displayName": "Layouts", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "show standard channel layouts", + "group": "Print help / information / capabilities" + }, + { + "key": "-sample_fmts", + "displayName": "Sample Fmts", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "show available audio sample formats", + "group": "Print help / information / capabilities" + }, + { + "key": "-buildconf", + "displayName": "Buildconf", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "show build configuration", + "group": "Advanced information / capabilities" + }, + { + "key": "-formats", + "displayName": "Formats", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "show available formats", + "group": "Advanced information / capabilities" + }, + { + "key": "-codecs", + "displayName": "Codecs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "show available codecs", + "group": "Advanced information / capabilities" + }, + { + "key": "-bsfs", + "displayName": "Bsfs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "show available bit stream filters", + "group": "Advanced information / capabilities" + }, + { + "key": "-protocols", + "displayName": "Protocols", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "show available protocols", + "group": "Advanced information / capabilities" + }, + { + "key": "-dispositions", + "displayName": "Dispositions", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "show available stream dispositions", + "group": "Advanced information / capabilities" + }, + { + "key": "-colors", + "displayName": "Colors", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "show available color names", + "group": "Advanced information / capabilities" + }, + { + "key": "-sources", + "displayName": "Sources", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 20, + "description": "list sources of the input device", + "group": "Advanced information / capabilities" + }, + { + "key": "-sinks", + "displayName": "Sinks", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "list sinks of the output device", + "group": "Advanced information / capabilities" + }, + { + "key": "-hwaccels", + "displayName": "Hwaccels", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "show available HW acceleration methods", + "group": "Advanced information / capabilities" + }, + { + "key": "-v", + "displayName": "V", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 23, + "description": "set logging level", + "group": "Global options", + "aliases": [ + "-loglevel" + ] + }, + { + "key": "-y", + "displayName": "Y", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "overwrite output files", + "group": "Global options" + }, + { + "key": "-n", + "displayName": "N", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "never overwrite output files", + "group": "Global options" + }, + { + "key": "-print_graphs", + "displayName": "Print Graphs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "print execution graph data to stderr", + "group": "Global options" + }, + { + "key": "-print_graphs_file", + "displayName": "Print Graphs File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 27, + "description": "write execution graph data to the specified file", + "group": "Global options" + }, + { + "key": "-print_graphs_format", + "displayName": "Print Graphs Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 28, + "description": "set the output printing format (available formats are: default, compact, csv, flat, ini, json, xml, mermaid, mermaidhtml)", + "group": "Global options" + }, + { + "key": "-stats", + "displayName": "Stats", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "print progress report during encoding", + "group": "Global options" + }, + { + "key": "-report", + "displayName": "Report", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "generate a report", + "group": "Advanced global options" + }, + { + "key": "-max_alloc", + "displayName": "Max Alloc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 31, + "description": "set maximum size of a single allocated block", + "group": "Advanced global options" + }, + { + "key": "-cpuflags", + "displayName": "Cpuflags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 32, + "description": "force specific cpu flags", + "group": "Advanced global options" + }, + { + "key": "-cpucount", + "displayName": "Cpucount", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "force specific cpu count", + "group": "Advanced global options" + }, + { + "key": "-hide_banner", + "displayName": "Hide Banner", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 34, + "description": "do not show program banner", + "group": "Advanced global options" + }, + { + "key": "-ignore_unknown", + "displayName": "Ignore Unknown", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "Ignore unknown stream types", + "group": "Advanced global options" + }, + { + "key": "-copy_unknown", + "displayName": "Copy Unknown", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "Copy unknown stream types", + "group": "Advanced global options" + }, + { + "key": "-recast_media", + "displayName": "Recast Media", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "allow recasting stream type in order to force a decoder of different media type", + "group": "Advanced global options" + }, + { + "key": "-benchmark", + "displayName": "Benchmark", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "add timings for benchmarking", + "group": "Advanced global options" + }, + { + "key": "-benchmark_all", + "displayName": "Benchmark All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "add timings for each task", + "group": "Advanced global options" + }, + { + "key": "-progress", + "displayName": "Progress", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 40, + "description": "write program-readable progress information", + "group": "Advanced global options" + }, + { + "key": "-stdin", + "displayName": "Stdin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "enable or disable interaction on standard input", + "group": "Advanced global options" + }, + { + "key": "-timelimit", + "displayName": "Timelimit", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 42, + "description": "set max runtime in seconds in CPU user time", + "group": "Advanced global options" + }, + { + "key": "-dump", + "displayName": "Dump", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "dump each input packet", + "group": "Advanced global options" + }, + { + "key": "-hex", + "displayName": "Hex", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "when dumping packets, also dump the payload", + "group": "Advanced global options" + }, + { + "key": "-frame_drop_threshold", + "displayName": "Frame Drop Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 45, + "description": "frame drop threshold", + "group": "Advanced global options" + }, + { + "key": "-copyts", + "displayName": "Copyts", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46, + "description": "copy timestamps", + "group": "Advanced global options" + }, + { + "key": "-start_at_zero", + "displayName": "Start At Zero", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 47, + "description": "shift input timestamps to start at 0 when using copyts", + "group": "Advanced global options" + }, + { + "key": "-copytb", + "displayName": "Copytb", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 48, + "description": "copy input stream time base when stream copying", + "group": "Advanced global options" + }, + { + "key": "-dts_delta_threshold", + "displayName": "Dts Delta Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 49, + "description": "timestamp discontinuity delta threshold", + "group": "Advanced global options" + }, + { + "key": "-dts_error_threshold", + "displayName": "Dts Error Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 50, + "description": "timestamp error delta threshold", + "group": "Advanced global options" + }, + { + "key": "-xerror", + "displayName": "Xerror", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 51, + "description": "exit on error", + "group": "Advanced global options" + }, + { + "key": "-abort_on", + "displayName": "Abort On", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 52, + "description": "abort on the specified condition flags", + "group": "Advanced global options" + }, + { + "key": "-filter_threads", + "displayName": "Filter Threads", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 53, + "description": "number of non-complex filter threads", + "group": "Advanced global options" + }, + { + "key": "-filter_buffered_frames", + "displayName": "Filter Buffered Frames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 54, + "description": "maximum number of buffered frames in a filter graph", + "group": "Advanced global options" + }, + { + "key": "-filter_complex", + "displayName": "Filter Complex", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 55, + "description": "create a complex filtergraph", + "group": "Advanced global options", + "aliases": [ + "-lavfi" + ] + }, + { + "key": "-filter_complex_threads", + "displayName": "Filter Complex Threads", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 56, + "description": "number of threads for -filter_complex", + "group": "Advanced global options" + }, + { + "key": "-filter_complex_script", + "displayName": "Filter Complex Script", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 57, + "description": "deprecated, use -/filter_complex instead", + "group": "Advanced global options" + }, + { + "key": "-auto_conversion_filters", + "displayName": "Auto Conversion Filters", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 58, + "description": "enable automatic conversion filters globally", + "group": "Advanced global options" + }, + { + "key": "-stats_period", + "displayName": "Stats Period", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 59, + "description": "set the period at which ffmpeg updates stats and -progress output", + "group": "Advanced global options" + }, + { + "key": "-debug_ts", + "displayName": "Debug Ts", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 60, + "description": "print timestamp debugging info", + "group": "Advanced global options" + }, + { + "key": "-max_error_rate", + "displayName": "Max Error Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 61, + "description": "ratio of decoding errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.", + "group": "Advanced global options" + }, + { + "key": "-vstats", + "displayName": "Vstats", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 62, + "description": "dump video coding statistics to file", + "group": "Advanced global options" + }, + { + "key": "-vstats_file", + "displayName": "Vstats File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 63, + "description": "dump video coding statistics to file", + "group": "Advanced global options" + }, + { + "key": "-vstats_version", + "displayName": "Vstats Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 64, + "description": "Version of the vstats format to use.", + "group": "Advanced global options" + }, + { + "key": "-sdp_file", + "displayName": "Sdp File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 65, + "description": "specify a file in which to print sdp information", + "group": "Advanced global options" + }, + { + "key": "-init_hw_device", + "displayName": "Init Hw Device", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 66, + "description": "initialise hardware device", + "group": "Advanced global options" + }, + { + "key": "-filter_hw_device", + "displayName": "Filter Hw Device", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 67, + "description": "set hardware device used when filtering", + "group": "Advanced global options" + }, + { + "key": "-adrift_threshold", + "displayName": "Adrift Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 68, + "description": "deprecated, does nothing", + "group": "Advanced global options" + }, + { + "key": "-qphist", + "displayName": "Qphist", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 69, + "description": "deprecated, does nothing", + "group": "Advanced global options" + }, + { + "key": "-vsync", + "displayName": "Vsync", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 70, + "description": "set video sync method globally; deprecated, use -fps_mode", + "group": "Advanced global options" + }, + { + "key": "-f", + "displayName": "F", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 71, + "description": "force container format (auto-detected otherwise)", + "group": "Per-file options (input and output)" + }, + { + "key": "-t", + "displayName": "T", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 72, + "description": "stop transcoding after specified duration", + "group": "Per-file options (input and output)" + }, + { + "key": "-to", + "displayName": "To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 73, + "description": "stop transcoding after specified time is reached", + "group": "Per-file options (input and output)" + }, + { + "key": "-ss", + "displayName": "Ss", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 74, + "description": "start transcoding at specified time", + "group": "Per-file options (input and output)" + }, + { + "key": "-bitexact", + "displayName": "Bitexact", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 75, + "description": "bitexact mode", + "group": "Advanced per-file options (input and output)" + }, + { + "key": "-thread_queue_size", + "displayName": "Thread Queue Size", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 76, + "description": "set the maximum number of queued packets from the demuxer", + "group": "Advanced per-file options (input and output)" + }, + { + "key": "-sseof", + "displayName": "Sseof", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 77, + "description": "set the start time offset relative to EOF", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-seek_timestamp", + "displayName": "Seek Timestamp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 78, + "description": "enable/disable seeking by timestamp with -ss", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-accurate_seek", + "displayName": "Accurate Seek", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 79, + "description": "enable/disable accurate seeking with -ss", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-isync", + "displayName": "Isync", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 80, + "description": "Indicate the input index for sync reference", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-itsoffset", + "displayName": "Itsoffset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 81, + "description": "set the input ts offset", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-re", + "displayName": "Re", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 82, + "description": "read input at native frame rate; equivalent to -readrate 1", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-readrate", + "displayName": "Readrate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 83, + "description": "read input at specified rate", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-readrate_initial_burst", + "displayName": "Readrate Initial Burst", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 84, + "description": "The initial amount of input to burst read before imposing any readrate", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-readrate_catchup", + "displayName": "Readrate Catchup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 85, + "description": "Temporary readrate used to catch up if an input lags behind the specified readrate", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-dump_attachment", + "displayName": "Dump Attachment", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 86, + "description": "extract an attachment into a file", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-stream_loop", + "displayName": "Stream Loop", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 87, + "description": "set number of times input stream shall be looped", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-find_stream_info", + "displayName": "Find Stream Info", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 88, + "description": "read and decode the streams to fill missing information with heuristics", + "group": "Advanced per-file options (input-only)" + }, + { + "key": "-metadata", + "displayName": "Metadata", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 89, + "description": "add metadata", + "group": "Per-file options (output-only)" + }, + { + "key": "-map", + "displayName": "Map", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 90, + "description": "set input stream mapping", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-map_metadata", + "displayName": "Map Metadata", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 91, + "description": "set metadata information of outfile from infile", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-map_chapters", + "displayName": "Map Chapters", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 92, + "description": "set chapters mapping", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-fs", + "displayName": "Fs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 93, + "description": "set the limit file size in bytes", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-timestamp", + "displayName": "Timestamp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 94, + "description": "set the recording timestamp ('now' to set the current time)", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-program", + "displayName": "Program", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 95, + "description": "add program with specified streams", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-stream_group", + "displayName": "Stream Group", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 96, + "description": "add stream group with specified streams and group type-specific arguments", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-dframes", + "displayName": "Dframes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 97, + "description": "set the number of data frames to output", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-target", + "displayName": "Target", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 98, + "description": "specify target file type (\"vcd\", \"svcd\", \"dvd\", \"dv\" or \"dv50\" with optional prefixes \"pal-\", \"ntsc-\" or \"film-\")", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-shortest", + "displayName": "Shortest", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 99, + "description": "finish encoding within shortest input", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-shortest_buf_duration", + "displayName": "Shortest Buf Duration", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 100, + "description": "maximum buffering duration (in seconds) for the -shortest option", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-qscale", + "displayName": "Qscale", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 101, + "description": "use fixed quality scale (VBR)", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-profile", + "displayName": "Profile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 102, + "description": "set profile", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-attach", + "displayName": "Attach", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 103, + "description": "add an attachment to the output file", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-muxdelay", + "displayName": "Muxdelay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 104, + "description": "set the maximum demux-decode delay", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-muxpreload", + "displayName": "Muxpreload", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 105, + "description": "set the initial demux-decode delay", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-fpre", + "displayName": "Fpre", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 106, + "description": "set options from indicated preset file", + "group": "Advanced per-file options (output-only)" + }, + { + "key": "-c", + "displayName": "C", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 107, + "description": "select encoder/decoder ('copy' to copy stream without reencoding)", + "group": "Per-stream options", + "aliases": [ + "-codec" + ] + }, + { + "key": "-filter", + "displayName": "Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 108, + "description": "apply specified filters to audio/video", + "group": "Per-stream options" + }, + { + "key": "-pre", + "displayName": "Pre", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 109, + "description": "preset name", + "group": "Advanced per-stream options" + }, + { + "key": "-itsscale", + "displayName": "Itsscale", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 110, + "description": "set the input ts scale", + "group": "Advanced per-stream options" + }, + { + "key": "-copyinkf", + "displayName": "Copyinkf", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 111, + "description": "copy initial non-keyframes", + "group": "Advanced per-stream options" + }, + { + "key": "-copypriorss", + "displayName": "Copypriorss", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 112, + "description": "copy or discard frames before start time", + "group": "Advanced per-stream options" + }, + { + "key": "-frames", + "displayName": "Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 113, + "description": "set the number of frames to output", + "group": "Advanced per-stream options" + }, + { + "key": "-tag", + "displayName": "Tag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 114, + "description": "force codec tag/fourcc", + "group": "Advanced per-stream options" + }, + { + "key": "-q", + "displayName": "Q", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 115, + "description": "use fixed quality scale (VBR)", + "group": "Advanced per-stream options" + }, + { + "key": "-filter_script", + "displayName": "Filter Script", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 116, + "description": "deprecated, use -/filter", + "group": "Advanced per-stream options" + }, + { + "key": "-reinit_filter", + "displayName": "Reinit Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 117, + "description": "reinit filtergraph on input parameter changes", + "group": "Advanced per-stream options" + }, + { + "key": "-drop_changed", + "displayName": "Drop Changed", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 118, + "description": "drop frame instead of reiniting filtergraph on input parameter changes", + "group": "Advanced per-stream options" + }, + { + "key": "-discard", + "displayName": "Discard", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 119, + "description": "discard", + "group": "Advanced per-stream options" + }, + { + "key": "-disposition", + "displayName": "Disposition", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 120, + "description": "disposition", + "group": "Advanced per-stream options" + }, + { + "key": "-bits_per_raw_sample", + "displayName": "Bits Per Raw Sample", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 121, + "description": "set the number of bits per raw sample", + "group": "Advanced per-stream options" + }, + { + "key": "-stats_enc_pre", + "displayName": "Stats Enc Pre", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 122, + "description": "write encoding stats before encoding", + "group": "Advanced per-stream options" + }, + { + "key": "-stats_enc_post", + "displayName": "Stats Enc Post", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 123, + "description": "write encoding stats after encoding", + "group": "Advanced per-stream options" + }, + { + "key": "-stats_mux_pre", + "displayName": "Stats Mux Pre", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 124, + "description": "write packets stats before muxing", + "group": "Advanced per-stream options" + }, + { + "key": "-stats_enc_pre_fmt", + "displayName": "Stats Enc Pre Fmt", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 125, + "description": "format of the stats written with -stats_enc_pre", + "group": "Advanced per-stream options" + }, + { + "key": "-stats_enc_post_fmt", + "displayName": "Stats Enc Post Fmt", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 126, + "description": "format of the stats written with -stats_enc_post", + "group": "Advanced per-stream options" + }, + { + "key": "-stats_mux_pre_fmt", + "displayName": "Stats Mux Pre Fmt", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 127, + "description": "format of the stats written with -stats_mux_pre", + "group": "Advanced per-stream options" + }, + { + "key": "-time_base", + "displayName": "Time Base", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 128, + "description": "set the desired time base hint for output stream (1:24, 1:48000 or 0.04166, 2.0833e-5)", + "group": "Advanced per-stream options" + }, + { + "key": "-enc_time_base", + "displayName": "Enc Time Base", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 129, + "description": "set the desired time base for the encoder (1:24, 1:48000 or 0.04166, 2.0833e-5).", + "group": "Advanced per-stream options" + }, + { + "key": "-bsf", + "displayName": "Bsf", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 130, + "description": "A comma-separated list of bitstream filters", + "group": "Advanced per-stream options" + }, + { + "key": "-max_muxing_queue_size", + "displayName": "Max Muxing Queue Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 131, + "description": "maximum number of packets that can be buffered while waiting for all streams to initialize", + "group": "Advanced per-stream options" + }, + { + "key": "-muxing_queue_data_threshold", + "displayName": "Muxing Queue Data Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 132, + "description": "set the threshold after which max_muxing_queue_size is taken into account", + "group": "Advanced per-stream options" + }, + { + "key": "-r", + "displayName": "R", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 133, + "description": "override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)", + "group": "Video options" + }, + { + "key": "-aspect", + "displayName": "Aspect", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 134, + "description": "set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)", + "group": "Video options" + }, + { + "key": "-vn", + "displayName": "Vn", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 135, + "description": "disable video", + "group": "Video options" + }, + { + "key": "-vcodec", + "displayName": "Vcodec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 136, + "description": "alias for -c:v (select encoder/decoder for video streams)", + "group": "Video options" + }, + { + "key": "-vf", + "displayName": "Vf", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 137, + "description": "alias for -filter:v (apply filters to video streams)", + "group": "Video options" + }, + { + "key": "-b", + "displayName": "B", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 138, + "description": "video bitrate (please use -b:v)", + "group": "Video options" + }, + { + "key": "-vframes", + "displayName": "Vframes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 139, + "description": "set the number of video frames to output", + "group": "Advanced Video options" + }, + { + "key": "-fpsmax", + "displayName": "Fpsmax", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 140, + "description": "set max frame rate (Hz value, fraction or abbreviation)", + "group": "Advanced Video options" + }, + { + "key": "-pix_fmt", + "displayName": "Pix Fmt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 141, + "description": "set pixel format", + "group": "Advanced Video options" + }, + { + "key": "-display_rotation", + "displayName": "Display Rotation", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 142, + "description": "set pure counter-clockwise rotation in degrees for stream(s)", + "group": "Advanced Video options" + }, + { + "key": "-display_hflip", + "displayName": "Display Hflip", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 143, + "description": "set display horizontal flip for stream(s) (overrides any display rotation if it is not set)", + "group": "Advanced Video options" + }, + { + "key": "-display_vflip", + "displayName": "Display Vflip", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 144, + "description": "set display vertical flip for stream(s) (overrides any display rotation if it is not set)", + "group": "Advanced Video options" + }, + { + "key": "-rc_override", + "displayName": "Rc Override", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 145, + "description": "rate control override for specific intervals", + "group": "Advanced Video options" + }, + { + "key": "-timecode", + "displayName": "Timecode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 146, + "description": "set initial TimeCode value.", + "group": "Advanced Video options" + }, + { + "key": "-pass", + "displayName": "Pass", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 147, + "description": "select the pass number (1 to 3)", + "group": "Advanced Video options" + }, + { + "key": "-passlogfile", + "displayName": "Passlogfile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 148, + "description": "select two pass log file name prefix", + "group": "Advanced Video options" + }, + { + "key": "-intra_matrix", + "displayName": "Intra Matrix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 149, + "description": "specify intra matrix coeffs", + "group": "Advanced Video options" + }, + { + "key": "-inter_matrix", + "displayName": "Inter Matrix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 150, + "description": "specify inter matrix coeffs", + "group": "Advanced Video options" + }, + { + "key": "-chroma_intra_matrix", + "displayName": "Chroma Intra Matrix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 151, + "description": "specify intra matrix coeffs", + "group": "Advanced Video options" + }, + { + "key": "-vtag", + "displayName": "Vtag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 152, + "description": "force video tag/fourcc", + "group": "Advanced Video options" + }, + { + "key": "-fps_mode", + "displayName": "Fps Mode", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 153, + "description": "set framerate mode for matching video streams; overrides vsync", + "group": "Advanced Video options" + }, + { + "key": "-force_fps", + "displayName": "Force Fps", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 154, + "description": "force the selected framerate, disable the best supported framerate selection", + "group": "Advanced Video options" + }, + { + "key": "-streamid", + "displayName": "Streamid", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 155, + "description": "set the value of an outfile streamid", + "group": "Advanced Video options" + }, + { + "key": "-force_key_frames", + "displayName": "Force Key Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 156, + "description": "force key frames at specified timestamps", + "group": "Advanced Video options" + }, + { + "key": "-hwaccel", + "displayName": "Hwaccel", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 157, + "description": "use HW accelerated decoding", + "group": "Advanced Video options" + }, + { + "key": "-hwaccel_device", + "displayName": "Hwaccel Device", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 158, + "description": "select a device for HW acceleration", + "group": "Advanced Video options" + }, + { + "key": "-hwaccel_output_format", + "displayName": "Hwaccel Output Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 159, + "description": "select output format used with HW accelerated decoding", + "group": "Advanced Video options" + }, + { + "key": "-autorotate", + "displayName": "Autorotate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 160, + "description": "automatically insert correct rotate filters", + "group": "Advanced Video options" + }, + { + "key": "-autoscale", + "displayName": "Autoscale", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 161, + "description": "automatically insert a scale filter at the end of the filter graph", + "group": "Advanced Video options" + }, + { + "key": "-apply_cropping", + "displayName": "Apply Cropping", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 162, + "description": "select the cropping to apply", + "group": "Advanced Video options" + }, + { + "key": "-fix_sub_duration_heartbeat", + "displayName": "Fix Sub Duration Heartbeat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 163, + "description": "set this video output stream to be a heartbeat stream for fix_sub_duration, according to which subtitles should be split at random access points", + "group": "Advanced Video options" + }, + { + "key": "-vpre", + "displayName": "Vpre", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 164, + "description": "set the video options to the indicated preset", + "group": "Advanced Video options" + }, + { + "key": "-top", + "displayName": "Top", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 165, + "description": "deprecated, use the setfield video filter", + "group": "Advanced Video options" + }, + { + "key": "-aq", + "displayName": "Aq", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 166, + "description": "set audio quality (codec-specific)", + "group": "Audio options" + }, + { + "key": "-ar", + "displayName": "Ar", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 167, + "description": "set audio sampling rate (in Hz)", + "group": "Audio options" + }, + { + "key": "-ac", + "displayName": "Ac", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 168, + "description": "set number of audio channels", + "group": "Audio options" + }, + { + "key": "-an", + "displayName": "An", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 169, + "description": "disable audio", + "group": "Audio options" + }, + { + "key": "-acodec", + "displayName": "Acodec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 170, + "description": "alias for -c:a (select encoder/decoder for audio streams)", + "group": "Audio options" + }, + { + "key": "-ab", + "displayName": "Ab", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 171, + "description": "alias for -b:a (select bitrate for audio streams)", + "group": "Audio options" + }, + { + "key": "-af", + "displayName": "Af", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 172, + "description": "alias for -filter:a (apply filters to audio streams)", + "group": "Audio options" + }, + { + "key": "-aframes", + "displayName": "Aframes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 173, + "description": "set the number of audio frames to output", + "group": "Advanced Audio options" + }, + { + "key": "-apad", + "displayName": "Apad", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 174, + "description": "audio pad", + "group": "Advanced Audio options" + }, + { + "key": "-atag", + "displayName": "Atag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 175, + "description": "force audio tag/fourcc", + "group": "Advanced Audio options" + }, + { + "key": "-sample_fmt", + "displayName": "Sample Fmt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 176, + "description": "set sample format", + "group": "Advanced Audio options" + }, + { + "key": "-channel_layout", + "displayName": "Channel Layout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 177, + "description": "set channel layout", + "group": "Advanced Audio options" + }, + { + "key": "-ch_layout", + "displayName": "Ch Layout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 178, + "description": "set channel layout", + "group": "Advanced Audio options" + }, + { + "key": "-guess_layout_max", + "displayName": "Guess Layout Max", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 179, + "description": "set the maximum number of channels to try to guess the channel layout", + "group": "Advanced Audio options" + }, + { + "key": "-apre", + "displayName": "Apre", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 180, + "description": "set the audio options to the indicated preset", + "group": "Advanced Audio options" + }, + { + "key": "-sn", + "displayName": "Sn", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 181, + "description": "disable subtitle", + "group": "Subtitle options" + }, + { + "key": "-scodec", + "displayName": "Scodec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 182, + "description": "alias for -c:s (select encoder/decoder for subtitle streams)", + "group": "Subtitle options" + }, + { + "key": "-stag", + "displayName": "Stag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 183, + "description": "force subtitle tag/fourcc", + "group": "Advanced Subtitle options" + }, + { + "key": "-fix_sub_duration", + "displayName": "Fix Sub Duration", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 184, + "description": "fix subtitles duration", + "group": "Advanced Subtitle options" + }, + { + "key": "-canvas_size", + "displayName": "Canvas Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 185, + "description": "set canvas size (WxH or abbreviation)", + "group": "Advanced Subtitle options" + }, + { + "key": "-spre", + "displayName": "Spre", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 186, + "description": "set the subtitle options to the indicated preset", + "group": "Advanced Subtitle options" + }, + { + "key": "-dcodec", + "displayName": "Dcodec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 187, + "description": "alias for -c:d (select encoder/decoder for data streams)", + "group": "Data stream options" + }, + { + "key": "-dn", + "displayName": "Dn", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 188, + "description": "disable data", + "group": "Data stream options" + }, + { + "key": "-i", + "displayName": "I", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 189, + "description": "Input file URL.", + "group": "Per-file options (input-only)" + }, + { + "key": "-bt", + "displayName": "Bt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 190, + "description": "Set video bitrate tolerance (in bits/s).", + "group": "AVCodecContext" + }, + { + "key": "-flags", + "displayName": "Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 191, + "description": "set flags", + "group": "Shared private options" + }, + { + "key": "-flags2", + "displayName": "Flags2", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 192, + "group": "AVCodecContext" + }, + { + "key": "-export_side_data", + "displayName": "Export Side Data", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 193, + "description": "Export metadata as side data", + "group": "AVCodecContext" + }, + { + "key": "-g", + "displayName": "G", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 194, + "description": "set the group of picture (GOP) size", + "group": "AVCodecContext" + }, + { + "key": "-cutoff", + "displayName": "Cutoff", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 195, + "description": "set cutoff frequency ratio", + "group": "Shared private options" + }, + { + "key": "-frame_size", + "displayName": "Frame Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 196, + "description": "force frame size in bytes", + "group": "Shared private options" + }, + { + "key": "-qcomp", + "displayName": "Qcomp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 197, + "description": "video quantizer scale compression (VBR).", + "group": "AVCodecContext" + }, + { + "key": "-qblur", + "displayName": "Qblur", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 198, + "description": "video quantizer scale blur (VBR)", + "group": "AVCodecContext" + }, + { + "key": "-qmin", + "displayName": "Qmin", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 199, + "description": "minimum video quantizer scale (VBR)", + "group": "AVCodecContext" + }, + { + "key": "-qmax", + "displayName": "Qmax", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 200, + "description": "maximum video quantizer scale (VBR)", + "group": "AVCodecContext" + }, + { + "key": "-qdiff", + "displayName": "Qdiff", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 201, + "description": "maximum difference between the quantizer scales (VBR)", + "group": "AVCodecContext" + }, + { + "key": "-bf", + "displayName": "Bf", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 202, + "description": "set maximum number of B-frames between non-B-frames", + "group": "AVCodecContext" + }, + { + "key": "-b_qfactor", + "displayName": "B Qfactor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 203, + "description": "QP factor between P- and B-frames", + "group": "AVCodecContext" + }, + { + "key": "-bug", + "displayName": "Bug", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 204, + "description": "work around not autodetected encoder bugs", + "group": "AVCodecContext" + }, + { + "key": "-strict", + "displayName": "Strict", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 205, + "description": "how strictly to follow the standards", + "group": "Shared private options" + }, + { + "key": "-b_qoffset", + "displayName": "B Qoffset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 206, + "description": "QP offset between P- and B-frames", + "group": "AVCodecContext" + }, + { + "key": "-err_detect", + "displayName": "Err Detect", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 207, + "description": "set error detection flags", + "group": "Shared private options" + }, + { + "key": "-maxrate", + "displayName": "Maxrate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 208, + "description": "maximum bitrate (in bits/s).", + "group": "AVCodecContext" + }, + { + "key": "-minrate", + "displayName": "Minrate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 209, + "description": "minimum bitrate (in bits/s).", + "group": "AVCodecContext" + }, + { + "key": "-bufsize", + "displayName": "Bufsize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 210, + "description": "set ratecontrol buffer size (in bits)", + "group": "AVCodecContext" + }, + { + "key": "-i_qfactor", + "displayName": "I Qfactor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 211, + "description": "QP factor between P- and I-frames", + "group": "AVCodecContext" + }, + { + "key": "-i_qoffset", + "displayName": "I Qoffset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 212, + "description": "QP offset between P- and I-frames", + "group": "AVCodecContext" + }, + { + "key": "-dct", + "displayName": "Dct", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 213, + "description": "DCT algorithm", + "group": "AVCodecContext" + }, + { + "key": "-lumi_mask", + "displayName": "Lumi Mask", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 214, + "description": "compresses bright areas stronger than medium ones", + "group": "AVCodecContext" + }, + { + "key": "-tcplx_mask", + "displayName": "Tcplx Mask", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 215, + "description": "temporal complexity masking", + "group": "AVCodecContext" + }, + { + "key": "-scplx_mask", + "displayName": "Scplx Mask", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 216, + "description": "spatial complexity masking", + "group": "AVCodecContext" + }, + { + "key": "-p_mask", + "displayName": "P Mask", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 217, + "description": "inter masking", + "group": "AVCodecContext" + }, + { + "key": "-dark_mask", + "displayName": "Dark Mask", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 218, + "description": "compresses dark areas stronger than medium ones", + "group": "AVCodecContext" + }, + { + "key": "-idct", + "displayName": "Idct", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 219, + "description": "select IDCT implementation", + "group": "AVCodecContext" + }, + { + "key": "-ec", + "displayName": "Ec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 220, + "description": "set error concealment strategy", + "group": "AVCodecContext" + }, + { + "key": "-sar", + "displayName": "Sar", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 221, + "description": "sample aspect ratio", + "group": "AVCodecContext" + }, + { + "key": "-debug", + "displayName": "Debug", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 222, + "description": "print specific debug info", + "group": "AVCodecContext" + }, + { + "key": "-dia_size", + "displayName": "Dia Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 223, + "description": "diamond type & size for motion estimation", + "group": "AVCodecContext" + }, + { + "key": "-last_pred", + "displayName": "Last Pred", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 224, + "description": "amount of motion predictors from the previous frame", + "group": "AVCodecContext" + }, + { + "key": "-pre_dia_size", + "displayName": "Pre Dia Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 225, + "description": "diamond type & size for motion estimation pre-pass", + "group": "AVCodecContext" + }, + { + "key": "-subq", + "displayName": "Subq", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 226, + "description": "sub-pel motion estimation quality", + "group": "AVCodecContext" + }, + { + "key": "-me_range", + "displayName": "Me Range", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 227, + "description": "limit motion vectors range (1023 for DivX player)", + "group": "AVCodecContext" + }, + { + "key": "-global_quality", + "displayName": "Global Quality", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 228, + "group": "AVCodecContext" + }, + { + "key": "-mbd", + "displayName": "Mbd", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 229, + "description": "macroblock decision algorithm (high quality mode)", + "group": "AVCodecContext" + }, + { + "key": "-rc_init_occupancy", + "displayName": "Rc Init Occupancy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 230, + "description": "number of bits which should be loaded into the rc buffer before decoding starts", + "group": "AVCodecContext" + }, + { + "key": "-threads", + "displayName": "Threads", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 231, + "description": "number of threads", + "group": "Shared private options" + }, + { + "key": "-nssew", + "displayName": "Nssew", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 232, + "description": "nsse weight", + "group": "AVCodecContext" + }, + { + "key": "-skip_top", + "displayName": "Skip Top", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 233, + "description": "number of macroblock rows at the top which are skipped", + "group": "AVCodecContext" + }, + { + "key": "-skip_bottom", + "displayName": "Skip Bottom", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 234, + "description": "number of macroblock rows at the bottom which are skipped", + "group": "AVCodecContext" + }, + { + "key": "-level", + "displayName": "Level", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 235, + "description": "Specify level (as defined by Annex A)", + "group": "Shared private options" + }, + { + "key": "-lowres", + "displayName": "Lowres", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 236, + "description": "Lower the decoding resolution by a power of two", + "group": "Shared private options" + }, + { + "key": "-cmp", + "displayName": "Cmp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 237, + "description": "full-pel ME compare function", + "group": "AVCodecContext" + }, + { + "key": "-subcmp", + "displayName": "Subcmp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 238, + "description": "sub-pel ME compare function", + "group": "AVCodecContext" + }, + { + "key": "-mbcmp", + "displayName": "Mbcmp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 239, + "description": "macroblock compare function", + "group": "AVCodecContext" + }, + { + "key": "-ildctcmp", + "displayName": "Ildctcmp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 240, + "description": "interlaced DCT compare function", + "group": "AVCodecContext" + }, + { + "key": "-precmp", + "displayName": "Precmp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 241, + "description": "pre motion estimation compare function", + "group": "AVCodecContext" + }, + { + "key": "-mblmin", + "displayName": "Mblmin", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 242, + "description": "minimum macroblock Lagrange factor (VBR)", + "group": "AVCodecContext" + }, + { + "key": "-mblmax", + "displayName": "Mblmax", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 243, + "description": "maximum macroblock Lagrange factor (VBR)", + "group": "AVCodecContext" + }, + { + "key": "-skip_loop_filter", + "displayName": "Skip Loop Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 244, + "description": "skip loop filtering process for the selected frames", + "group": "AVCodecContext" + }, + { + "key": "-skip_idct", + "displayName": "Skip Idct", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 245, + "description": "skip IDCT/dequantization for the selected frames", + "group": "AVCodecContext" + }, + { + "key": "-skip_frame", + "displayName": "Skip Frame", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 246, + "description": "skip decoding for the selected frames", + "group": "AVCodecContext" + }, + { + "key": "-bidir_refine", + "displayName": "Bidir Refine", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 247, + "description": "refine the two motion vectors used in bidirectional macroblocks", + "group": "AVCodecContext" + }, + { + "key": "-keyint_min", + "displayName": "Keyint Min", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 248, + "description": "minimum interval between IDR-frames", + "group": "AVCodecContext" + }, + { + "key": "-refs", + "displayName": "Refs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 249, + "description": "reference frames to consider for motion compensation", + "group": "AVCodecContext" + }, + { + "key": "-trellis", + "displayName": "Trellis", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 250, + "description": "rate-distortion optimal quantization", + "group": "AVCodecContext" + }, + { + "key": "-mv0_threshold", + "displayName": "Mv0 Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 251, + "group": "AVCodecContext" + }, + { + "key": "-compression_level", + "displayName": "Compression Level", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 252, + "group": "AVCodecContext" + }, + { + "key": "-rc_max_vbv_use", + "displayName": "Rc Max Vbv Use", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 253, + "group": "AVCodecContext" + }, + { + "key": "-rc_min_vbv_use", + "displayName": "Rc Min Vbv Use", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 254, + "group": "AVCodecContext" + }, + { + "key": "-color_primaries", + "displayName": "Color Primaries", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 255, + "description": "color primaries", + "group": "AVCodecContext" + }, + { + "key": "-color_trc", + "displayName": "Color Trc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 256, + "description": "color transfer characteristics", + "group": "AVCodecContext" + }, + { + "key": "-colorspace", + "displayName": "Colorspace", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 257, + "description": "color space", + "group": "AVCodecContext" + }, + { + "key": "-color_range", + "displayName": "Color Range", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 258, + "description": "color range", + "group": "AVCodecContext" + }, + { + "key": "-chroma_sample_location", + "displayName": "Chroma Sample Location", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 259, + "description": "chroma sample location", + "group": "AVCodecContext" + }, + { + "key": "-alpha_mode", + "displayName": "Alpha Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 260, + "description": "alpha mode", + "group": "AVCodecContext" + }, + { + "key": "-slices", + "displayName": "Slices", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 261, + "description": "set the number of slices, used in parallelized encoding", + "group": "AVCodecContext" + }, + { + "key": "-thread_type", + "displayName": "Thread Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 262, + "description": "select multithreading type", + "group": "AVCodecContext" + }, + { + "key": "-audio_service_type", + "displayName": "Audio Service Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 263, + "description": "audio service type", + "group": "AVCodecContext" + }, + { + "key": "-request_sample_fmt", + "displayName": "Request Sample Fmt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 264, + "description": "sample format audio decoders should prefer", + "group": "AVCodecContext" + }, + { + "key": "-sub_charenc", + "displayName": "Sub Charenc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 265, + "description": "set input text subtitles character encoding", + "group": "AVCodecContext" + }, + { + "key": "-sub_charenc_mode", + "displayName": "Sub Charenc Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 266, + "description": "set input text subtitles character encoding mode", + "group": "AVCodecContext" + }, + { + "key": "-skip_alpha", + "displayName": "Skip Alpha", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 267, + "description": "Skip processing alpha", + "group": "AVCodecContext" + }, + { + "key": "-field_order", + "displayName": "Field Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 268, + "description": "Field order", + "group": "AVCodecContext" + }, + { + "key": "-dump_separator", + "displayName": "Dump Separator", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 269, + "description": "set information dump field separator", + "group": "Shared private options" + }, + { + "key": "-codec_whitelist", + "displayName": "Codec Whitelist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 270, + "description": "List of decoders that are allowed to be used", + "group": "Shared private options" + }, + { + "key": "-max_pixels", + "displayName": "Max Pixels", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 271, + "description": "Maximum number of pixels", + "group": "AVCodecContext" + }, + { + "key": "-max_samples", + "displayName": "Max Samples", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 272, + "description": "maximum number of samples decoded per call", + "group": "Shared private options" + }, + { + "key": "-hwaccel_flags", + "displayName": "Hwaccel Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 273, + "group": "AVCodecContext" + }, + { + "key": "-extra_hw_frames", + "displayName": "Extra Hw Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 274, + "description": "Number of extra hardware frames to allocate for the user", + "group": "AVCodecContext" + }, + { + "key": "-discard_damaged_percentage", + "displayName": "Discard Damaged Percentage", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 275, + "description": "Percentage of damaged samples to discard a frame", + "group": "AVCodecContext" + }, + { + "key": "-mpv_flags", + "displayName": "Mpv Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 276, + "description": "Flags common for all mpegvideo-based encoders.", + "group": "Shared private options" + }, + { + "key": "-luma_elim_threshold", + "displayName": "Luma Elim Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 277, + "description": "single coefficient elimination threshold for luminance (negative values also consider dc coefficient)", + "group": "Shared private options" + }, + { + "key": "-chroma_elim_threshold", + "displayName": "Chroma Elim Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 278, + "description": "single coefficient elimination threshold for chrominance (negative values also consider dc coefficient)", + "group": "Shared private options" + }, + { + "key": "-quantizer_noise_shaping", + "displayName": "Quantizer Noise Shaping", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 279, + "group": "Shared private options" + }, + { + "key": "-error_rate", + "displayName": "Error Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 280, + "description": "Simulate errors in the bitstream to test error concealment.", + "group": "Shared private options" + }, + { + "key": "-qsquish", + "displayName": "Qsquish", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 281, + "description": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function)", + "group": "Shared private options" + }, + { + "key": "-rc_qmod_amp", + "displayName": "Rc Qmod Amp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 282, + "description": "experimental quantizer modulation", + "group": "Shared private options" + }, + { + "key": "-rc_qmod_freq", + "displayName": "Rc Qmod Freq", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 283, + "description": "experimental quantizer modulation", + "group": "Shared private options" + }, + { + "key": "-rc_eq", + "displayName": "Rc Eq", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 284, + "description": "Set rate control equation.", + "group": "Shared private options" + }, + { + "key": "-rc_init_cplx", + "displayName": "Rc Init Cplx", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 285, + "description": "initial complexity for 1-pass encoding", + "group": "Shared private options" + }, + { + "key": "-rc_buf_aggressivity", + "displayName": "Rc Buf Aggressivity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 286, + "description": "currently useless", + "group": "Shared private options" + }, + { + "key": "-border_mask", + "displayName": "Border Mask", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 287, + "description": "increase the quantizer for macroblocks close to borders", + "group": "Shared private options" + }, + { + "key": "-lmin", + "displayName": "Lmin", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 288, + "description": "minimum Lagrange factor (VBR)", + "group": "Shared private options" + }, + { + "key": "-lmax", + "displayName": "Lmax", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 289, + "description": "maximum Lagrange factor (VBR)", + "group": "Shared private options" + }, + { + "key": "-skip_threshold", + "displayName": "Skip Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 290, + "description": "Frame skip threshold", + "group": "Shared private options" + }, + { + "key": "-skip_factor", + "displayName": "Skip Factor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 291, + "description": "Frame skip factor", + "group": "Shared private options" + }, + { + "key": "-skip_exp", + "displayName": "Skip Exp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 292, + "description": "Frame skip exponent", + "group": "Shared private options" + }, + { + "key": "-skip_cmp", + "displayName": "Skip Cmp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 293, + "description": "Frame skip compare function", + "group": "Shared private options" + }, + { + "key": "-noise_reduction", + "displayName": "Noise Reduction", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 294, + "description": "Noise reduction", + "group": "Shared private options" + }, + { + "key": "-ps", + "displayName": "Ps", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 295, + "description": "RTP payload size in bytes", + "group": "Shared private options" + }, + { + "key": "-dpi", + "displayName": "Dpi", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 296, + "description": "Set image resolution (in dots per inch)", + "group": "Shared private options" + }, + { + "key": "-dpm", + "displayName": "Dpm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 297, + "description": "Set image resolution (in dots per meter)", + "group": "Shared private options" + }, + { + "key": "-pred", + "displayName": "Pred", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 298, + "description": "Prediction method", + "group": "Shared private options" + }, + { + "key": "-quality", + "displayName": "Quality", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 299, + "description": "set quality", + "group": "Shared private options" + }, + { + "key": "-max_extra_cb_iterations", + "displayName": "Max Extra Cb Iterations", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 300, + "description": "Max extra codebook recalculation passes, more is better and slower", + "group": "cinepak" + }, + { + "key": "-skip_empty_cb", + "displayName": "Skip Empty Cb", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 301, + "description": "Avoid wasting bytes, ignore vintage MacOS decoder", + "group": "cinepak" + }, + { + "key": "-max_strips", + "displayName": "Max Strips", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 302, + "description": "Limit strips/frame, vintage compatible is 1..3, otherwise the more the better", + "group": "cinepak" + }, + { + "key": "-min_strips", + "displayName": "Min Strips", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 303, + "description": "Enforce min strips/frame, more is worse and faster, must be <= max_strips", + "group": "cinepak" + }, + { + "key": "-strip_number_adaptivity", + "displayName": "Strip Number Adaptivity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 304, + "description": "How fast the strip number adapts, more is slightly better, much slower", + "group": "cinepak" + }, + { + "key": "-dither_type", + "displayName": "Dither Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 305, + "description": "Dither type", + "group": "cljr encoder" + }, + { + "key": "-nitris_compat", + "displayName": "Nitris Compat", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 306, + "description": "encode with Avid Nitris compatibility", + "group": "dnxhd" + }, + { + "key": "-ibias", + "displayName": "Ibias", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 307, + "description": "intra quant bias", + "group": "dnxhd" + }, + { + "key": "-quant_deadzone", + "displayName": "Quant Deadzone", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 308, + "description": "Quantizer dead zone", + "group": "dvvideo encoder" + }, + { + "key": "-format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 309, + "description": "set pixel type", + "group": "Shared private options" + }, + { + "key": "-compression", + "displayName": "Compression", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 310, + "description": "set compression type", + "group": "exr" + }, + { + "key": "-gamma", + "displayName": "Gamma", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 311, + "description": "gamma correct scaling", + "group": "Shared private options" + }, + { + "key": "-slicecrc", + "displayName": "Slicecrc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 312, + "description": "Protect slices with CRCs", + "group": "ffv1 encoder" + }, + { + "key": "-coder", + "displayName": "Coder", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 313, + "description": "Coder type", + "group": "Shared private options" + }, + { + "key": "-context", + "displayName": "Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 314, + "description": "Set per-frame huffman tables", + "group": "Shared private options" + }, + { + "key": "-qtable", + "displayName": "Qtable", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 315, + "description": "Quantization table", + "group": "ffv1 encoder" + }, + { + "key": "-remap_mode", + "displayName": "Remap Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 316, + "description": "Remap Mode", + "group": "ffv1 encoder" + }, + { + "key": "-remap_optimizer", + "displayName": "Remap Optimizer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 317, + "description": "Remap Optimizer", + "group": "ffv1 encoder" + }, + { + "key": "-non_deterministic", + "displayName": "Non Deterministic", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 318, + "description": "Allow multithreading for e.g.", + "group": "Shared private options" + }, + { + "key": "-motion_est", + "displayName": "Motion Est", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 319, + "description": "motion estimation algorithm", + "group": "Shared private options" + }, + { + "key": "-mepc", + "displayName": "Mepc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 320, + "description": "Motion estimation bitrate penalty compensation (1.0 = 256)", + "group": "Shared private options" + }, + { + "key": "-mepre", + "displayName": "Mepre", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 321, + "description": "pre motion estimation", + "group": "Shared private options" + }, + { + "key": "-intra_penalty", + "displayName": "Intra Penalty", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 322, + "description": "Penalty for intra blocks in block decision", + "group": "Shared private options" + }, + { + "key": "-sc_threshold", + "displayName": "Sc Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 323, + "description": "Scene change threshold", + "group": "Shared private options" + }, + { + "key": "-gifflags", + "displayName": "Gifflags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 324, + "description": "set GIF flags", + "group": "GIF encoder" + }, + { + "key": "-gifimage", + "displayName": "Gifimage", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 325, + "description": "enable encoding only images per frame", + "group": "GIF encoder" + }, + { + "key": "-global_palette", + "displayName": "Global Palette", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 326, + "description": "write a palette to the global gif header where feasible", + "group": "GIF encoder" + }, + { + "key": "-obmc", + "displayName": "Obmc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 327, + "description": "use overlapped block motion compensation.", + "group": "Shared private options" + }, + { + "key": "-mb_info", + "displayName": "Mb Info", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 328, + "description": "Set mb_info data through AVSideData, only useful when used from the API", + "group": "Shared private options" + }, + { + "key": "-umv", + "displayName": "Umv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 329, + "description": "Use unlimited motion vectors.", + "group": "H.263p encoder" + }, + { + "key": "-aiv", + "displayName": "Aiv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 330, + "description": "Use alternative inter VLC.", + "group": "H.263p encoder" + }, + { + "key": "-structured_slices", + "displayName": "Structured Slices", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 331, + "description": "Write slice start position at every GOB header instead of just GOB number.", + "group": "H.263p encoder" + }, + { + "key": "-tile_width", + "displayName": "Tile Width", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 332, + "description": "Tile Width", + "group": "jpeg 2000 encoder" + }, + { + "key": "-tile_height", + "displayName": "Tile Height", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 333, + "description": "Tile Height", + "group": "jpeg 2000 encoder" + }, + { + "key": "-sop", + "displayName": "Sop", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 334, + "description": "SOP marker", + "group": "jpeg 2000 encoder" + }, + { + "key": "-eph", + "displayName": "Eph", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 335, + "description": "EPH marker", + "group": "jpeg 2000 encoder" + }, + { + "key": "-prog", + "displayName": "Prog", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 336, + "description": "Progression Order", + "group": "jpeg 2000 encoder" + }, + { + "key": "-layer_rates", + "displayName": "Layer Rates", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 337, + "description": "Layer Rates", + "group": "jpeg 2000 encoder" + }, + { + "key": "-huffman", + "displayName": "Huffman", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 338, + "description": "Huffman table strategy", + "group": "mjpeg encoder" + }, + { + "key": "-force_duplicated_matrix", + "displayName": "Force Duplicated Matrix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 339, + "description": "Always write luma and chroma matrix for mjpeg, useful for rtp streaming.", + "group": "mjpeg encoder" + }, + { + "key": "-gop_timecode", + "displayName": "Gop Timecode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 340, + "description": "MPEG GOP Timecode in hh:mm:ss[:;.]ff format.", + "group": "Shared private options" + }, + { + "key": "-drop_frame_timecode", + "displayName": "Drop Frame Timecode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 341, + "description": "Timecode is in drop frame format.", + "group": "Shared private options" + }, + { + "key": "-scan_offset", + "displayName": "Scan Offset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 342, + "description": "Reserve space for SVCD scan offset user data.", + "group": "Shared private options" + }, + { + "key": "-timecode_frame_start", + "displayName": "Timecode Frame Start", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 343, + "description": "GOP timecode frame start number, in non-drop-frame format", + "group": "Shared private options" + }, + { + "key": "-b_strategy", + "displayName": "B Strategy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 344, + "description": "Strategy to choose between I/P/B-frames", + "group": "Shared private options" + }, + { + "key": "-b_sensitivity", + "displayName": "B Sensitivity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 345, + "description": "Adjust sensitivity of b_frame_strategy 1", + "group": "Shared private options" + }, + { + "key": "-brd_scale", + "displayName": "Brd Scale", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 346, + "description": "Downscale frames for dynamic B-frame decision", + "group": "Shared private options" + }, + { + "key": "-intra_dc_precision", + "displayName": "Intra Dc Precision", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 347, + "description": "Precision of the DC coefficient - 8", + "group": "mpeg2video encoder" + }, + { + "key": "-intra_vlc", + "displayName": "Intra Vlc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 348, + "description": "Use MPEG-2 intra VLC table.", + "group": "mpeg2video encoder" + }, + { + "key": "-non_linear_quant", + "displayName": "Non Linear Quant", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 349, + "description": "Use nonlinear quantizer.", + "group": "mpeg2video encoder" + }, + { + "key": "-alternate_scan", + "displayName": "Alternate Scan", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 350, + "description": "Enable alternate scantable.", + "group": "Shared private options" + }, + { + "key": "-a53cc", + "displayName": "A53cc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 351, + "description": "Use A53 Closed Captions (if available)", + "group": "Shared private options" + }, + { + "key": "-seq_disp_ext", + "displayName": "Seq Disp Ext", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 352, + "description": "Write sequence_display_extension blocks.", + "group": "mpeg2video encoder" + }, + { + "key": "-video_format", + "displayName": "Video Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 353, + "description": "Video_format in the sequence_display_extension indicating the source of the video.", + "group": "mpeg2video encoder" + }, + { + "key": "-data_partitioning", + "displayName": "Data Partitioning", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 354, + "description": "Use data partitioning.", + "group": "MPEG4 encoder" + }, + { + "key": "-mpeg_quant", + "displayName": "Mpeg Quant", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 355, + "description": "Use MPEG quantizers instead of H.263", + "group": "MPEG4 encoder" + }, + { + "key": "-vendor", + "displayName": "Vendor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 356, + "description": "vendor ID", + "group": "Shared private options" + }, + { + "key": "-mbs_per_slice", + "displayName": "Mbs Per Slice", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 357, + "description": "macroblocks per slice", + "group": "ProRes encoder" + }, + { + "key": "-bits_per_mb", + "displayName": "Bits Per Mb", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 358, + "description": "desired bits per macroblock", + "group": "ProRes encoder" + }, + { + "key": "-quant_mat", + "displayName": "Quant Mat", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 359, + "description": "quantiser matrix", + "group": "ProRes encoder" + }, + { + "key": "-alpha_bits", + "displayName": "Alpha Bits", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 360, + "description": "bits for alpha plane", + "group": "ProRes encoder" + }, + { + "key": "-quake3_compat", + "displayName": "Quake3 Compat", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 361, + "description": "Whether to respect known limitations in Quake 3 decoder", + "group": "RoQ" + }, + { + "key": "-skip_frame_thresh", + "displayName": "Skip Frame Thresh", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 362, + "group": "rpza" + }, + { + "key": "-start_one_color_thresh", + "displayName": "Start One Color Thresh", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 363, + "group": "rpza" + }, + { + "key": "-continue_one_color_thresh", + "displayName": "Continue One Color Thresh", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 364, + "group": "rpza" + }, + { + "key": "-sixteen_color_thresh", + "displayName": "Sixteen Color Thresh", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 365, + "group": "rpza" + }, + { + "key": "-rle", + "displayName": "Rle", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 366, + "description": "Use run-length compression", + "group": "Shared private options" + }, + { + "key": "-memc_only", + "displayName": "Memc Only", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 367, + "description": "Only do ME/MC (I frames -> ref, P frame -> ME+MC).", + "group": "snow encoder" + }, + { + "key": "-no_bitstream", + "displayName": "No Bitstream", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 368, + "description": "Skip final bitstream writeout.", + "group": "snow encoder" + }, + { + "key": "-iterative_dia_size", + "displayName": "Iterative Dia Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 369, + "description": "Dia size for the iterative ME", + "group": "snow encoder" + }, + { + "key": "-motion-est", + "displayName": "Motion Est", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 370, + "description": "Set motion estimation method", + "group": "Shared private options" + }, + { + "key": "-compression_algo", + "displayName": "Compression Algo", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 371, + "group": "TIFF encoder" + }, + { + "key": "-tolerance", + "displayName": "Tolerance", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 372, + "description": "Max undershoot in percent", + "group": "SMPTE VC-2 encoder" + }, + { + "key": "-slice_width", + "displayName": "Slice Width", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 373, + "description": "Slice width", + "group": "SMPTE VC-2 encoder" + }, + { + "key": "-slice_height", + "displayName": "Slice Height", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 374, + "description": "Slice height", + "group": "SMPTE VC-2 encoder" + }, + { + "key": "-wavelet_depth", + "displayName": "Wavelet Depth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 375, + "description": "Transform depth", + "group": "SMPTE VC-2 encoder" + }, + { + "key": "-wavelet_type", + "displayName": "Wavelet Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 376, + "description": "Transform type", + "group": "SMPTE VC-2 encoder" + }, + { + "key": "-qm", + "displayName": "Qm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 377, + "description": "Custom quantization matrix", + "group": "SMPTE VC-2 encoder" + }, + { + "key": "-aac_coder", + "displayName": "Aac Coder", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 378, + "description": "Coding algorithm", + "group": "AAC encoder" + }, + { + "key": "-aac_ms", + "displayName": "Aac Ms", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 379, + "description": "Force M/S stereo coding", + "group": "AAC encoder" + }, + { + "key": "-aac_is", + "displayName": "Aac Is", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 380, + "description": "Intensity stereo coding", + "group": "AAC encoder" + }, + { + "key": "-aac_pns", + "displayName": "Aac Pns", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 381, + "description": "Perceptual noise substitution", + "group": "AAC encoder" + }, + { + "key": "-aac_tns", + "displayName": "Aac Tns", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 382, + "description": "Temporal noise shaping", + "group": "AAC encoder" + }, + { + "key": "-aac_pce", + "displayName": "Aac Pce", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 383, + "description": "Forces the use of PCEs", + "group": "AAC encoder" + }, + { + "key": "-center_mixlev", + "displayName": "Center Mixlev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 384, + "description": "Center Mix Level", + "group": "Shared private options" + }, + { + "key": "-surround_mixlev", + "displayName": "Surround Mixlev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 385, + "description": "Surround Mix Level", + "group": "Shared private options" + }, + { + "key": "-mixing_level", + "displayName": "Mixing Level", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 386, + "description": "Mixing Level", + "group": "Shared private options" + }, + { + "key": "-room_type", + "displayName": "Room Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 387, + "description": "Room Type", + "group": "Shared private options" + }, + { + "key": "-per_frame_metadata", + "displayName": "Per Frame Metadata", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 388, + "description": "Allow Changing Metadata Per-Frame", + "group": "Shared private options" + }, + { + "key": "-copyright", + "displayName": "Copyright", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 389, + "description": "Copyright Bit", + "group": "Shared private options" + }, + { + "key": "-dialnorm", + "displayName": "Dialnorm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 390, + "description": "Dialogue Level (dB)", + "group": "Shared private options" + }, + { + "key": "-dsur_mode", + "displayName": "Dsur Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 391, + "description": "Dolby Surround Mode", + "group": "Shared private options" + }, + { + "key": "-original", + "displayName": "Original", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 392, + "description": "Original Bit Stream", + "group": "Shared private options" + }, + { + "key": "-dmix_mode", + "displayName": "Dmix Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 393, + "description": "Preferred Stereo Downmix Mode", + "group": "Shared private options" + }, + { + "key": "-ltrt_cmixlev", + "displayName": "Ltrt Cmixlev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 394, + "description": "Lt/Rt Center Mix Level", + "group": "Shared private options" + }, + { + "key": "-ltrt_surmixlev", + "displayName": "Ltrt Surmixlev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 395, + "description": "Lt/Rt Surround Mix Level", + "group": "Shared private options" + }, + { + "key": "-loro_cmixlev", + "displayName": "Loro Cmixlev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 396, + "description": "Lo/Ro Center Mix Level", + "group": "Shared private options" + }, + { + "key": "-loro_surmixlev", + "displayName": "Loro Surmixlev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 397, + "description": "Lo/Ro Surround Mix Level", + "group": "Shared private options" + }, + { + "key": "-dsurex_mode", + "displayName": "Dsurex Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 398, + "description": "Dolby Surround EX Mode", + "group": "Shared private options" + }, + { + "key": "-dheadphone_mode", + "displayName": "Dheadphone Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 399, + "description": "Dolby Headphone Mode", + "group": "Shared private options" + }, + { + "key": "-ad_conv_type", + "displayName": "Ad Conv Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 400, + "description": "A/D Converter Type", + "group": "Shared private options" + }, + { + "key": "-stereo_rematrixing", + "displayName": "Stereo Rematrixing", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 401, + "description": "Stereo Rematrixing", + "group": "Shared private options" + }, + { + "key": "-channel_coupling", + "displayName": "Channel Coupling", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 402, + "description": "Channel Coupling", + "group": "Shared private options" + }, + { + "key": "-cpl_start_band", + "displayName": "Cpl Start Band", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 403, + "description": "Coupling Start Band", + "group": "Shared private options" + }, + { + "key": "-min_prediction_order", + "displayName": "Min Prediction Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 404, + "group": "Shared private options" + }, + { + "key": "-max_prediction_order", + "displayName": "Max Prediction Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 405, + "group": "Shared private options" + }, + { + "key": "-dca_adpcm", + "displayName": "Dca Adpcm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 406, + "description": "Use ADPCM encoding", + "group": "DCA (DTS Coherent Acoustics)" + }, + { + "key": "-lpc_coeff_precision", + "displayName": "Lpc Coeff Precision", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 407, + "description": "LPC coefficient precision", + "group": "Shared private options" + }, + { + "key": "-lpc_type", + "displayName": "Lpc Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 408, + "description": "LPC algorithm", + "group": "Shared private options" + }, + { + "key": "-lpc_passes", + "displayName": "Lpc Passes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 409, + "description": "Number of passes to use for Cholesky factorization during LPC analysis", + "group": "Shared private options" + }, + { + "key": "-min_partition_order", + "displayName": "Min Partition Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 410, + "group": "FLAC encoder" + }, + { + "key": "-max_partition_order", + "displayName": "Max Partition Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 411, + "group": "FLAC encoder" + }, + { + "key": "-prediction_order_method", + "displayName": "Prediction Order Method", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 412, + "description": "Search method for selecting prediction order", + "group": "FLAC encoder" + }, + { + "key": "-ch_mode", + "displayName": "Ch Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 413, + "description": "Stereo decorrelation mode", + "group": "FLAC encoder" + }, + { + "key": "-exact_rice_parameters", + "displayName": "Exact Rice Parameters", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 414, + "description": "Calculate rice parameters exactly", + "group": "FLAC encoder" + }, + { + "key": "-multi_dim_quant", + "displayName": "Multi Dim Quant", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 415, + "description": "Multi-dimensional quantization", + "group": "FLAC encoder" + }, + { + "key": "-max_interval", + "displayName": "Max Interval", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 416, + "description": "Max number of frames between each new header", + "group": "Shared private options" + }, + { + "key": "-codebook_search", + "displayName": "Codebook Search", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 417, + "description": "Max number of codebook searches", + "group": "Shared private options" + }, + { + "key": "-prediction_order", + "displayName": "Prediction Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 418, + "description": "Search method for selecting prediction order", + "group": "Shared private options" + }, + { + "key": "-rematrix_precision", + "displayName": "Rematrix Precision", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 419, + "description": "Rematrix coefficient precision", + "group": "Shared private options" + }, + { + "key": "-opus_delay", + "displayName": "Opus Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 420, + "description": "Maximum delay in milliseconds", + "group": "Opus encoder" + }, + { + "key": "-apply_phase_inv", + "displayName": "Apply Phase Inv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 421, + "description": "Apply intensity stereo phase inversion", + "group": "Shared private options" + }, + { + "key": "-sbc_delay", + "displayName": "Sbc Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 422, + "description": "set maximum algorithmic latency", + "group": "sbc encoder" + }, + { + "key": "-msbc", + "displayName": "Msbc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 423, + "description": "use mSBC mode (wideband speech mono SBC)", + "group": "sbc encoder" + }, + { + "key": "-joint_stereo", + "displayName": "Joint Stereo", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 424, + "description": "use joint stereo", + "group": "Shared private options" + }, + { + "key": "-optimize_mono", + "displayName": "Optimize Mono", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 425, + "group": "WavPack encoder" + }, + { + "key": "-code_size", + "displayName": "Code Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 426, + "description": "Bits per code", + "group": "Shared private options" + }, + { + "key": "-block_size", + "displayName": "Block Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 427, + "description": "set the block size", + "group": "Shared private options" + }, + { + "key": "-min_bpp", + "displayName": "Min Bpp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 428, + "description": "minimum bits-per-pixel for subtitle colors (2, 4 or 8)", + "group": "DVBSUB subtitle encoder" + }, + { + "key": "-palette", + "displayName": "Palette", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 429, + "description": "set the global palette", + "group": "Shared private options" + }, + { + "key": "-even_rows_fix", + "displayName": "Even Rows Fix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 430, + "description": "Make number of rows even (workaround for some players)", + "group": "VOBSUB subtitle encoder" + }, + { + "key": "-height", + "displayName": "Height", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 431, + "description": "Frame height, usually video height", + "group": "Shared private options" + }, + { + "key": "-aac_at_mode", + "displayName": "Aac At Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 432, + "description": "ratecontrol mode", + "group": "Shared private options" + }, + { + "key": "-aac_at_quality", + "displayName": "Aac At Quality", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 433, + "description": "quality vs speed control", + "group": "Shared private options" + }, + { + "key": "-reservoir", + "displayName": "Reservoir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 434, + "description": "use bit reservoir", + "group": "libmp3lame encoder" + }, + { + "key": "-abr", + "displayName": "Abr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 435, + "description": "use ABR", + "group": "libmp3lame encoder" + }, + { + "key": "-application", + "displayName": "Application", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 436, + "description": "Intended application type", + "group": "libopus" + }, + { + "key": "-frame_duration", + "displayName": "Frame Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 437, + "description": "Duration of a frame in milliseconds", + "group": "libopus" + }, + { + "key": "-packet_loss", + "displayName": "Packet Loss", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 438, + "description": "Expected packet loss percentage", + "group": "libopus" + }, + { + "key": "-fec", + "displayName": "Fec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 439, + "description": "FEC", + "group": "Shared private options" + }, + { + "key": "-vbr", + "displayName": "Vbr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 440, + "description": "Variable bit rate mode", + "group": "libopus" + }, + { + "key": "-mapping_family", + "displayName": "Mapping Family", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 441, + "description": "Channel Mapping Family", + "group": "libopus" + }, + { + "key": "-preset", + "displayName": "Preset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 442, + "description": "Set the encoding preset (cf.", + "group": "Shared private options" + }, + { + "key": "-crf", + "displayName": "Crf", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 443, + "description": "Select the quality for constant quality mode", + "group": "Shared private options" + }, + { + "key": "-qp", + "displayName": "Qp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 444, + "description": "Constant quantization parameter rate control method", + "group": "Shared private options" + }, + { + "key": "-svtav1-params", + "displayName": "Svtav1 Params", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 445, + "description": "Set the SVT-AV1 configuration using a :-separated list of key=value parameters", + "group": "libsvtav1" + }, + { + "key": "-dolbyvision", + "displayName": "Dolbyvision", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 446, + "description": "Enable Dolby Vision RPU coding", + "group": "Shared private options" + }, + { + "key": "-lag-in-frames", + "displayName": "Lag In Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 447, + "description": "Number of frames to look ahead for alternate reference frame selection", + "group": "Shared private options" + }, + { + "key": "-arnr-maxframes", + "displayName": "Arnr Maxframes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 448, + "description": "altref noise reduction max frame count", + "group": "Shared private options" + }, + { + "key": "-arnr-strength", + "displayName": "Arnr Strength", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 449, + "description": "altref noise reduction filter strength", + "group": "Shared private options" + }, + { + "key": "-arnr-type", + "displayName": "Arnr Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 450, + "description": "altref noise reduction filter type", + "group": "Shared private options" + }, + { + "key": "-tune", + "displayName": "Tune", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 451, + "description": "Tune the encoding to a specific scenario", + "group": "Shared private options" + }, + { + "key": "-deadline", + "displayName": "Deadline", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 452, + "description": "Time to spend encoding, in microseconds.", + "group": "Shared private options" + }, + { + "key": "-error-resilient", + "displayName": "Error Resilient", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 453, + "description": "Error resilience configuration", + "group": "Shared private options" + }, + { + "key": "-max-intra-rate", + "displayName": "Max Intra Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 454, + "description": "Maximum I-frame bitrate (pct) 0=unlimited", + "group": "Shared private options" + }, + { + "key": "-static-thresh", + "displayName": "Static Thresh", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 455, + "description": "A change threshold on blocks below which they will be skipped by the encoder", + "group": "Shared private options" + }, + { + "key": "-drop-threshold", + "displayName": "Drop Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 456, + "description": "Frame drop threshold", + "group": "Shared private options" + }, + { + "key": "-noise-sensitivity", + "displayName": "Noise Sensitivity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 457, + "description": "Noise sensitivity", + "group": "Shared private options" + }, + { + "key": "-undershoot-pct", + "displayName": "Undershoot Pct", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 458, + "description": "Datarate undershoot (min) target (%)", + "group": "Shared private options" + }, + { + "key": "-overshoot-pct", + "displayName": "Overshoot Pct", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 459, + "description": "Datarate overshoot (max) target (%)", + "group": "Shared private options" + }, + { + "key": "-ts-parameters", + "displayName": "Ts Parameters", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 460, + "description": "Temporal scaling configuration using a :-separated list of key=value parameters", + "group": "Shared private options" + }, + { + "key": "-auto-alt-ref", + "displayName": "Auto Alt Ref", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 461, + "description": "Enable use of alternate reference frames (2-pass only)", + "group": "Shared private options" + }, + { + "key": "-cpu-used", + "displayName": "CPU Used", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 462, + "description": "Quality/Speed ratio modifier", + "group": "Shared private options" + }, + { + "key": "-screen-content-mode", + "displayName": "Screen Content Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 463, + "description": "Encoder screen content mode", + "group": "libvpx-vp8 encoder" + }, + { + "key": "-speed", + "displayName": "Speed", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 464, + "group": "Shared private options" + }, + { + "key": "-vp8flags", + "displayName": "Vp8flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 465, + "group": "Shared private options" + }, + { + "key": "-arnr_max_frames", + "displayName": "Arnr Max Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 466, + "description": "altref noise reduction max frame count", + "group": "Shared private options" + }, + { + "key": "-arnr_strength", + "displayName": "Arnr Strength", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 467, + "description": "altref noise reduction filter strength", + "group": "Shared private options" + }, + { + "key": "-arnr_type", + "displayName": "Arnr Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 468, + "description": "altref noise reduction filter type", + "group": "Shared private options" + }, + { + "key": "-rc_lookahead", + "displayName": "Rc Lookahead", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 469, + "description": "Number of frames to look ahead for alternate reference frame selection", + "group": "Shared private options" + }, + { + "key": "-sharpness", + "displayName": "Sharpness", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 470, + "description": "Increase sharpness at the expense of lower PSNR", + "group": "Shared private options" + }, + { + "key": "-lossless", + "displayName": "Lossless", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 471, + "description": "Lossless mode", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-tile-columns", + "displayName": "Tile Columns", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 472, + "description": "Number of tile columns to use, log2", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-tile-rows", + "displayName": "Tile Rows", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 473, + "description": "Number of tile rows to use, log2", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-frame-parallel", + "displayName": "Frame Parallel", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 474, + "description": "Enable frame parallel decodability features", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-aq-mode", + "displayName": "Aq Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 475, + "description": "AQ method", + "group": "Shared private options" + }, + { + "key": "-row-mt", + "displayName": "Row Mt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 476, + "description": "Row based multi-threading", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-tune-content", + "displayName": "Tune Content", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 477, + "description": "Tune content type", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-corpus-complexity", + "displayName": "Corpus Complexity", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 478, + "description": "corpus vbr complexity midpoint", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-enable-tpl", + "displayName": "Enable Tpl", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 479, + "description": "Enable temporal dependency model", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-min-gf-interval", + "displayName": "Min Gf Interval", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 480, + "description": "Minimum golden/alternate reference frame interval", + "group": "libvpx-vp9 encoder" + }, + { + "key": "-fastfirstpass", + "displayName": "Fastfirstpass", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 481, + "description": "Use fast settings when encoding first pass", + "group": "Shared private options" + }, + { + "key": "-wpredp", + "displayName": "Wpredp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 482, + "description": "Weighted prediction for P-frames", + "group": "Shared private options" + }, + { + "key": "-x264opts", + "displayName": "X264opts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 483, + "description": "x264 options", + "group": "Shared private options" + }, + { + "key": "-crf_max", + "displayName": "Crf Max", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 484, + "description": "In CRF mode, prevents VBV from lowering quality beyond this point.", + "group": "Shared private options" + }, + { + "key": "-aq-strength", + "displayName": "Aq Strength", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 485, + "description": "AQ strength.", + "group": "Shared private options" + }, + { + "key": "-psy", + "displayName": "Psy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 486, + "description": "Use psychovisual optimizations.", + "group": "Shared private options" + }, + { + "key": "-psy-rd", + "displayName": "Psy Rd", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 487, + "description": "Strength of psychovisual optimization, in : format.", + "group": "Shared private options" + }, + { + "key": "-rc-lookahead", + "displayName": "Rc Lookahead", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 488, + "description": "Number of frames to look ahead for frametype and ratecontrol", + "group": "Shared private options" + }, + { + "key": "-weightb", + "displayName": "Weightb", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 489, + "description": "Weighted prediction for B-frames.", + "group": "Shared private options" + }, + { + "key": "-weightp", + "displayName": "Weightp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 490, + "description": "Weighted prediction analysis method.", + "group": "Shared private options" + }, + { + "key": "-ssim", + "displayName": "Ssim", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 491, + "description": "Calculate and print SSIM stats.", + "group": "Shared private options" + }, + { + "key": "-intra-refresh", + "displayName": "Intra Refresh", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 492, + "description": "Use Periodic Intra Refresh instead of IDR frames.", + "group": "Shared private options" + }, + { + "key": "-bluray-compat", + "displayName": "Bluray Compat", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 493, + "description": "Bluray compatibility workarounds.", + "group": "Shared private options" + }, + { + "key": "-b-bias", + "displayName": "B Bias", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 494, + "description": "Influences how often B-frames are used", + "group": "Shared private options" + }, + { + "key": "-b-pyramid", + "displayName": "B Pyramid", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 495, + "description": "Keep some B-frames as references.", + "group": "Shared private options" + }, + { + "key": "-mixed-refs", + "displayName": "Mixed Refs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 496, + "description": "One reference per partition, as opposed to one reference per macroblock", + "group": "Shared private options" + }, + { + "key": "-8x8dct", + "displayName": "8x8dct", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 497, + "description": "High profile 8x8 transform.", + "group": "Shared private options" + }, + { + "key": "-fast-pskip", + "displayName": "Fast Pskip", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 498, + "group": "Shared private options" + }, + { + "key": "-aud", + "displayName": "Aud", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 499, + "description": "Use access unit delimiters.", + "group": "Shared private options" + }, + { + "key": "-mbtree", + "displayName": "Mbtree", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 500, + "description": "Use macroblock tree ratecontrol.", + "group": "Shared private options" + }, + { + "key": "-deblock", + "displayName": "Deblock", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 501, + "description": "Loop filter parameters, in form.", + "group": "Shared private options" + }, + { + "key": "-cplxblur", + "displayName": "Cplxblur", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 502, + "description": "Reduce fluctuations in QP (before curve compression)", + "group": "Shared private options" + }, + { + "key": "-partitions", + "displayName": "Partitions", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 503, + "description": "A comma-separated list of partitions to consider.", + "group": "Shared private options" + }, + { + "key": "-direct-pred", + "displayName": "Direct Pred", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 504, + "description": "Direct MV prediction mode", + "group": "Shared private options" + }, + { + "key": "-slice-max-size", + "displayName": "Slice Max Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 505, + "description": "Limit the size of each slice in bytes", + "group": "Shared private options" + }, + { + "key": "-nal-hrd", + "displayName": "Nal Hrd", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 506, + "description": "Signal HRD information (requires vbv-bufsize; cbr not allowed in .mp4)", + "group": "Shared private options" + }, + { + "key": "-avcintra-class", + "displayName": "Avcintra Class", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 507, + "description": "AVC-Intra class 50/100/200/300/480", + "group": "Shared private options" + }, + { + "key": "-me_method", + "displayName": "Me Method", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 508, + "description": "Set motion estimation method", + "group": "Shared private options" + }, + { + "key": "-forced-idr", + "displayName": "Forced Idr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 509, + "description": "If forcing keyframes, force them as IDR frames.", + "group": "Shared private options" + }, + { + "key": "-chromaoffset", + "displayName": "Chromaoffset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 510, + "description": "QP difference between chroma and luma", + "group": "Shared private options" + }, + { + "key": "-udu_sei", + "displayName": "Udu Sei", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 511, + "description": "Use user data unregistered SEI if available", + "group": "Shared private options" + }, + { + "key": "-x264-params", + "displayName": "X264 Params", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 512, + "description": "Override the x264 configuration using a :-separated list of key=value parameters", + "group": "Shared private options" + }, + { + "key": "-x265-stats", + "displayName": "X265 Stats", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 513, + "description": "Filename for 2 pass stats", + "group": "libx265" + }, + { + "key": "-x265-params", + "displayName": "X265 Params", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 514, + "description": "set the x265 configuration using a :-separated list of key=value parameters", + "group": "libx265" + }, + { + "key": "-constant_bit_rate", + "displayName": "Constant Bit Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 515, + "description": "Require constant bit rate (macOS 13 or newer)", + "group": "Shared private options" + }, + { + "key": "-max_slice_bytes", + "displayName": "Max Slice Bytes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 516, + "description": "Set the maximum number of bytes in an H.264 slice.", + "group": "h264_videotoolbox" + }, + { + "key": "-allow_sw", + "displayName": "Allow Sw", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 517, + "description": "Allow software encoding", + "group": "Shared private options" + }, + { + "key": "-require_sw", + "displayName": "Require Sw", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 518, + "description": "Require software encoding", + "group": "Shared private options" + }, + { + "key": "-realtime", + "displayName": "Realtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 519, + "description": "Hint that encoding should happen in real-time if not faster (e.g.", + "group": "Shared private options" + }, + { + "key": "-frames_before", + "displayName": "Frames Before", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 520, + "description": "Other frames will come before the frames in this session.", + "group": "Shared private options" + }, + { + "key": "-frames_after", + "displayName": "Frames After", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 521, + "description": "Other frames will come after the frames in this session.", + "group": "Shared private options" + }, + { + "key": "-prio_speed", + "displayName": "Prio Speed", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 522, + "description": "prioritize encoding speed", + "group": "Shared private options" + }, + { + "key": "-power_efficient", + "displayName": "Power Efficient", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 523, + "description": "Set to 1 to enable more power-efficient encoding if supported.", + "group": "Shared private options" + }, + { + "key": "-spatial_aq", + "displayName": "Spatial Aq", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 524, + "description": "Set to 1 to enable spatial AQ if supported.", + "group": "Shared private options" + }, + { + "key": "-max_ref_frames", + "displayName": "Max Ref Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 525, + "description": "Sets the maximum number of reference frames.", + "group": "Shared private options" + }, + { + "key": "-alpha_quality", + "displayName": "Alpha Quality", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 526, + "description": "Compression quality for the alpha channel", + "group": "hevc_videotoolbox" + }, + { + "key": "-layer", + "displayName": "Layer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 527, + "description": "Set the decoding layer", + "group": "EXR" + }, + { + "key": "-part", + "displayName": "Part", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 528, + "description": "Set the decoding part", + "group": "EXR" + }, + { + "key": "-skip_cursor", + "displayName": "Skip Cursor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 529, + "description": "skip the cursor", + "group": "Shared private options" + }, + { + "key": "-blank_value", + "displayName": "Blank Value", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 530, + "description": "value that is used to replace BLANK pixels in data array", + "group": "FITS decoder" + }, + { + "key": "-change_field_order", + "displayName": "Change Field Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 531, + "description": "Change field order", + "group": "frwu Decoder" + }, + { + "key": "-trans_color", + "displayName": "Trans Color", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 532, + "description": "color value (ARGB) that is used instead of transparent color", + "group": "gif decoder" + }, + { + "key": "-is_avc", + "displayName": "Is Avc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 533, + "description": "is avc", + "group": "H264 Decoder" + }, + { + "key": "-nal_length_size", + "displayName": "Nal Length Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 534, + "description": "nal_length_size", + "group": "H264 Decoder" + }, + { + "key": "-enable_er", + "displayName": "Enable Er", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 535, + "description": "Enable error resilience on damaged frames (unsafe)", + "group": "H264 Decoder" + }, + { + "key": "-x264_build", + "displayName": "X264 Build", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 536, + "description": "Assume this x264 version if no x264 version found in any SEI", + "group": "H264 Decoder" + }, + { + "key": "-skip_gray", + "displayName": "Skip Gray", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 537, + "description": "Do not return gray gap frames", + "group": "H264 Decoder" + }, + { + "key": "-noref_gray", + "displayName": "Noref Gray", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 538, + "description": "Avoid using gray gap frames as references", + "group": "H264 Decoder" + }, + { + "key": "-apply_defdispwin", + "displayName": "Apply Defdispwin", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 539, + "description": "Apply default display window from VUI", + "group": "HEVC decoder" + }, + { + "key": "-strict-displaywin", + "displayName": "Strict Displaywin", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 540, + "description": "strictly apply default display window size", + "group": "HEVC decoder" + }, + { + "key": "-extern_huff", + "displayName": "Extern Huff", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 541, + "description": "Use external huffman table.", + "group": "MJPEG decoder" + }, + { + "key": "-cc_format", + "displayName": "Cc Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 542, + "description": "extract a specific Closed Captions format", + "group": "MPEG-2 video" + }, + { + "key": "-non_pcm_mode", + "displayName": "Non Pcm Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 543, + "description": "Chooses what to do with NON-PCM", + "group": "SMPTE 302M Decoder" + }, + { + "key": "-subimage", + "displayName": "Subimage", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 544, + "description": "decode subimage instead if available", + "group": "TIFF decoder" + }, + { + "key": "-thumbnail", + "displayName": "Thumbnail", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 545, + "description": "decode embedded thumbnail subimage instead if available", + "group": "TIFF decoder" + }, + { + "key": "-page", + "displayName": "Page", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 546, + "description": "page number of multi-page image to decode (starting from 1)", + "group": "TIFF decoder" + }, + { + "key": "-custom_stride", + "displayName": "Custom Stride", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 547, + "description": "Custom V210 stride", + "group": "V210 Decoder" + }, + { + "key": "-dual_mono_mode", + "displayName": "Dual Mono Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 548, + "description": "Select the channel to decode for dual mono", + "group": "Shared private options" + }, + { + "key": "-channel_order", + "displayName": "Channel Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 549, + "description": "Order in which the channels are to be exported", + "group": "Shared private options" + }, + { + "key": "-cons_noisegen", + "displayName": "Cons Noisegen", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 550, + "description": "enable consistent noise generation", + "group": "Shared private options" + }, + { + "key": "-drc_scale", + "displayName": "Drc Scale", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 551, + "description": "percentage of dynamic range compression to apply", + "group": "Shared private options" + }, + { + "key": "-heavy_compr", + "displayName": "Heavy Compr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 552, + "description": "enable heavy dynamic range compression", + "group": "Shared private options" + }, + { + "key": "-target_level", + "displayName": "Target Level", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 553, + "description": "target level in -dBFS (0 not applied)", + "group": "Shared private options" + }, + { + "key": "-downmix", + "displayName": "Downmix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 554, + "description": "Request a specific channel layout from the decoder", + "group": "Shared private options" + }, + { + "key": "-extra_bits_bug", + "displayName": "Extra Bits Bug", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 555, + "description": "Force non-standard decoding process", + "group": "alac" + }, + { + "key": "-max_order", + "displayName": "Max Order", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 556, + "description": "Sets the maximum order (ALS simple profile allows max 15)", + "group": "als" + }, + { + "key": "-core_only", + "displayName": "Core Only", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 557, + "description": "Decode core only without extensions", + "group": "DCA decoder" + }, + { + "key": "-postfilter", + "displayName": "Postfilter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 558, + "description": "enable postfilter", + "group": "Shared private options" + }, + { + "key": "-use_buggy_lpc", + "displayName": "Use Buggy Lpc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 559, + "description": "emulate old buggy lavc behavior", + "group": "FLAC decoder" + }, + { + "key": "-password", + "displayName": "Password", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 560, + "description": "set password", + "group": "Shared private options" + }, + { + "key": "-bits_per_codeword", + "displayName": "Bits Per Codeword", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 561, + "description": "Bits per G722 codeword", + "group": "g722 decoder" + }, + { + "key": "-real_time", + "displayName": "Real Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 562, + "description": "emit subtitle events as they are decoded for real-time display", + "group": "Closed Captions Decoder" + }, + { + "key": "-real_time_latency_msec", + "displayName": "Real Time Latency Msec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 563, + "description": "minimum elapsed time between emitting real-time subtitle events", + "group": "Closed Captions Decoder" + }, + { + "key": "-data_field", + "displayName": "Data Field", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 564, + "description": "select data field", + "group": "Closed Captions Decoder" + }, + { + "key": "-compute_edt", + "displayName": "Compute Edt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 565, + "description": "compute end of time using pts or timeout", + "group": "DVB Sub Decoder" + }, + { + "key": "-compute_clut", + "displayName": "Compute Clut", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 566, + "description": "compute clut when not available(-1) or only once (-2) or always(1) or never(0)", + "group": "DVB Sub Decoder" + }, + { + "key": "-dvb_substream", + "displayName": "Dvb Substream", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 567, + "group": "DVB Sub Decoder" + }, + { + "key": "-ifo_palette", + "displayName": "Ifo Palette", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 568, + "description": "obtain the global palette from .IFO file", + "group": "dvdsubdec" + }, + { + "key": "-forced_subs_only", + "displayName": "Forced Subs Only", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 569, + "description": "Only show forced subtitles", + "group": "Shared private options" + }, + { + "key": "-width", + "displayName": "Width", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 570, + "description": "Frame width, usually video width", + "group": "MOV text decoder" + }, + { + "key": "-keep_ass_markup", + "displayName": "Keep Ass Markup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 571, + "description": "Set if ASS tags must be escaped", + "group": "Shared private options" + }, + { + "key": "-max_frame_delay", + "displayName": "Max Frame Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 572, + "description": "Max frame delay", + "group": "libdav1d decoder" + }, + { + "key": "-oppoint", + "displayName": "Oppoint", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 573, + "description": "Select an operating point of the scalable bitstream", + "group": "libdav1d decoder" + }, + { + "key": "-alllayers", + "displayName": "Alllayers", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 574, + "description": "Output all spatial layers", + "group": "libdav1d decoder" + }, + { + "key": "-operating_point", + "displayName": "Operating Point", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 575, + "description": "Select an operating point of the scalable bitstream", + "group": "AV1 decoder" + }, + { + "key": "-avioflags", + "displayName": "Avioflags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 576, + "group": "AVFormatContext" + }, + { + "key": "-probesize", + "displayName": "Probesize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 577, + "description": "set probing size", + "group": "AVFormatContext" + }, + { + "key": "-formatprobesize", + "displayName": "Formatprobesize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 578, + "description": "number of bytes to probe file format", + "group": "AVFormatContext" + }, + { + "key": "-packetsize", + "displayName": "Packetsize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 579, + "description": "set packet size", + "group": "AVFormatContext" + }, + { + "key": "-fflags", + "displayName": "Fflags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 580, + "group": "AVFormatContext" + }, + { + "key": "-seek2any", + "displayName": "Seek2any", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 581, + "description": "allow seeking to non-keyframes on demuxer level when supported", + "group": "AVFormatContext" + }, + { + "key": "-analyzeduration", + "displayName": "Analyzeduration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 582, + "description": "specify how many microseconds are analyzed to probe the input", + "group": "AVFormatContext" + }, + { + "key": "-cryptokey", + "displayName": "Cryptokey", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 583, + "description": "decryption key", + "group": "AVFormatContext" + }, + { + "key": "-indexmem", + "displayName": "Indexmem", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 584, + "description": "max memory used for timestamp index (per stream)", + "group": "AVFormatContext" + }, + { + "key": "-rtbufsize", + "displayName": "Rtbufsize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 585, + "description": "max memory used for buffering real-time frames", + "group": "AVFormatContext" + }, + { + "key": "-fdebug", + "displayName": "Fdebug", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 586, + "description": "print specific debug info", + "group": "AVFormatContext" + }, + { + "key": "-max_delay", + "displayName": "Max Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 587, + "description": "maximum muxing or demuxing delay in microseconds", + "group": "AVFormatContext" + }, + { + "key": "-start_time_realtime", + "displayName": "Start Time Realtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 588, + "description": "wall-clock time when stream begins (PTS==0)", + "group": "AVFormatContext" + }, + { + "key": "-fpsprobesize", + "displayName": "Fpsprobesize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 589, + "description": "number of frames used to probe fps", + "group": "AVFormatContext" + }, + { + "key": "-audio_preload", + "displayName": "Audio Preload", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 590, + "description": "microseconds by which audio packets should be interleaved earlier", + "group": "AVFormatContext" + }, + { + "key": "-chunk_duration", + "displayName": "Chunk Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 591, + "description": "microseconds for each chunk", + "group": "AVFormatContext" + }, + { + "key": "-chunk_size", + "displayName": "Chunk Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 592, + "description": "size in bytes for each chunk", + "group": "AVFormatContext" + }, + { + "key": "-f_err_detect", + "displayName": "F Err Detect", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 593, + "description": "set error detection flags (deprecated; use err_detect, save via avconv)", + "group": "AVFormatContext" + }, + { + "key": "-use_wallclock_as_timestamps", + "displayName": "Use Wallclock As Timestamps", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 594, + "description": "use wallclock as timestamps", + "group": "AVFormatContext" + }, + { + "key": "-skip_initial_bytes", + "displayName": "Skip Initial Bytes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 595, + "description": "set number of bytes to skip before reading header and frames", + "group": "AVFormatContext" + }, + { + "key": "-correct_ts_overflow", + "displayName": "Correct Ts Overflow", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 596, + "description": "correct single timestamp overflows", + "group": "AVFormatContext" + }, + { + "key": "-flush_packets", + "displayName": "Flush Packets", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 597, + "description": "enable flushing of the I/O context after each packet", + "group": "AVFormatContext" + }, + { + "key": "-metadata_header_padding", + "displayName": "Metadata Header Padding", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 598, + "description": "set number of bytes to be written as padding in a metadata header", + "group": "AVFormatContext" + }, + { + "key": "-output_ts_offset", + "displayName": "Output Ts Offset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 599, + "description": "set output timestamp offset", + "group": "AVFormatContext" + }, + { + "key": "-max_interleave_delta", + "displayName": "Max Interleave Delta", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 600, + "description": "maximum buffering duration for interleaving", + "group": "AVFormatContext" + }, + { + "key": "-f_strict", + "displayName": "F Strict", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 601, + "description": "how strictly to follow the standards (deprecated; use strict, save via avconv)", + "group": "AVFormatContext" + }, + { + "key": "-max_ts_probe", + "displayName": "Max Ts Probe", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 602, + "description": "maximum number of packets to read while waiting for the first timestamp", + "group": "AVFormatContext" + }, + { + "key": "-avoid_negative_ts", + "displayName": "Avoid Negative Ts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 603, + "description": "shift timestamps so they start at 0", + "group": "AVFormatContext" + }, + { + "key": "-format_whitelist", + "displayName": "Format Whitelist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 604, + "description": "List of demuxers that are allowed to be used", + "group": "AVFormatContext" + }, + { + "key": "-protocol_whitelist", + "displayName": "Protocol Whitelist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 605, + "description": "List of protocols that are allowed to be used", + "group": "Shared private options" + }, + { + "key": "-protocol_blacklist", + "displayName": "Protocol Blacklist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 606, + "description": "List of protocols that are not allowed to be used", + "group": "Shared private options" + }, + { + "key": "-max_streams", + "displayName": "Max Streams", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 607, + "description": "maximum number of streams", + "group": "AVFormatContext" + }, + { + "key": "-skip_estimate_duration_from_pts", + "displayName": "Skip Estimate Duration From Pts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 608, + "description": "skip duration calculation in estimate_timings_from_pts", + "group": "AVFormatContext" + }, + { + "key": "-max_probe_packets", + "displayName": "Max Probe Packets", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 609, + "description": "Maximum number of packets to probe a codec", + "group": "AVFormatContext" + }, + { + "key": "-duration_probesize", + "displayName": "Duration Probesize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 610, + "description": "Maximum number of bytes to probe the durations of the streams in estimate_timings_from_pts", + "group": "AVFormatContext" + }, + { + "key": "-rw_timeout", + "displayName": "Rw Timeout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 611, + "description": "Timeout for IO operations (in microseconds)", + "group": "URLContext" + }, + { + "key": "-read_ahead_limit", + "displayName": "Read Ahead Limit", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 612, + "description": "Amount in bytes that may be read ahead when seeking isn't supported, -1 for unlimited", + "group": "cache" + }, + { + "key": "-key", + "displayName": "Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 613, + "description": "Private key file", + "group": "Shared private options" + }, + { + "key": "-iv", + "displayName": "Iv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 614, + "description": "AES encryption/decryption initialization vector", + "group": "crypto" + }, + { + "key": "-decryption_key", + "displayName": "Decryption Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 615, + "description": "AES decryption key", + "group": "Shared private options" + }, + { + "key": "-decryption_iv", + "displayName": "Decryption Iv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 616, + "description": "AES decryption initialization vector", + "group": "crypto" + }, + { + "key": "-encryption_key", + "displayName": "Encryption Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 617, + "description": "The media encryption key (hex)", + "group": "Shared private options" + }, + { + "key": "-encryption_iv", + "displayName": "Encryption Iv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 618, + "description": "AES encryption initialization vector", + "group": "crypto" + }, + { + "key": "-blocksize", + "displayName": "Blocksize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 619, + "description": "set I/O operation maximum block size", + "group": "Shared private options" + }, + { + "key": "-fd", + "displayName": "Fd", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 620, + "description": "set file descriptor", + "group": "Shared private options" + }, + { + "key": "-ffrtmpcrypt_tunneling", + "displayName": "Ffrtmpcrypt Tunneling", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 621, + "description": "Use a HTTP tunneling connection (RTMPTE).", + "group": "ffrtmpcrypt" + }, + { + "key": "-ffrtmphttp_tls", + "displayName": "Ffrtmphttp TLS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 622, + "description": "Use a HTTPS tunneling connection (RTMPTS).", + "group": "ffrtmphttp" + }, + { + "key": "-truncate", + "displayName": "Truncate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 623, + "description": "truncate existing files on write", + "group": "file" + }, + { + "key": "-follow", + "displayName": "Follow", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 624, + "description": "Follow a file as it is being written", + "group": "file" + }, + { + "key": "-seekable", + "displayName": "Seekable", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 625, + "description": "control seekability of connection", + "group": "Shared private options" + }, + { + "key": "-pkt_size", + "displayName": "Pkt Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 626, + "description": "Underlying protocol send packet size", + "group": "Shared private options" + }, + { + "key": "-timeout", + "displayName": "Timeout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 627, + "description": "Maximum timeout (in seconds) to wait for incoming connections.", + "group": "Shared private options" + }, + { + "key": "-ftp-write-seekable", + "displayName": "FTP Write Seekable", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 628, + "description": "control seekability of connection during encoding", + "group": "ftp" + }, + { + "key": "-ftp-anonymous-password", + "displayName": "FTP Anonymous Password", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 629, + "description": "password for anonymous login.", + "group": "ftp" + }, + { + "key": "-ftp-user", + "displayName": "FTP User", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 630, + "description": "user for FTP login.", + "group": "ftp" + }, + { + "key": "-ftp-password", + "displayName": "FTP Password", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 631, + "description": "password for FTP login.", + "group": "ftp" + }, + { + "key": "-chunked_post", + "displayName": "Chunked Post", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 632, + "description": "use chunked transfer-encoding for posts", + "group": "Shared private options" + }, + { + "key": "-http_proxy", + "displayName": "HTTP Proxy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 633, + "description": "set HTTP proxy to tunnel through", + "group": "Shared private options" + }, + { + "key": "-headers", + "displayName": "Headers", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 634, + "description": "set custom HTTP headers, can override built in default headers", + "group": "Shared private options" + }, + { + "key": "-content_type", + "displayName": "Content Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 635, + "description": "set a specific content type for the POST messages", + "group": "Shared private options" + }, + { + "key": "-user_agent", + "displayName": "User Agent", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 636, + "description": "override User-Agent header", + "group": "Shared private options" + }, + { + "key": "-referer", + "displayName": "Referer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 637, + "description": "override referer header", + "group": "Shared private options" + }, + { + "key": "-multiple_requests", + "displayName": "Multiple Requests", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 638, + "description": "use persistent connections", + "group": "Shared private options" + }, + { + "key": "-request_size", + "displayName": "Request Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 639, + "description": "size (in bytes) of requests to make", + "group": "Shared private options" + }, + { + "key": "-initial_request_size", + "displayName": "Initial Request Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 640, + "description": "size (in bytes) of initial requests made during probing / header parsing", + "group": "Shared private options" + }, + { + "key": "-post_data", + "displayName": "Post Data", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 641, + "description": "set custom HTTP post data", + "group": "Shared private options" + }, + { + "key": "-cookies", + "displayName": "Cookies", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 642, + "description": "set cookies to be sent in applicable future requests, use newline delimited Set-Cookie HTTP field value syntax", + "group": "Shared private options" + }, + { + "key": "-icy", + "displayName": "Icy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 643, + "description": "request ICY metadata", + "group": "Shared private options" + }, + { + "key": "-auth_type", + "displayName": "Auth Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 644, + "description": "HTTP authentication type", + "group": "Shared private options" + }, + { + "key": "-send_expect_100", + "displayName": "Send Expect 100", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 645, + "description": "Force sending an Expect: 100-continue header for POST", + "group": "Shared private options" + }, + { + "key": "-location", + "displayName": "Location", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 646, + "description": "The actual location of the data received", + "group": "Shared private options" + }, + { + "key": "-offset", + "displayName": "Offset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 647, + "description": "initial byte offset", + "group": "Shared private options" + }, + { + "key": "-end_offset", + "displayName": "End Offset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 648, + "description": "try to limit the request to bytes preceding this offset", + "group": "Shared private options" + }, + { + "key": "-method", + "displayName": "Method", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 649, + "description": "set the HTTP method", + "group": "Shared private options" + }, + { + "key": "-reconnect", + "displayName": "Reconnect", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 650, + "description": "auto reconnect after disconnect before EOF", + "group": "Shared private options" + }, + { + "key": "-reconnect_at_eof", + "displayName": "Reconnect At Eof", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 651, + "description": "auto reconnect at EOF", + "group": "Shared private options" + }, + { + "key": "-reconnect_on_network_error", + "displayName": "Reconnect On Network Error", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 652, + "description": "auto reconnect in case of tcp/tls error during connect", + "group": "Shared private options" + }, + { + "key": "-reconnect_on_http_error", + "displayName": "Reconnect On HTTP Error", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 653, + "description": "list of http status codes to reconnect on", + "group": "Shared private options" + }, + { + "key": "-reconnect_streamed", + "displayName": "Reconnect Streamed", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 654, + "description": "auto reconnect streamed / non seekable streams", + "group": "Shared private options" + }, + { + "key": "-reconnect_delay_max", + "displayName": "Reconnect Delay Max", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 655, + "description": "max reconnect delay in seconds after which to give up", + "group": "Shared private options" + }, + { + "key": "-reconnect_max_retries", + "displayName": "Reconnect Max Retries", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 656, + "description": "the max number of times to retry a connection", + "group": "Shared private options" + }, + { + "key": "-reconnect_delay_total_max", + "displayName": "Reconnect Delay Total Max", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 657, + "description": "max total reconnect delay in seconds after which to give up", + "group": "Shared private options" + }, + { + "key": "-respect_retry_after", + "displayName": "Respect Retry After", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 658, + "description": "respect the Retry-After header when retrying connections", + "group": "Shared private options" + }, + { + "key": "-listen", + "displayName": "Listen", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 659, + "description": "Listen for incoming rtmp connections", + "group": "Shared private options" + }, + { + "key": "-resource", + "displayName": "Resource", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 660, + "description": "The resource requested by a client", + "group": "Shared private options" + }, + { + "key": "-reply_code", + "displayName": "Reply Code", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 661, + "description": "The http status code to return to a client", + "group": "Shared private options" + }, + { + "key": "-short_seek_size", + "displayName": "Short Seek Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 662, + "description": "Threshold to favor readahead over seek.", + "group": "Shared private options" + }, + { + "key": "-max_redirects", + "displayName": "Max Redirects", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 663, + "description": "Maximum number of redirects", + "group": "Shared private options" + }, + { + "key": "-ice_genre", + "displayName": "Ice Genre", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 664, + "description": "set stream genre", + "group": "icecast" + }, + { + "key": "-ice_name", + "displayName": "Ice Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 665, + "description": "set stream description", + "group": "icecast" + }, + { + "key": "-ice_description", + "displayName": "Ice Description", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 666, + "description": "set stream description", + "group": "icecast" + }, + { + "key": "-ice_url", + "displayName": "Ice URL", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 667, + "description": "set stream website", + "group": "icecast" + }, + { + "key": "-ice_public", + "displayName": "Ice Public", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 668, + "description": "set if stream is public", + "group": "icecast" + }, + { + "key": "-legacy_icecast", + "displayName": "Legacy Icecast", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 669, + "description": "use legacy SOURCE method, for Icecast < v2.4", + "group": "icecast" + }, + { + "key": "-tls", + "displayName": "TLS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 670, + "description": "use a TLS connection", + "group": "icecast" + }, + { + "key": "-ttl", + "displayName": "TTL", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 671, + "description": "Time to live (multicast only)", + "group": "Shared private options" + }, + { + "key": "-l", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 672, + "description": "FEC L", + "group": "prompeg" + }, + { + "key": "-d", + "displayName": "D", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 673, + "description": "FEC D", + "group": "prompeg" + }, + { + "key": "-rtmp_app", + "displayName": "RTMP App", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 674, + "description": "Name of application to connect to on the RTMP server", + "group": "Shared private options" + }, + { + "key": "-rtmp_buffer", + "displayName": "RTMP Buffer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 675, + "description": "Set buffer time in milliseconds.", + "group": "Shared private options" + }, + { + "key": "-rtmp_conn", + "displayName": "RTMP Conn", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 676, + "description": "Append arbitrary AMF data to the Connect message", + "group": "Shared private options" + }, + { + "key": "-rtmp_flashver", + "displayName": "RTMP Flashver", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 677, + "description": "Version of the Flash plugin used to run the SWF player.", + "group": "Shared private options" + }, + { + "key": "-rtmp_flush_interval", + "displayName": "RTMP Flush Interval", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 678, + "description": "Number of packets flushed in the same request (RTMPT only).", + "group": "Shared private options" + }, + { + "key": "-rtmp_enhanced_codecs", + "displayName": "RTMP Enhanced Codecs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 679, + "description": "Specify the codec(s) to use in an enhanced rtmp live stream", + "group": "Shared private options" + }, + { + "key": "-rtmp_live", + "displayName": "RTMP Live", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 680, + "description": "Specify that the media is a live stream.", + "group": "Shared private options" + }, + { + "key": "-rtmp_pageurl", + "displayName": "RTMP Pageurl", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 681, + "description": "URL of the web page in which the media was embedded.", + "group": "Shared private options" + }, + { + "key": "-rtmp_playpath", + "displayName": "RTMP Playpath", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 682, + "description": "Stream identifier to play or to publish", + "group": "Shared private options" + }, + { + "key": "-rtmp_subscribe", + "displayName": "RTMP Subscribe", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 683, + "description": "Name of live stream to subscribe to.", + "group": "Shared private options" + }, + { + "key": "-rtmp_swfhash", + "displayName": "RTMP Swfhash", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 684, + "description": "SHA256 hash of the decompressed SWF file (32 bytes).", + "group": "Shared private options" + }, + { + "key": "-rtmp_swfsize", + "displayName": "RTMP Swfsize", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 685, + "description": "Size of the decompressed SWF file, required for SWFVerification.", + "group": "Shared private options" + }, + { + "key": "-rtmp_swfurl", + "displayName": "RTMP Swfurl", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 686, + "description": "URL of the SWF player.", + "group": "Shared private options" + }, + { + "key": "-rtmp_swfverify", + "displayName": "RTMP Swfverify", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 687, + "description": "URL to player swf file, compute hash/size automatically.", + "group": "Shared private options" + }, + { + "key": "-rtmp_tcurl", + "displayName": "RTMP Tcurl", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 688, + "description": "URL of the target stream.", + "group": "Shared private options" + }, + { + "key": "-rtmp_listen", + "displayName": "RTMP Listen", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 689, + "description": "Listen for incoming rtmp connections", + "group": "Shared private options" + }, + { + "key": "-tcp_nodelay", + "displayName": "TCP Nodelay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 690, + "description": "Use TCP_NODELAY to disable Nagle's algorithm", + "group": "Shared private options" + }, + { + "key": "-buffer_size", + "displayName": "Buffer Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 691, + "description": "Underlying protocol send/receive buffer size", + "group": "Shared private options" + }, + { + "key": "-rtcp_port", + "displayName": "Rtcp Port", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 692, + "description": "Custom rtcp port", + "group": "rtp" + }, + { + "key": "-rtcpport", + "displayName": "Rtcpport", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 693, + "description": "Custom rtcp port", + "group": "rtp" + }, + { + "key": "-local_rtpport", + "displayName": "Local Rtpport", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 694, + "description": "Local rtp port", + "group": "rtp" + }, + { + "key": "-localrtpport", + "displayName": "Localrtpport", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 695, + "description": "Local rtp port", + "group": "rtp" + }, + { + "key": "-localport", + "displayName": "Localport", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 696, + "description": "Local port", + "group": "Shared private options" + }, + { + "key": "-local_rtcpport", + "displayName": "Local Rtcpport", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 697, + "description": "Local rtcp port", + "group": "rtp" + }, + { + "key": "-localrtcpport", + "displayName": "Localrtcpport", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 698, + "description": "Local rtcp port", + "group": "rtp" + }, + { + "key": "-connect", + "displayName": "Connect", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 699, + "description": "set if connect() should be called on socket", + "group": "Shared private options" + }, + { + "key": "-write_to_source", + "displayName": "Write To Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 700, + "description": "Send packets to the source address of the latest received packet", + "group": "rtp" + }, + { + "key": "-dscp", + "displayName": "Dscp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 701, + "description": "DSCP class for outgoing packets", + "group": "Shared private options" + }, + { + "key": "-block", + "displayName": "Block", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 702, + "description": "Block list", + "group": "Shared private options" + }, + { + "key": "-localaddr", + "displayName": "Localaddr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 703, + "description": "Local address", + "group": "Shared private options" + }, + { + "key": "-srtp_out_suite", + "displayName": "Srtp Out Suite", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 704, + "group": "srtp" + }, + { + "key": "-srtp_out_params", + "displayName": "Srtp Out Params", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 705, + "group": "srtp" + }, + { + "key": "-srtp_in_suite", + "displayName": "Srtp In Suite", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 706, + "group": "srtp" + }, + { + "key": "-srtp_in_params", + "displayName": "Srtp In Params", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 707, + "group": "srtp" + }, + { + "key": "-start", + "displayName": "Start", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 708, + "description": "start offset", + "group": "subfile" + }, + { + "key": "-end", + "displayName": "End", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 709, + "description": "end offset", + "group": "subfile" + }, + { + "key": "-local_port", + "displayName": "Local Port", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 710, + "description": "Local port", + "group": "Shared private options" + }, + { + "key": "-local_addr", + "displayName": "Local Addr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 711, + "description": "Local address", + "group": "tcp" + }, + { + "key": "-listen_timeout", + "displayName": "Listen Timeout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 712, + "description": "set maximum timeout (in seconds) to wait for incoming connections", + "group": "Shared private options" + }, + { + "key": "-send_buffer_size", + "displayName": "Send Buffer Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 713, + "description": "Socket send buffer size (in bytes)", + "group": "tcp" + }, + { + "key": "-recv_buffer_size", + "displayName": "Recv Buffer Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 714, + "description": "Socket receive buffer size (in bytes)", + "group": "tcp" + }, + { + "key": "-tcp_keepalive", + "displayName": "TCP Keepalive", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 715, + "description": "Use TCP keepalive to detect dead connections and keep long-lived connections active.", + "group": "tcp" + }, + { + "key": "-tcp_mss", + "displayName": "TCP Mss", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 716, + "description": "Maximum segment size for outgoing TCP packets", + "group": "tcp" + }, + { + "key": "-external_sock", + "displayName": "External Sock", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 717, + "description": "Use external socket", + "group": "Shared private options" + }, + { + "key": "-use_srtp", + "displayName": "Use Srtp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 718, + "description": "Enable use_srtp DTLS extension", + "group": "Shared private options" + }, + { + "key": "-mtu", + "displayName": "MTU", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 719, + "description": "Maximum Transmission Unit", + "group": "Shared private options" + }, + { + "key": "-cert_pem", + "displayName": "Cert Pem", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 720, + "description": "Certificate PEM string", + "group": "Shared private options" + }, + { + "key": "-key_pem", + "displayName": "Key Pem", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 721, + "description": "Private key PEM string", + "group": "Shared private options" + }, + { + "key": "-ca_file", + "displayName": "CA File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 722, + "description": "Certificate Authority database file", + "group": "Shared private options" + }, + { + "key": "-cafile", + "displayName": "Cafile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 723, + "description": "Certificate Authority database file", + "group": "Shared private options" + }, + { + "key": "-tls_verify", + "displayName": "TLS Verify", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 724, + "description": "Verify the peer certificate", + "group": "Shared private options" + }, + { + "key": "-verify", + "displayName": "Verify", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 725, + "description": "Verify the peer certificate", + "group": "Shared private options" + }, + { + "key": "-cert_file", + "displayName": "Cert File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 726, + "description": "Certificate file", + "group": "Shared private options" + }, + { + "key": "-cert", + "displayName": "Cert", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 727, + "description": "Certificate file", + "group": "Shared private options" + }, + { + "key": "-key_file", + "displayName": "Key File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 728, + "description": "Private key file", + "group": "Shared private options" + }, + { + "key": "-verifyhost", + "displayName": "Verifyhost", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 729, + "description": "Verify against a specific hostname", + "group": "Shared private options" + }, + { + "key": "-bitrate", + "displayName": "Bitrate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 730, + "description": "Bits to send per second", + "group": "Shared private options" + }, + { + "key": "-burst_bits", + "displayName": "Burst Bits", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 731, + "description": "Max length of bursts in bits (when using bitrate)", + "group": "Shared private options" + }, + { + "key": "-udplite_coverage", + "displayName": "Udplite Coverage", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 732, + "description": "choose UDPLite head size which should be validated by checksum", + "group": "Shared private options" + }, + { + "key": "-reuse", + "displayName": "Reuse", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 733, + "description": "explicitly allow reusing UDP sockets", + "group": "Shared private options" + }, + { + "key": "-reuse_socket", + "displayName": "Reuse Socket", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 734, + "description": "explicitly allow reusing UDP sockets", + "group": "Shared private options" + }, + { + "key": "-broadcast", + "displayName": "Broadcast", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 735, + "description": "explicitly allow or disallow broadcast destination", + "group": "Shared private options" + }, + { + "key": "-fifo_size", + "displayName": "Fifo Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 736, + "description": "set the UDP circular buffer size (in 188-byte packets)", + "group": "Shared private options" + }, + { + "key": "-overrun_nonfatal", + "displayName": "Overrun Nonfatal", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 737, + "description": "survive in case of UDP receiving circular buffer overrun", + "group": "Shared private options" + }, + { + "key": "-type", + "displayName": "Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 738, + "description": "Socket type", + "group": "Shared private options" + }, + { + "key": "-gateway", + "displayName": "Gateway", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 739, + "description": "The gateway to ask for IPFS data.", + "group": "Shared private options" + }, + { + "key": "-write_crc", + "displayName": "Write Crc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 740, + "description": "enable checksum", + "group": "AC4 muxer" + }, + { + "key": "-write_id3v2", + "displayName": "Write Id3v2", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 741, + "description": "Enable ID3 tags writing.", + "group": "Shared private options" + }, + { + "key": "-write_apetag", + "displayName": "Write Apetag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 742, + "description": "Enable APE tag writing", + "group": "ADTS muxer" + }, + { + "key": "-write_mpeg2", + "displayName": "Write Mpeg2", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 743, + "description": "Set MPEG version to MPEG-2", + "group": "ADTS muxer" + }, + { + "key": "-id3v2_version", + "displayName": "Id3v2 Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 744, + "description": "Select ID3v2 version to write.", + "group": "Shared private options" + }, + { + "key": "-plays", + "displayName": "Plays", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 745, + "description": "Number of times to play the output: 0 - infinite loop, 1 - no loop", + "group": "APNG muxer" + }, + { + "key": "-final_delay", + "displayName": "Final Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 746, + "description": "Force delay after the last frame", + "group": "Shared private options" + }, + { + "key": "-version_major", + "displayName": "Version Major", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 747, + "description": "override file major version", + "group": "argo_asf_muxer" + }, + { + "key": "-version_minor", + "displayName": "Version Minor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 748, + "description": "override file minor version", + "group": "argo_asf_muxer" + }, + { + "key": "-name", + "displayName": "Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 749, + "description": "embedded file name (max 8 characters)", + "group": "argo_asf_muxer" + }, + { + "key": "-skip_rate_check", + "displayName": "Skip Rate Check", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 750, + "description": "skip sample rate check", + "group": "argo_cvg_muxer" + }, + { + "key": "-loop", + "displayName": "Loop", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 751, + "description": "force loop over input file sequence", + "group": "Shared private options" + }, + { + "key": "-reverb", + "displayName": "Reverb", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 752, + "description": "set reverb flag", + "group": "argo_cvg_muxer" + }, + { + "key": "-packet_size", + "displayName": "Packet Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 753, + "description": "Packet size", + "group": "Shared private options" + }, + { + "key": "-ignore_readorder", + "displayName": "Ignore Readorder", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 754, + "description": "write events immediately, even if they're out-of-order", + "group": "ass muxer" + }, + { + "key": "-loopstart", + "displayName": "Loopstart", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 755, + "description": "Loopstart position in milliseconds.", + "group": "AST muxer" + }, + { + "key": "-loopend", + "displayName": "Loopend", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 756, + "description": "Loopend position in milliseconds.", + "group": "AST muxer" + }, + { + "key": "-reserve_index_space", + "displayName": "Reserve Index Space", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 757, + "description": "reserve a given amount of space (in bytes) at the beginning of the file for the index (cues)", + "group": "Shared private options" + }, + { + "key": "-write_channel_mask", + "displayName": "Write Channel Mask", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 758, + "description": "write channel mask into wave format header", + "group": "AVI muxer" + }, + { + "key": "-flipped_raw_rgb", + "displayName": "Flipped Raw Rgb", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 759, + "description": "store raw RGB bitmaps in VFW mode in bottom-up mode", + "group": "Shared private options" + }, + { + "key": "-movie_timescale", + "displayName": "Movie Timescale", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 760, + "description": "set movie timescale", + "group": "Shared private options" + }, + { + "key": "-adaptation_sets", + "displayName": "Adaptation Sets", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 761, + "description": "Adaptation sets.", + "group": "Shared private options" + }, + { + "key": "-dash_segment_type", + "displayName": "Dash Segment Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 762, + "description": "set dash segment files type", + "group": "dash muxer" + }, + { + "key": "-extra_window_size", + "displayName": "Extra Window Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 763, + "description": "number of fragments kept outside of the manifest before removing from disk", + "group": "Shared private options" + }, + { + "key": "-format_options", + "displayName": "Format Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 764, + "description": "set list of options for the container format (mp4/webm) used for dash", + "group": "dash muxer" + }, + { + "key": "-frag_duration", + "displayName": "Frag Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 765, + "description": "Maximum fragment duration", + "group": "Shared private options" + }, + { + "key": "-frag_type", + "displayName": "Frag Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 766, + "description": "set type of interval for fragments", + "group": "dash muxer" + }, + { + "key": "-global_sidx", + "displayName": "Global Sidx", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 767, + "description": "Write global SIDX atom.", + "group": "dash muxer" + }, + { + "key": "-hls_master_name", + "displayName": "HLS Master Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 768, + "description": "HLS master playlist name", + "group": "dash muxer" + }, + { + "key": "-hls_playlist", + "displayName": "HLS Playlist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 769, + "description": "Generate HLS playlist files(master.m3u8, media_%d.m3u8)", + "group": "dash muxer" + }, + { + "key": "-http_opts", + "displayName": "HTTP Opts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 770, + "description": "HTTP protocol options", + "group": "dash muxer" + }, + { + "key": "-http_persistent", + "displayName": "HTTP Persistent", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 771, + "description": "Use persistent HTTP connections", + "group": "Shared private options" + }, + { + "key": "-http_user_agent", + "displayName": "HTTP User Agent", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 772, + "description": "override User-Agent field in HTTP header", + "group": "Shared private options" + }, + { + "key": "-ignore_io_errors", + "displayName": "Ignore IO Errors", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 773, + "description": "Ignore IO errors during open and write.", + "group": "Shared private options" + }, + { + "key": "-index_correction", + "displayName": "Index Correction", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 774, + "description": "Enable/Disable segment index correction logic", + "group": "dash muxer" + }, + { + "key": "-init_seg_name", + "displayName": "Init Seg Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 775, + "description": "DASH-templated name to used for the initialization segment", + "group": "dash muxer" + }, + { + "key": "-ldash", + "displayName": "Ldash", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 776, + "description": "Enable Low-latency dash.", + "group": "dash muxer" + }, + { + "key": "-lhls", + "displayName": "Lhls", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 777, + "description": "Enable Low-latency HLS(Experimental).", + "group": "dash muxer" + }, + { + "key": "-master_m3u8_publish_rate", + "displayName": "Master M3u8 Publish Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 778, + "description": "Publish master playlist every after this many segment intervals", + "group": "dash muxer" + }, + { + "key": "-max_playback_rate", + "displayName": "Max Playback Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 779, + "description": "Set desired maximum playback rate", + "group": "dash muxer" + }, + { + "key": "-media_seg_name", + "displayName": "Media Seg Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 780, + "description": "DASH-templated name to used for the media segments", + "group": "dash muxer" + }, + { + "key": "-min_playback_rate", + "displayName": "Min Playback Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 781, + "description": "Set desired minimum playback rate", + "group": "dash muxer" + }, + { + "key": "-mpd_profile", + "displayName": "Mpd Profile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 782, + "description": "Set profiles.", + "group": "dash muxer" + }, + { + "key": "-remove_at_exit", + "displayName": "Remove At Exit", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 783, + "description": "remove all fragments when finished", + "group": "Shared private options" + }, + { + "key": "-seg_duration", + "displayName": "Seg Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 784, + "description": "segment duration (in seconds, fractional value can be set)", + "group": "dash muxer" + }, + { + "key": "-single_file", + "displayName": "Single File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 785, + "description": "Store all segments in one file, accessed using byte ranges", + "group": "dash muxer" + }, + { + "key": "-single_file_name", + "displayName": "Single File Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 786, + "description": "DASH-templated name to be used for baseURL.", + "group": "dash muxer" + }, + { + "key": "-streaming", + "displayName": "Streaming", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 787, + "description": "Enable/Disable streaming mode of output.", + "group": "dash muxer" + }, + { + "key": "-target_latency", + "displayName": "Target Latency", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 788, + "description": "Set desired target latency for Low-latency dash", + "group": "dash muxer" + }, + { + "key": "-update_period", + "displayName": "Update Period", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 789, + "description": "Set the mpd update interval", + "group": "dash muxer" + }, + { + "key": "-use_template", + "displayName": "Use Template", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 790, + "description": "Use SegmentTemplate instead of SegmentList", + "group": "dash muxer" + }, + { + "key": "-use_timeline", + "displayName": "Use Timeline", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 791, + "description": "Use SegmentTimeline in SegmentTemplate", + "group": "dash muxer" + }, + { + "key": "-utc_timing_url", + "displayName": "Utc Timing URL", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 792, + "description": "URL of the page that will return the UTC timestamp in ISO format", + "group": "Shared private options" + }, + { + "key": "-window_size", + "displayName": "Window Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 793, + "description": "number of fragments kept in the manifest", + "group": "Shared private options" + }, + { + "key": "-write_prft", + "displayName": "Write Prft", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 794, + "description": "Write producer reference time box with specified time source", + "group": "Shared private options" + }, + { + "key": "-brand", + "displayName": "Brand", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 795, + "description": "Override major brand", + "group": "Shared private options" + }, + { + "key": "-empty_hdlr_name", + "displayName": "Empty Hdlr Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 796, + "description": "write zero-length name string in hdlr atoms within mdia and minf atoms", + "group": "Shared private options" + }, + { + "key": "-encryption_kid", + "displayName": "Encryption Kid", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 797, + "description": "The media encryption key identifier (hex)", + "group": "Shared private options" + }, + { + "key": "-encryption_scheme", + "displayName": "Encryption Scheme", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 798, + "description": "Configures the encryption scheme, allowed values are none, cenc-aes-ctr", + "group": "Shared private options" + }, + { + "key": "-frag_interleave", + "displayName": "Frag Interleave", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 799, + "description": "Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead)", + "group": "Shared private options" + }, + { + "key": "-frag_size", + "displayName": "Frag Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 800, + "description": "Maximum fragment size", + "group": "Shared private options" + }, + { + "key": "-fragment_index", + "displayName": "Fragment Index", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 801, + "description": "Fragment number of the next fragment", + "group": "Shared private options" + }, + { + "key": "-iods_audio_profile", + "displayName": "Iods Audio Profile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 802, + "description": "iods audio profile atom.", + "group": "Shared private options" + }, + { + "key": "-iods_video_profile", + "displayName": "Iods Video Profile", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 803, + "description": "iods video profile atom.", + "group": "Shared private options" + }, + { + "key": "-ism_lookahead", + "displayName": "Ism Lookahead", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 804, + "description": "Number of lookahead entries for ISM files", + "group": "Shared private options" + }, + { + "key": "-movflags", + "displayName": "Movflags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 805, + "description": "MOV muxer flags", + "group": "Shared private options" + }, + { + "key": "-moov_size", + "displayName": "Moov Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 806, + "description": "maximum moov size so it can be placed at the begin", + "group": "Shared private options" + }, + { + "key": "-min_frag_duration", + "displayName": "Min Frag Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 807, + "description": "Minimum fragment duration", + "group": "Shared private options" + }, + { + "key": "-mov_gamma", + "displayName": "Mov Gamma", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 808, + "description": "gamma value for gama atom", + "group": "Shared private options" + }, + { + "key": "-rtpflags", + "displayName": "Rtpflags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 809, + "description": "RTP muxer flags", + "group": "Shared private options" + }, + { + "key": "-skip_iods", + "displayName": "Skip Iods", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 810, + "description": "Skip writing iods atom.", + "group": "Shared private options" + }, + { + "key": "-use_editlist", + "displayName": "Use Editlist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 811, + "description": "use edit list", + "group": "Shared private options" + }, + { + "key": "-use_stream_ids_as_track_ids", + "displayName": "Use Stream IDS As Track IDS", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 812, + "description": "use stream ids as track ids", + "group": "Shared private options" + }, + { + "key": "-video_track_timescale", + "displayName": "Video Track Timescale", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 813, + "description": "set timescale of all video tracks", + "group": "Shared private options" + }, + { + "key": "-write_btrt", + "displayName": "Write Btrt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 814, + "description": "force or disable writing btrt", + "group": "Shared private options" + }, + { + "key": "-write_tmcd", + "displayName": "Write Tmcd", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 815, + "description": "force or disable writing tmcd", + "group": "Shared private options" + }, + { + "key": "-attempt_recovery", + "displayName": "Attempt Recovery", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 816, + "description": "Attempt recovery in case of failure", + "group": "Fifo muxer" + }, + { + "key": "-drop_pkts_on_overflow", + "displayName": "Drop Pkts On Overflow", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 817, + "description": "Drop packets on fifo queue overflow not to block encoder", + "group": "Fifo muxer" + }, + { + "key": "-fifo_format", + "displayName": "Fifo Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 818, + "description": "Target muxer", + "group": "Fifo muxer" + }, + { + "key": "-format_opts", + "displayName": "Format Opts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 819, + "description": "Options to be passed to underlying muxer", + "group": "Fifo muxer" + }, + { + "key": "-max_recovery_attempts", + "displayName": "Max Recovery Attempts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 820, + "description": "Maximal number of recovery attempts", + "group": "Fifo muxer" + }, + { + "key": "-queue_size", + "displayName": "Queue Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 821, + "description": "Size of fifo queue", + "group": "Fifo muxer" + }, + { + "key": "-recovery_wait_streamtime", + "displayName": "Recovery Wait Streamtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 822, + "description": "Use stream time instead of real time while waiting for recovery", + "group": "Fifo muxer" + }, + { + "key": "-recovery_wait_time", + "displayName": "Recovery Wait Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 823, + "description": "Waiting time between recovery attempts", + "group": "Fifo muxer" + }, + { + "key": "-recover_any_error", + "displayName": "Recover Any Error", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 824, + "description": "Attempt recovery regardless of type of the error", + "group": "Fifo muxer" + }, + { + "key": "-restart_with_keyframe", + "displayName": "Restart With Keyframe", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 825, + "description": "Wait for keyframe when restarting output", + "group": "Fifo muxer" + }, + { + "key": "-timeshift", + "displayName": "Timeshift", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 826, + "description": "Delay fifo output", + "group": "Fifo muxer" + }, + { + "key": "-write_header", + "displayName": "Write Header", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 827, + "description": "Write the file header", + "group": "flac muxer" + }, + { + "key": "-flvflags", + "displayName": "Flvflags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 828, + "description": "FLV muxer flags", + "group": "flv muxer" + }, + { + "key": "-hash", + "displayName": "Hash", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 829, + "description": "set hash to use", + "group": "Shared private options" + }, + { + "key": "-format_version", + "displayName": "Format Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 830, + "description": "file format version", + "group": "Shared private options" + }, + { + "key": "-start_number", + "displayName": "Start Number", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 831, + "description": "set first number in the sequence", + "group": "Shared private options" + }, + { + "key": "-hls_time", + "displayName": "HLS Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 832, + "description": "set segment length", + "group": "hls muxer" + }, + { + "key": "-hls_init_time", + "displayName": "HLS Init Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 833, + "description": "set segment length at init list", + "group": "hls muxer" + }, + { + "key": "-hls_list_size", + "displayName": "HLS List Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 834, + "description": "set maximum number of playlist entries", + "group": "hls muxer" + }, + { + "key": "-hls_delete_threshold", + "displayName": "HLS Delete Threshold", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 835, + "description": "set number of unreferenced segments to keep before deleting", + "group": "hls muxer" + }, + { + "key": "-hls_vtt_options", + "displayName": "HLS Vtt Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 836, + "description": "set hls vtt list of options for the container format used for hls", + "group": "hls muxer" + }, + { + "key": "-hls_allow_cache", + "displayName": "HLS Allow Cache", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 837, + "description": "explicitly set whether the client MAY (1) or MUST NOT (0) cache media segments", + "group": "hls muxer" + }, + { + "key": "-hls_base_url", + "displayName": "HLS Base URL", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 838, + "description": "url to prepend to each playlist entry", + "group": "hls muxer" + }, + { + "key": "-hls_segment_filename", + "displayName": "HLS Segment Filename", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 839, + "description": "filename template for segment files", + "group": "hls muxer" + }, + { + "key": "-hls_segment_options", + "displayName": "HLS Segment Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 840, + "description": "set segments files format options of hls", + "group": "hls muxer" + }, + { + "key": "-hls_segment_size", + "displayName": "HLS Segment Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 841, + "description": "maximum size per segment file, (in bytes)", + "group": "hls muxer" + }, + { + "key": "-hls_key_info_file", + "displayName": "HLS Key Info File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 842, + "description": "file with key URI and key file path", + "group": "hls muxer" + }, + { + "key": "-hls_enc", + "displayName": "HLS Enc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 843, + "description": "enable AES128 encryption support", + "group": "hls muxer" + }, + { + "key": "-hls_enc_key", + "displayName": "HLS Enc Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 844, + "description": "hex-coded 16 byte key to encrypt the segments", + "group": "hls muxer" + }, + { + "key": "-hls_enc_key_url", + "displayName": "HLS Enc Key URL", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 845, + "description": "url to access the key to decrypt the segments", + "group": "hls muxer" + }, + { + "key": "-hls_enc_iv", + "displayName": "HLS Enc Iv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 846, + "description": "hex-coded 16 byte initialization vector", + "group": "hls muxer" + }, + { + "key": "-hls_subtitle_path", + "displayName": "HLS Subtitle Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 847, + "description": "set path of hls subtitles", + "group": "hls muxer" + }, + { + "key": "-hls_segment_type", + "displayName": "HLS Segment Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 848, + "description": "set hls segment files type", + "group": "hls muxer" + }, + { + "key": "-hls_fmp4_init_filename", + "displayName": "HLS Fmp4 Init Filename", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 849, + "description": "set fragment mp4 file init filename", + "group": "hls muxer" + }, + { + "key": "-hls_fmp4_init_resend", + "displayName": "HLS Fmp4 Init Resend", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 850, + "description": "resend fragment mp4 init file after refresh m3u8 every time", + "group": "hls muxer" + }, + { + "key": "-hls_flags", + "displayName": "HLS Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 851, + "description": "set flags affecting HLS playlist and media file generation", + "group": "hls muxer" + }, + { + "key": "-strftime", + "displayName": "Strftime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 852, + "description": "set filename expansion with strftime at segment creation", + "group": "Shared private options" + }, + { + "key": "-strftime_mkdir", + "displayName": "Strftime Mkdir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 853, + "description": "create last directory component in strftime-generated filename", + "group": "hls muxer" + }, + { + "key": "-hls_playlist_type", + "displayName": "HLS Playlist Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 854, + "description": "set the HLS playlist type", + "group": "hls muxer" + }, + { + "key": "-hls_start_number_source", + "displayName": "HLS Start Number Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 855, + "description": "set source of first number in sequence", + "group": "hls muxer" + }, + { + "key": "-var_stream_map", + "displayName": "Var Stream Map", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 856, + "description": "Variant stream map string", + "group": "hls muxer" + }, + { + "key": "-cc_stream_map", + "displayName": "Cc Stream Map", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 857, + "description": "Closed captions stream map string", + "group": "hls muxer" + }, + { + "key": "-master_pl_name", + "displayName": "Master Pl Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 858, + "description": "Create HLS master playlist with this name", + "group": "hls muxer" + }, + { + "key": "-master_pl_publish_rate", + "displayName": "Master Pl Publish Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 859, + "description": "Publish master play list every after this many segment intervals", + "group": "hls muxer" + }, + { + "key": "-update", + "displayName": "Update", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 860, + "description": "continuously overwrite one file", + "group": "image2 muxer" + }, + { + "key": "-frame_pts", + "displayName": "Frame Pts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 861, + "description": "use current frame pts for filename", + "group": "image2 muxer" + }, + { + "key": "-atomic_writing", + "displayName": "Atomic Writing", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 862, + "description": "write files atomically (using temporary files and renames)", + "group": "image2 muxer" + }, + { + "key": "-protocol_opts", + "displayName": "Protocol Opts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 863, + "description": "specify protocol options for the opened files", + "group": "image2 muxer" + }, + { + "key": "-smc-interval", + "displayName": "Smc Interval", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 864, + "description": "StreamMuxConfig interval.", + "group": "LATM/LOAS muxer" + }, + { + "key": "-precision", + "displayName": "Precision", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 865, + "description": "set soxr resampling precision (in bits)", + "group": "Shared private options" + }, + { + "key": "-override_time_code_rate", + "displayName": "Override Time Code Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 866, + "description": "override the `Time Code Rate` value in the output", + "group": "mcc muxer" + }, + { + "key": "-use_u_alias", + "displayName": "Use U Alias", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 867, + "description": "use the U alias for E1h 00h 00h 00h, disabled by default because some .mcc files disagree on whether it has 2 or 3 zero bytes", + "group": "mcc muxer" + }, + { + "key": "-mcc_version", + "displayName": "Mcc Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 868, + "description": "the mcc file format version", + "group": "mcc muxer" + }, + { + "key": "-creation_program", + "displayName": "Creation Program", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 869, + "description": "the creation program", + "group": "mcc muxer" + }, + { + "key": "-creation_time", + "displayName": "Creation Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 870, + "description": "the creation time", + "group": "mcc muxer" + }, + { + "key": "-cues_to_front", + "displayName": "Cues To Front", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 871, + "description": "move Cues (the index) to the front by shifting data if necessary", + "group": "Shared private options" + }, + { + "key": "-cluster_size_limit", + "displayName": "Cluster Size Limit", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 872, + "description": "store at most the provided amount of bytes in a cluster", + "group": "Shared private options" + }, + { + "key": "-cluster_time_limit", + "displayName": "Cluster Time Limit", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 873, + "description": "store at most the provided number of milliseconds in a cluster", + "group": "Shared private options" + }, + { + "key": "-dash", + "displayName": "Dash", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 874, + "description": "create a WebM file conforming to WebM DASH specification", + "group": "Shared private options" + }, + { + "key": "-dash_track_number", + "displayName": "Dash Track Number", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 875, + "description": "track number for the DASH stream", + "group": "Shared private options" + }, + { + "key": "-live", + "displayName": "Live", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 876, + "description": "write files assuming it is a live stream", + "group": "Shared private options" + }, + { + "key": "-allow_raw_vfw", + "displayName": "Allow Raw Vfw", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 877, + "description": "allow raw VFW mode", + "group": "Shared private options" + }, + { + "key": "-write_crc32", + "displayName": "Write Crc32", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 878, + "description": "write a CRC32 element inside every Level 1 element", + "group": "Shared private options" + }, + { + "key": "-default_mode", + "displayName": "Default Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 879, + "description": "control how a track's FlagDefault is inferred", + "group": "Shared private options" + }, + { + "key": "-write_id3v1", + "displayName": "Write Id3v1", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 880, + "description": "Enable ID3v1 writing.", + "group": "MP3 muxer" + }, + { + "key": "-write_xing", + "displayName": "Write Xing", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 881, + "description": "Write the Xing header containing file duration.", + "group": "MP3 muxer" + }, + { + "key": "-muxrate", + "displayName": "Muxrate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 882, + "description": "mux rate as bits/s", + "group": "Shared private options" + }, + { + "key": "-preload", + "displayName": "Preload", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 883, + "description": "initial demux-decode delay in microseconds", + "group": "Shared private options" + }, + { + "key": "-mpegts_transport_stream_id", + "displayName": "Mpegts Transport Stream ID", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 884, + "description": "Set transport_stream_id field.", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_original_network_id", + "displayName": "Mpegts Original Network ID", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 885, + "description": "Set original_network_id field.", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_service_id", + "displayName": "Mpegts Service ID", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 886, + "description": "Set service_id field.", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_service_type", + "displayName": "Mpegts Service Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 887, + "description": "Set service_type field.", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_pmt_start_pid", + "displayName": "Mpegts Pmt Start Pid", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 888, + "description": "Set the first pid of the PMT.", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_start_pid", + "displayName": "Mpegts Start Pid", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 889, + "description": "Set the first pid.", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_m2ts_mode", + "displayName": "Mpegts M2ts Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 890, + "description": "Enable m2ts mode.", + "group": "MPEGTS muxer" + }, + { + "key": "-pes_payload_size", + "displayName": "Pes Payload Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 891, + "description": "Minimum PES packet payload in bytes", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_flags", + "displayName": "Mpegts Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 892, + "description": "MPEG-TS muxing flags", + "group": "MPEGTS muxer" + }, + { + "key": "-mpegts_copyts", + "displayName": "Mpegts Copyts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 893, + "description": "don't offset dts/pts", + "group": "MPEGTS muxer" + }, + { + "key": "-tables_version", + "displayName": "Tables Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 894, + "description": "set PAT, PMT, SDT and NIT version", + "group": "MPEGTS muxer" + }, + { + "key": "-omit_video_pes_length", + "displayName": "Omit Video Pes Length", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 895, + "description": "Omit the PES packet length for video packets", + "group": "MPEGTS muxer" + }, + { + "key": "-pcr_period", + "displayName": "Pcr Period", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 896, + "description": "PCR retransmission time in milliseconds", + "group": "MPEGTS muxer" + }, + { + "key": "-pat_period", + "displayName": "Pat Period", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 897, + "description": "PAT/PMT retransmission time limit in seconds", + "group": "MPEGTS muxer" + }, + { + "key": "-sdt_period", + "displayName": "Sdt Period", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 898, + "description": "SDT retransmission time limit in seconds", + "group": "MPEGTS muxer" + }, + { + "key": "-nit_period", + "displayName": "Nit Period", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 899, + "description": "NIT retransmission time limit in seconds", + "group": "MPEGTS muxer" + }, + { + "key": "-boundary_tag", + "displayName": "Boundary Tag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 900, + "description": "Boundary tag", + "group": "mpjpeg_muxer" + }, + { + "key": "-signal_standard", + "displayName": "Signal Standard", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 901, + "description": "Force/set Signal Standard", + "group": "Shared private options" + }, + { + "key": "-store_user_comments", + "displayName": "Store User Comments", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 902, + "group": "Shared private options" + }, + { + "key": "-d10_channelcount", + "displayName": "D10 Channelcount", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 903, + "description": "Force/set channelcount in generic sound essence descriptor", + "group": "MXF-D10 muxer" + }, + { + "key": "-mxf_audio_edit_rate", + "displayName": "Mxf Audio Edit Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 904, + "description": "Audio edit rate for timecode", + "group": "MXF-OPAtom muxer" + }, + { + "key": "-syncpoints", + "displayName": "Syncpoints", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 905, + "description": "NUT syncpoint behaviour", + "group": "nutenc" + }, + { + "key": "-write_index", + "displayName": "Write Index", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 906, + "description": "Write index", + "group": "nutenc" + }, + { + "key": "-serial_offset", + "displayName": "Serial Offset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 907, + "description": "serial number offset", + "group": "Shared private options" + }, + { + "key": "-page_duration", + "displayName": "Page Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 908, + "description": "preferred page duration, in microseconds", + "group": "Shared private options" + }, + { + "key": "-payload_type", + "displayName": "Payload Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 909, + "description": "Specify RTP payload type", + "group": "RTP muxer" + }, + { + "key": "-ssrc", + "displayName": "Ssrc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 910, + "description": "Stream identifier", + "group": "RTP muxer" + }, + { + "key": "-cname", + "displayName": "Cname", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 911, + "description": "CNAME to include in RTCP SR packets", + "group": "RTP muxer" + }, + { + "key": "-seq", + "displayName": "Seq", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 912, + "description": "Starting sequence number", + "group": "RTP muxer" + }, + { + "key": "-mpegts_muxer_options", + "displayName": "Mpegts Muxer Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 913, + "description": "set list of options for the MPEG-TS muxer", + "group": "rtp_mpegts muxer" + }, + { + "key": "-rtp_muxer_options", + "displayName": "Rtp Muxer Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 914, + "description": "set list of options for the RTP muxer", + "group": "rtp_mpegts muxer" + }, + { + "key": "-initial_pause", + "displayName": "Initial Pause", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 915, + "description": "do not start playing the stream immediately", + "group": "Shared private options" + }, + { + "key": "-rtsp_transport", + "displayName": "Rtsp Transport", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 916, + "description": "set RTSP transport protocols", + "group": "Shared private options" + }, + { + "key": "-rtsp_flags", + "displayName": "Rtsp Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 917, + "description": "set RTSP flags", + "group": "Shared private options" + }, + { + "key": "-allowed_media_types", + "displayName": "Allowed Media Types", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 918, + "description": "set media types to accept from the server", + "group": "Shared private options" + }, + { + "key": "-min_port", + "displayName": "Min Port", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 919, + "description": "set minimum local UDP port", + "group": "Shared private options" + }, + { + "key": "-max_port", + "displayName": "Max Port", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 920, + "description": "set maximum local UDP port", + "group": "Shared private options" + }, + { + "key": "-reorder_queue_size", + "displayName": "Reorder Queue Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 921, + "description": "set number of packets to buffer for handling of reordered packets", + "group": "Shared private options" + }, + { + "key": "-reference_stream", + "displayName": "Reference Stream", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 922, + "description": "set reference stream", + "group": "Shared private options" + }, + { + "key": "-segment_format", + "displayName": "Segment Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 923, + "description": "set container format used for the segments", + "group": "Shared private options" + }, + { + "key": "-segment_format_options", + "displayName": "Segment Format Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 924, + "description": "set list of options for the container format used for the segments", + "group": "Shared private options" + }, + { + "key": "-segment_list", + "displayName": "Segment List", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 925, + "description": "set the segment list filename", + "group": "Shared private options" + }, + { + "key": "-segment_header_filename", + "displayName": "Segment Header Filename", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 926, + "description": "write a single file containing the header", + "group": "Shared private options" + }, + { + "key": "-segment_list_flags", + "displayName": "Segment List Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 927, + "description": "set flags affecting segment list generation", + "group": "Shared private options" + }, + { + "key": "-segment_list_size", + "displayName": "Segment List Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 928, + "description": "set the maximum number of playlist entries", + "group": "Shared private options" + }, + { + "key": "-segment_list_type", + "displayName": "Segment List Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 929, + "description": "set the segment list type", + "group": "Shared private options" + }, + { + "key": "-segment_atclocktime", + "displayName": "Segment Atclocktime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 930, + "description": "set segment to be cut at clocktime", + "group": "Shared private options" + }, + { + "key": "-segment_clocktime_offset", + "displayName": "Segment Clocktime Offset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 931, + "description": "set segment clocktime offset", + "group": "Shared private options" + }, + { + "key": "-segment_clocktime_wrap_duration", + "displayName": "Segment Clocktime Wrap Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 932, + "description": "set segment clocktime wrapping duration", + "group": "Shared private options" + }, + { + "key": "-segment_time", + "displayName": "Segment Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 933, + "description": "set segment duration", + "group": "Shared private options" + }, + { + "key": "-segment_time_delta", + "displayName": "Segment Time Delta", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 934, + "description": "set approximation value used for the segment times", + "group": "Shared private options" + }, + { + "key": "-min_seg_duration", + "displayName": "Min Seg Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 935, + "description": "set minimum segment duration", + "group": "Shared private options" + }, + { + "key": "-segment_times", + "displayName": "Segment Times", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 936, + "description": "set segment split time points", + "group": "Shared private options" + }, + { + "key": "-segment_frames", + "displayName": "Segment Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 937, + "description": "set segment split frame numbers", + "group": "Shared private options" + }, + { + "key": "-segment_wrap", + "displayName": "Segment Wrap", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 938, + "description": "set number after which the index wraps", + "group": "Shared private options" + }, + { + "key": "-segment_list_entry_prefix", + "displayName": "Segment List Entry Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 939, + "description": "set base url prefix for segments", + "group": "Shared private options" + }, + { + "key": "-segment_start_number", + "displayName": "Segment Start Number", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 940, + "description": "set the sequence number of the first segment", + "group": "Shared private options" + }, + { + "key": "-segment_wrap_number", + "displayName": "Segment Wrap Number", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 941, + "description": "set the number of wrap before the first segment", + "group": "Shared private options" + }, + { + "key": "-increment_tc", + "displayName": "Increment Tc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 942, + "description": "increment timecode between each segment", + "group": "Shared private options" + }, + { + "key": "-break_non_keyframes", + "displayName": "Break Non Keyframes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 943, + "description": "allow breaking segments on non-keyframes", + "group": "Shared private options" + }, + { + "key": "-individual_header_trailer", + "displayName": "Individual Header Trailer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 944, + "description": "write header/trailer to each segment", + "group": "Shared private options" + }, + { + "key": "-write_header_trailer", + "displayName": "Write Header Trailer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 945, + "description": "write a header to the first segment and a trailer to the last one", + "group": "Shared private options" + }, + { + "key": "-reset_timestamps", + "displayName": "Reset Timestamps", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 946, + "description": "reset timestamps at the beginning of each segment", + "group": "Shared private options" + }, + { + "key": "-initial_offset", + "displayName": "Initial Offset", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 947, + "description": "set initial timestamp offset", + "group": "Shared private options" + }, + { + "key": "-write_empty_segments", + "displayName": "Write Empty Segments", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 948, + "description": "allow writing empty 'filler' segments", + "group": "Shared private options" + }, + { + "key": "-lookahead_count", + "displayName": "Lookahead Count", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 949, + "description": "number of lookahead fragments", + "group": "smooth streaming muxer" + }, + { + "key": "-spdif_flags", + "displayName": "Spdif Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 950, + "description": "IEC 61937 encapsulation flags", + "group": "spdif" + }, + { + "key": "-dtshd_rate", + "displayName": "Dtshd Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 951, + "description": "mux complete DTS frames in HD mode at the specified IEC958 rate (in Hz, default 0=disabled)", + "group": "spdif" + }, + { + "key": "-dtshd_fallback_time", + "displayName": "Dtshd Fallback Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 952, + "description": "min secs to strip HD for after an overflow (-1: till the end, default 60)", + "group": "spdif" + }, + { + "key": "-use_fifo", + "displayName": "Use Fifo", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 953, + "description": "Use fifo pseudo-muxer to separate actual muxers from encoder", + "group": "Tee muxer" + }, + { + "key": "-fifo_options", + "displayName": "Fifo Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 954, + "description": "fifo pseudo-muxer options", + "group": "Tee muxer" + }, + { + "key": "-write_bext", + "displayName": "Write Bext", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 955, + "description": "Write BEXT chunk.", + "group": "WAV muxer" + }, + { + "key": "-write_peak", + "displayName": "Write Peak", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 956, + "description": "Write Peak Envelope chunk.", + "group": "WAV muxer" + }, + { + "key": "-rf64", + "displayName": "Rf64", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 957, + "description": "Use RF64 header rather than RIFF for large files.", + "group": "WAV muxer" + }, + { + "key": "-peak_block_size", + "displayName": "Peak Block Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 958, + "description": "Number of audio samples used to generate each peak frame.", + "group": "WAV muxer" + }, + { + "key": "-peak_format", + "displayName": "Peak Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 959, + "description": "The format of the peak envelope data (1: uint8, 2: uint16).", + "group": "WAV muxer" + }, + { + "key": "-peak_ppv", + "displayName": "Peak Ppv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 960, + "description": "Number of peak points per peak value (1 or 2).", + "group": "WAV muxer" + }, + { + "key": "-chunk_start_index", + "displayName": "Chunk Start Index", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 961, + "description": "start index of the chunk", + "group": "Shared private options" + }, + { + "key": "-chunk_duration_ms", + "displayName": "Chunk Duration Ms", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 962, + "description": "duration of each chunk (in milliseconds)", + "group": "WebM DASH Manifest muxer" + }, + { + "key": "-time_shift_buffer_depth", + "displayName": "Time Shift Buffer Depth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 963, + "description": "Smallest time (in seconds) shifting buffer for which any Representation is guaranteed to be available.", + "group": "WebM DASH Manifest muxer" + }, + { + "key": "-minimum_update_period", + "displayName": "Minimum Update Period", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 964, + "description": "Minimum Update Period (in seconds) of the manifest.", + "group": "WebM DASH Manifest muxer" + }, + { + "key": "-header", + "displayName": "Header", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 965, + "description": "filename of the header where the initialization data will be written", + "group": "WebM Chunk Muxer" + }, + { + "key": "-audio_chunk_duration", + "displayName": "Audio Chunk Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 966, + "description": "duration of each chunk in milliseconds", + "group": "WebM Chunk Muxer" + }, + { + "key": "-handshake_timeout", + "displayName": "Handshake Timeout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 967, + "description": "Timeout in milliseconds for ICE and DTLS handshake.", + "group": "WHIP muxer" + }, + { + "key": "-ts_buffer_size", + "displayName": "Ts Buffer Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 968, + "description": "The buffer size, in bytes, of underlying protocol", + "group": "WHIP muxer" + }, + { + "key": "-whip_flags", + "displayName": "Whip Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 969, + "description": "Set flags affecting WHIP connection behavior", + "group": "WHIP muxer" + }, + { + "key": "-rtp_history", + "displayName": "Rtp History", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 970, + "description": "The number of RTP history items to store", + "group": "WHIP muxer" + }, + { + "key": "-authorization", + "displayName": "Authorization", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 971, + "description": "The optional Bearer token for WHIP Authorization", + "group": "WHIP muxer" + }, + { + "key": "-list_devices", + "displayName": "List Devices", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 972, + "description": "list available devices", + "group": "Shared private options" + }, + { + "key": "-audio_device_index", + "displayName": "Audio Device Index", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 973, + "description": "select audio device by index for devices with same name (starts at 0)", + "group": "Shared private options" + }, + { + "key": "-aa_fixed_key", + "displayName": "Aa Fixed Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 974, + "description": "Fixed key used for handling Audible AA files", + "group": "aa" + }, + { + "key": "-raw_packet_size", + "displayName": "Raw Packet Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 975, + "group": "Shared private options" + }, + { + "key": "-linespeed", + "displayName": "Linespeed", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 976, + "description": "set simulated line speed (bytes per second)", + "group": "Shared private options" + }, + { + "key": "-video_size", + "displayName": "Video Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 977, + "description": "set video size", + "group": "Shared private options" + }, + { + "key": "-framerate", + "displayName": "Framerate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 978, + "description": "set the video framerate", + "group": "Shared private options" + }, + { + "key": "-ignore_loop", + "displayName": "Ignore Loop", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 979, + "description": "ignore loop setting (netscape extension)", + "group": "Shared private options" + }, + { + "key": "-max_fps", + "displayName": "Max Fps", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 980, + "description": "maximum framerate (0 is no limit)", + "group": "APNG demuxer" + }, + { + "key": "-default_fps", + "displayName": "Default Fps", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 981, + "description": "default framerate (0 is as fast as possible)", + "group": "APNG demuxer" + }, + { + "key": "-sample_rate", + "displayName": "Sample Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 982, + "group": "Shared private options" + }, + { + "key": "-subfps", + "displayName": "Subfps", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 983, + "description": "set the movie frame rate fallback", + "group": "Shared private options" + }, + { + "key": "-no_resync_search", + "displayName": "No Resync Search", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 984, + "description": "Don't try to resynchronize by looking for a certain optional start code", + "group": "asf demuxer" + }, + { + "key": "-export_xmp", + "displayName": "Export Xmp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 985, + "description": "Export full XMP metadata", + "group": "Shared private options" + }, + { + "key": "-use_odml", + "displayName": "Use Odml", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 986, + "description": "use odml index", + "group": "avi" + }, + { + "key": "-pixel_format", + "displayName": "Pixel Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 987, + "description": "set video pixel format", + "group": "Shared private options" + }, + { + "key": "-frame_rate", + "displayName": "Frame Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 988, + "group": "CDXL demuxer" + }, + { + "key": "-frames_per_packet", + "displayName": "Frames Per Packet", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 989, + "description": "Number of frames to read at a time.", + "group": "Shared private options" + }, + { + "key": "-mode", + "displayName": "Mode", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 990, + "description": "codec2 mode [mandatory]", + "group": "codec2raw demuxer" + }, + { + "key": "-safe", + "displayName": "Safe", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 991, + "description": "enable safe mode", + "group": "concat demuxer" + }, + { + "key": "-auto_convert", + "displayName": "Auto Convert", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 992, + "description": "automatically convert bitstream format", + "group": "concat demuxer" + }, + { + "key": "-segment_time_metadata", + "displayName": "Segment Time Metadata", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 993, + "description": "output file segment start time and duration as packet metadata", + "group": "concat demuxer" + }, + { + "key": "-merge_alpha", + "displayName": "Merge Alpha", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 994, + "description": "return VP6 alpha in the main video stream", + "group": "ea demuxer" + }, + { + "key": "-flv_metadata", + "displayName": "Flv Metadata", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 995, + "description": "Allocate streams according to the onMetaData array", + "group": "Shared private options" + }, + { + "key": "-flv_full_metadata", + "displayName": "Flv Full Metadata", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 996, + "description": "Dump full metadata of the onMetadata", + "group": "Shared private options" + }, + { + "key": "-flv_ignore_prevtag", + "displayName": "Flv Ignore Prevtag", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 997, + "description": "Ignore the Size of previous tag", + "group": "Shared private options" + }, + { + "key": "-bit_rate", + "displayName": "Bit Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 998, + "group": "g729 demuxer" + }, + { + "key": "-min_delay", + "displayName": "Min Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 999, + "description": "minimum valid delay between frames (in hundredths of second)", + "group": "GIF demuxer" + }, + { + "key": "-max_gif_delay", + "displayName": "Max Gif Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1000, + "description": "maximum valid delay between frames (in hundredths of seconds)", + "group": "GIF demuxer" + }, + { + "key": "-default_delay", + "displayName": "Default Delay", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1001, + "description": "default delay between frames (in hundredths of second)", + "group": "GIF demuxer" + }, + { + "key": "-hca_lowkey", + "displayName": "Hca Lowkey", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1002, + "description": "Low key used for handling CRI HCA files", + "group": "hca" + }, + { + "key": "-hca_highkey", + "displayName": "Hca Highkey", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1003, + "description": "High key used for handling CRI HCA files", + "group": "hca" + }, + { + "key": "-hca_subkey", + "displayName": "Hca Subkey", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1004, + "description": "Subkey used for handling CRI HCA files", + "group": "hca" + }, + { + "key": "-live_start_index", + "displayName": "Live Start Index", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1005, + "description": "segment index to start live streams at (negative values are from the end)", + "group": "hls demuxer" + }, + { + "key": "-prefer_x_start", + "displayName": "Prefer X Start", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1006, + "description": "prefer to use #EXT-X-START if it's in playlist instead of live_start_index", + "group": "hls demuxer" + }, + { + "key": "-allowed_extensions", + "displayName": "Allowed Extensions", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1007, + "description": "List of file extensions that hls is allowed to access", + "group": "hls demuxer" + }, + { + "key": "-allowed_segment_extensions", + "displayName": "Allowed Segment Extensions", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1008, + "description": "List of file extensions that hls is allowed to access", + "group": "hls demuxer" + }, + { + "key": "-extension_picky", + "displayName": "Extension Picky", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1009, + "description": "Be picky with all extensions matching", + "group": "hls demuxer" + }, + { + "key": "-max_reload", + "displayName": "Max Reload", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1010, + "description": "Maximum number of times a insufficient list is attempted to be reloaded", + "group": "hls demuxer" + }, + { + "key": "-m3u8_hold_counters", + "displayName": "M3u8 Hold Counters", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1011, + "description": "The maximum number of times to load m3u8 when it refreshes without new segments", + "group": "hls demuxer" + }, + { + "key": "-http_multiple", + "displayName": "HTTP Multiple", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1012, + "description": "Use multiple HTTP connections for fetching segments", + "group": "hls demuxer" + }, + { + "key": "-http_seekable", + "displayName": "HTTP Seekable", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1013, + "description": "Use HTTP partial requests, 0 = disable, 1 = enable, -1 = auto", + "group": "hls demuxer" + }, + { + "key": "-seg_format_options", + "displayName": "Seg Format Options", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1014, + "description": "Set options for segment demuxer", + "group": "hls demuxer" + }, + { + "key": "-seg_max_retry", + "displayName": "Seg Max Retry", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1015, + "description": "Maximum number of times to reload a segment on error.", + "group": "hls demuxer" + }, + { + "key": "-pattern_type", + "displayName": "Pattern Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1016, + "description": "set pattern type", + "group": "Shared private options" + }, + { + "key": "-start_number_range", + "displayName": "Start Number Range", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1017, + "description": "set range for looking at the first sequence number", + "group": "Shared private options" + }, + { + "key": "-ts_from_file", + "displayName": "Ts From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1018, + "description": "set frame timestamp from file's one", + "group": "Shared private options" + }, + { + "key": "-export_path_metadata", + "displayName": "Export Path Metadata", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1019, + "description": "enable metadata containing input path information", + "group": "Shared private options" + }, + { + "key": "-eia608_extract", + "displayName": "Eia608 Extract", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1020, + "description": "extract EIA-608/708 captions from VANC packets", + "group": "Shared private options" + }, + { + "key": "-use_absolute_path", + "displayName": "Use Absolute Path", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1021, + "description": "allow using absolute path when opening alias, this is a possible security issue", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-seek_streams_individually", + "displayName": "Seek Streams Individually", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1022, + "description": "Seek each stream individually to the closest point", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-ignore_editlist", + "displayName": "Ignore Editlist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1023, + "description": "Ignore the edit list atom.", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-advanced_editlist", + "displayName": "Advanced Editlist", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1024, + "description": "Modify the AVIndex according to the editlists.", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-ignore_chapters", + "displayName": "Ignore Chapters", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1025, + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-use_mfra_for", + "displayName": "Use Mfra For", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1026, + "description": "use mfra for fragment timestamps", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-use_tfdt", + "displayName": "Use Tfdt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1027, + "description": "use tfdt for fragment timestamps", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-export_all", + "displayName": "Export All", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1028, + "description": "Export unrecognized metadata entries", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-activation_bytes", + "displayName": "Activation Bytes", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1029, + "description": "Secret bytes for Audible AAX files", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-audible_key", + "displayName": "Audible Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1030, + "description": "AES-128 Key for Audible AAXC files", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-audible_iv", + "displayName": "Audible Iv", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1031, + "description": "AES-128 IV for Audible AAXC files", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-audible_fixed_key", + "displayName": "Audible Fixed Key", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1032, + "description": "Fixed key used for handling Audible AAX files", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-decryption_keys", + "displayName": "Decryption Keys", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1033, + "description": "The media decryption keys by KID (hex)", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-enable_drefs", + "displayName": "Enable Drefs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1034, + "description": "Enable external track support.", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-max_stts_delta", + "displayName": "Max Stts Delta", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1035, + "description": "treat offsets above this value as invalid", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-interleaved_read", + "displayName": "Interleaved Read", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1036, + "description": "Interleave packets from multiple tracks at demuxer level", + "group": "mov,mp4,m4a,3gp,3g2,mj2" + }, + { + "key": "-usetoc", + "displayName": "Usetoc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1037, + "description": "use table of contents", + "group": "mp3" + }, + { + "key": "-resync_size", + "displayName": "Resync Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1038, + "description": "set size limit for looking up a new synchronization", + "group": "Shared private options" + }, + { + "key": "-fix_teletext_pts", + "displayName": "Fix Teletext Pts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1039, + "description": "try to fix pts values of dvb teletext streams", + "group": "mpegts demuxer" + }, + { + "key": "-scan_all_pmts", + "displayName": "Scan All Pmts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1040, + "description": "scan and combine all PMTs", + "group": "mpegts demuxer" + }, + { + "key": "-skip_unknown_pmt", + "displayName": "Skip Unknown Pmt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1041, + "description": "skip PMTs for programs not advertised in the PAT", + "group": "mpegts demuxer" + }, + { + "key": "-merge_pmt_versions", + "displayName": "Merge Pmt Versions", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1042, + "description": "reuse streams when PMT's version/pids change", + "group": "mpegts demuxer" + }, + { + "key": "-max_packet_size", + "displayName": "Max Packet Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1043, + "description": "maximum size of emitted packet", + "group": "mpegts demuxer" + }, + { + "key": "-compute_pcr", + "displayName": "Compute Pcr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1044, + "description": "compute exact PCR for each transport stream packet", + "group": "mpegtsraw demuxer" + }, + { + "key": "-strict_mime_boundary", + "displayName": "Strict Mime Boundary", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1045, + "description": "require MIME boundaries match", + "group": "MPJPEG demuxer" + }, + { + "key": "-rtp_flags", + "displayName": "Rtp Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1046, + "description": "set RTP flags", + "group": "RTP demuxer" + }, + { + "key": "-max_file_size", + "displayName": "Max File Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1047, + "group": "sbg_demuxer" + }, + { + "key": "-sdp_flags", + "displayName": "Sdp Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1048, + "description": "SDP flags", + "group": "SDP demuxer" + }, + { + "key": "-start_time", + "displayName": "Start Time", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1049, + "description": "set the start time (offset) of the subtitles, in ms", + "group": "tedcaptions_demuxer" + }, + { + "key": "-chars_per_frame", + "displayName": "Chars Per Frame", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1050, + "group": "TTY demuxer" + }, + { + "key": "-sub_name", + "displayName": "Sub Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1051, + "description": "URI for .sub file", + "group": "vobsub" + }, + { + "key": "-max_size", + "displayName": "Max Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1052, + "description": "max size of single packet", + "group": "Shared private options" + }, + { + "key": "-ignore_length", + "displayName": "Ignore Length", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1053, + "description": "Ignore length", + "group": "WAV demuxer" + }, + { + "key": "-bandwidth", + "displayName": "Bandwidth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1054, + "description": "bandwidth of this stream to be specified in the DASH manifest.", + "group": "WebM DASH Manifest demuxer" + }, + { + "key": "-kind", + "displayName": "Kind", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1055, + "description": "Set kind of WebVTT track", + "group": "WebVTT demuxer" + }, + { + "key": "-video_device_index", + "displayName": "Video Device Index", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1056, + "description": "select video device by index for devices with same name (starts at 0)", + "group": "AVFoundation indev" + }, + { + "key": "-capture_cursor", + "displayName": "Capture Cursor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1057, + "description": "capture the screen cursor", + "group": "AVFoundation indev" + }, + { + "key": "-capture_mouse_clicks", + "displayName": "Capture Mouse Clicks", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1058, + "description": "capture the screen mouse clicks", + "group": "AVFoundation indev" + }, + { + "key": "-capture_raw_data", + "displayName": "Capture Raw Data", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1059, + "description": "capture the raw data from device connection", + "group": "AVFoundation indev" + }, + { + "key": "-drop_late_frames", + "displayName": "Drop Late Frames", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1060, + "description": "drop frames that are available later than expected", + "group": "AVFoundation indev" + }, + { + "key": "-graph", + "displayName": "Graph", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1061, + "description": "set libavfilter graph", + "group": "lavfi indev" + }, + { + "key": "-graph_file", + "displayName": "Graph File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1062, + "description": "set libavfilter graph filename", + "group": "lavfi indev" + }, + { + "key": "-dumpgraph", + "displayName": "Dumpgraph", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1063, + "description": "dump graph to stderr", + "group": "lavfi indev" + }, + { + "key": "-sws_flags", + "displayName": "Sws Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1064, + "description": "swscale flags", + "group": "SWScaler" + }, + { + "key": "-param0", + "displayName": "Param0", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1065, + "description": "scaler param 0", + "group": "SWScaler" + }, + { + "key": "-param1", + "displayName": "Param1", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1066, + "description": "scaler param 1", + "group": "SWScaler" + }, + { + "key": "-srcw", + "displayName": "Srcw", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1067, + "description": "source width", + "group": "SWScaler" + }, + { + "key": "-srch", + "displayName": "Srch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1068, + "description": "source height", + "group": "SWScaler" + }, + { + "key": "-dstw", + "displayName": "Dstw", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1069, + "description": "destination width", + "group": "SWScaler" + }, + { + "key": "-dsth", + "displayName": "Dsth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1070, + "description": "destination height", + "group": "SWScaler" + }, + { + "key": "-src_format", + "displayName": "Src Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1071, + "description": "source format", + "group": "SWScaler" + }, + { + "key": "-dst_format", + "displayName": "Dst Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1072, + "description": "destination format", + "group": "SWScaler" + }, + { + "key": "-src_range", + "displayName": "Src Range", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1073, + "description": "source is full range", + "group": "SWScaler" + }, + { + "key": "-dst_range", + "displayName": "Dst Range", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1074, + "description": "destination is full range", + "group": "SWScaler" + }, + { + "key": "-src_v_chr_pos", + "displayName": "Src V Chr Pos", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1075, + "description": "source vertical chroma position in luma grid/256", + "group": "SWScaler" + }, + { + "key": "-src_h_chr_pos", + "displayName": "Src H Chr Pos", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1076, + "description": "source horizontal chroma position in luma grid/256", + "group": "SWScaler" + }, + { + "key": "-dst_v_chr_pos", + "displayName": "Dst V Chr Pos", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1077, + "description": "destination vertical chroma position in luma grid/256", + "group": "SWScaler" + }, + { + "key": "-dst_h_chr_pos", + "displayName": "Dst H Chr Pos", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1078, + "description": "destination horizontal chroma position in luma grid/256", + "group": "SWScaler" + }, + { + "key": "-sws_dither", + "displayName": "Sws Dither", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1079, + "description": "set dithering algorithm", + "group": "SWScaler" + }, + { + "key": "-alphablend", + "displayName": "Alphablend", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1080, + "description": "mode for alpha -> non alpha", + "group": "SWScaler" + }, + { + "key": "-intent", + "displayName": "Intent", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1081, + "description": "color mapping intent", + "group": "SWScaler" + }, + { + "key": "-isr", + "displayName": "Isr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1082, + "description": "set input sample rate", + "group": "SWResampler" + }, + { + "key": "-in_sample_rate", + "displayName": "In Sample Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1083, + "description": "set input sample rate", + "group": "SWResampler" + }, + { + "key": "-osr", + "displayName": "Osr", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1084, + "description": "set output sample rate", + "group": "SWResampler" + }, + { + "key": "-out_sample_rate", + "displayName": "Out Sample Rate", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1085, + "description": "set output sample rate", + "group": "SWResampler" + }, + { + "key": "-isf", + "displayName": "Isf", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1086, + "description": "set input sample format", + "group": "SWResampler" + }, + { + "key": "-in_sample_fmt", + "displayName": "In Sample Fmt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1087, + "description": "set input sample format", + "group": "SWResampler" + }, + { + "key": "-osf", + "displayName": "Osf", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1088, + "description": "set output sample format", + "group": "SWResampler" + }, + { + "key": "-out_sample_fmt", + "displayName": "Out Sample Fmt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1089, + "description": "set output sample format", + "group": "SWResampler" + }, + { + "key": "-tsf", + "displayName": "Tsf", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1090, + "description": "set internal sample format", + "group": "SWResampler" + }, + { + "key": "-internal_sample_fmt", + "displayName": "Internal Sample Fmt", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1091, + "description": "set internal sample format", + "group": "SWResampler" + }, + { + "key": "-ichl", + "displayName": "Ichl", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1092, + "description": "set input channel layout", + "group": "SWResampler" + }, + { + "key": "-in_chlayout", + "displayName": "In Chlayout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1093, + "description": "set input channel layout", + "group": "SWResampler" + }, + { + "key": "-ochl", + "displayName": "Ochl", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1094, + "description": "set output channel layout", + "group": "SWResampler" + }, + { + "key": "-out_chlayout", + "displayName": "Out Chlayout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1095, + "description": "set output channel layout", + "group": "SWResampler" + }, + { + "key": "-uchl", + "displayName": "Uchl", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1096, + "description": "set used channel layout", + "group": "SWResampler" + }, + { + "key": "-used_chlayout", + "displayName": "Used Chlayout", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1097, + "description": "set used channel layout", + "group": "SWResampler" + }, + { + "key": "-clev", + "displayName": "Clev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1098, + "description": "set center mix level", + "group": "SWResampler" + }, + { + "key": "-center_mix_level", + "displayName": "Center Mix Level", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1099, + "description": "set center mix level", + "group": "SWResampler" + }, + { + "key": "-slev", + "displayName": "Slev", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1100, + "description": "set surround mix level", + "group": "SWResampler" + }, + { + "key": "-surround_mix_level", + "displayName": "Surround Mix Level", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1101, + "description": "set surround mix Level", + "group": "SWResampler" + }, + { + "key": "-lfe_mix_level", + "displayName": "Lfe Mix Level", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1102, + "description": "set LFE mix level", + "group": "SWResampler" + }, + { + "key": "-rmvol", + "displayName": "Rmvol", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1103, + "description": "set rematrix volume", + "group": "SWResampler" + }, + { + "key": "-rematrix_volume", + "displayName": "Rematrix Volume", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1104, + "description": "set rematrix volume", + "group": "SWResampler" + }, + { + "key": "-rematrix_maxval", + "displayName": "Rematrix Maxval", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1105, + "description": "set rematrix maxval", + "group": "SWResampler" + }, + { + "key": "-swr_flags", + "displayName": "Swr Flags", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1106, + "description": "set flags", + "group": "SWResampler" + }, + { + "key": "-dither_scale", + "displayName": "Dither Scale", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1107, + "description": "set dither scale", + "group": "SWResampler" + }, + { + "key": "-dither_method", + "displayName": "Dither Method", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1108, + "description": "set dither method", + "group": "SWResampler" + }, + { + "key": "-filter_size", + "displayName": "Filter Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1109, + "description": "set swr resampling filter size", + "group": "SWResampler" + }, + { + "key": "-phase_shift", + "displayName": "Phase Shift", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1110, + "description": "set swr resampling phase shift", + "group": "SWResampler" + }, + { + "key": "-linear_interp", + "displayName": "Linear Interp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1111, + "description": "enable linear interpolation", + "group": "SWResampler" + }, + { + "key": "-exact_rational", + "displayName": "Exact Rational", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1112, + "description": "enable exact rational", + "group": "SWResampler" + }, + { + "key": "-resample_cutoff", + "displayName": "Resample Cutoff", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1113, + "description": "set cutoff frequency ratio", + "group": "SWResampler" + }, + { + "key": "-resampler", + "displayName": "Resampler", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1114, + "description": "set resampling Engine", + "group": "SWResampler" + }, + { + "key": "-cheby", + "displayName": "Cheby", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1115, + "description": "enable soxr Chebyshev passband & higher-precision irrational ratio approximation", + "group": "SWResampler" + }, + { + "key": "-min_comp", + "displayName": "Min Comp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1116, + "description": "set minimum difference between timestamps and audio data (in seconds) below which no timestamp compensation of either kind is applied", + "group": "SWResampler" + }, + { + "key": "-min_hard_comp", + "displayName": "Min Hard Comp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1117, + "description": "set minimum difference between timestamps and audio data (in seconds) to trigger padding/trimming the data.", + "group": "SWResampler" + }, + { + "key": "-comp_duration", + "displayName": "Comp Duration", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1118, + "description": "set duration (in seconds) over which data is stretched/squeezed to make it match the timestamps.", + "group": "SWResampler" + }, + { + "key": "-max_soft_comp", + "displayName": "Max Soft Comp", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1119, + "description": "set maximum factor by which data is stretched/squeezed to make it match the timestamps.", + "group": "SWResampler" + }, + { + "key": "-async", + "displayName": "Async", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1120, + "description": "simplified 1 parameter audio timestamp matching, 0(disabled), 1(filling and trimming), >1(maximum stretch/squeeze in samples per second)", + "group": "SWResampler" + }, + { + "key": "-first_pts", + "displayName": "First Pts", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1121, + "description": "Assume the first pts should be this value (in samples).", + "group": "SWResampler" + }, + { + "key": "-matrix_encoding", + "displayName": "Matrix Encoding", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1122, + "description": "set matrixed stereo encoding", + "group": "SWResampler" + }, + { + "key": "-filter_type", + "displayName": "Filter Type", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1123, + "description": "select swr filter type", + "group": "SWResampler" + }, + { + "key": "-kaiser_beta", + "displayName": "Kaiser Beta", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1124, + "description": "set swr Kaiser window beta", + "group": "SWResampler" + }, + { + "key": "-output_sample_bits", + "displayName": "Output Sample Bits", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1125, + "description": "set swr number of output sample bits", + "group": "SWResampler" + } + ], + "commands": [], + "info": { + "description": "ffmpeg is a universal media converter.", + "version": "8.1.2", + "url": "https://ffmpeg.org" + }, + "installation": { + "sources": [ + { + "key": "apt", + "method": "package_manager", + "manager": "apt", + "command": "sudo apt install ffmpeg", + "url": "https://ffmpeg.org/download.html", + "os": [ + "linux" + ], + "note": "Official Debian and Ubuntu packages." + }, + { + "key": "dnf", + "method": "package_manager", + "manager": "dnf", + "command": "sudo dnf install ffmpeg", + "url": "https://ffmpeg.org/download.html", + "os": [ + "linux" + ], + "note": "Requires the RPM Fusion free repository." + }, + { + "key": "release-binary", + "method": "binary", + "command": "https://github.com/BtbN/FFmpeg-Builds/releases", + "url": "https://ffmpeg.org/download.html", + "os": [ + "linux" + ], + "note": "64-bit static and shared builds linked from the official download page." + } + ] + } +} diff --git a/public/tools-collection/ffuf.json b/public/tools-collection/ffuf.json index e86e445..f542180 100644 --- a/public/tools-collection/ffuf.json +++ b/public/tools-collection/ffuf.json @@ -1,192 +1,174 @@ { - "$schema": "https://commandly.divyeshio.in/specification/flat.json", + "$schema": "https://commandly.divyeshio.in/specification/tool.json", "binaryName": "ffuf", "displayName": "ffuf", "info": { "description": "A fast web fuzzer written in Go.", - "version": "2.1.0", + "version": "2.3.0", "url": "https://github.com/ffuf/ffuf" }, "commands": [], "parameters": [ { - "key": "url", - "name": "URL", + "key": "-u", + "displayName": "URL", "parameterType": "Option", "dataType": "String", - "shortFlag": "-u", "description": "Target URL.", "isRequired": true, "group": "HTTP", "sortOrder": 1 }, { - "key": "method", - "name": "Method", + "key": "-X", + "displayName": "Method", "parameterType": "Option", "dataType": "String", - "shortFlag": "-X", "description": "HTTP method to use.", "group": "HTTP", "sortOrder": 2 }, { - "key": "data", - "name": "POST Data", + "key": "-d", + "displayName": "POST Data", "parameterType": "Option", "dataType": "String", - "shortFlag": "-d", "description": "POST data.", "group": "HTTP", "sortOrder": 3 }, { - "key": "cookie", - "name": "Cookie", + "key": "-b", + "displayName": "Cookie", "parameterType": "Option", "dataType": "String", - "shortFlag": "-b", "description": "Cookie data \"NAME1=VALUE1; NAME2=VALUE2\" for copy as curl functionality.", "group": "HTTP", "sortOrder": 4 }, { - "key": "header", - "name": "Header", + "key": "-H", + "displayName": "Header", "parameterType": "Option", "dataType": "String", - "shortFlag": "-H", "description": "Header \"Name: Value\", separated by colon. Multiple -H flags are accepted.", "isRepeatable": true, "group": "HTTP", "sortOrder": 5 }, { - "key": "client-cert", - "name": "Client Certificate", + "key": "-cc", + "displayName": "Client Certificate", "parameterType": "Option", "dataType": "String", - "longFlag": "-cc", "description": "Client cert for authentication. Client key needs to be defined as well.", "group": "HTTP", "sortOrder": 6 }, { - "key": "client-key", - "name": "Client Key", + "key": "-ck", + "displayName": "Client Key", "parameterType": "Option", "dataType": "String", - "longFlag": "-ck", "description": "Client key for authentication. Client certificate needs to be defined as well.", "group": "HTTP", "sortOrder": 7 }, { - "key": "proxy", - "name": "Proxy", + "key": "-x", + "displayName": "Proxy", "parameterType": "Option", "dataType": "String", - "shortFlag": "-x", "description": "Proxy URL (SOCKS5 or HTTP). For example: http://127.0.0.1:8080 or socks5://127.0.0.1:8080.", "group": "HTTP", "sortOrder": 8 }, { - "key": "replay-proxy", - "name": "Replay Proxy", + "key": "-replay-proxy", + "displayName": "Replay Proxy", "parameterType": "Option", "dataType": "String", - "longFlag": "-replay-proxy", "description": "Replay matched requests using this proxy.", "group": "HTTP", "sortOrder": 9 }, { - "key": "follow-redirects", - "name": "Follow Redirects", + "key": "-r", + "displayName": "Follow Redirects", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-r", "description": "Follow redirects.", "group": "HTTP", "sortOrder": 10 }, { - "key": "timeout", - "name": "Timeout", + "key": "-timeout", + "displayName": "Timeout", "parameterType": "Option", "dataType": "Number", - "longFlag": "-timeout", "description": "HTTP request timeout in seconds.", "group": "HTTP", "sortOrder": 11 }, { - "key": "http2", - "name": "HTTP2", + "key": "-http2", + "displayName": "HTTP2", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-http2", "description": "Use HTTP2 protocol.", "group": "HTTP", "sortOrder": 12 }, { - "key": "sni", - "name": "SNI", + "key": "-sni", + "displayName": "SNI", "parameterType": "Option", "dataType": "String", - "longFlag": "-sni", "description": "Target TLS SNI, does not support FUZZ keyword.", "group": "HTTP", "sortOrder": 13 }, { - "key": "raw", - "name": "Raw", + "key": "-raw", + "displayName": "Raw", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-raw", "description": "Do not encode URI.", "group": "HTTP", "sortOrder": 14 }, { - "key": "ignore-body", - "name": "Ignore Body", + "key": "-ignore-body", + "displayName": "Ignore Body", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-ignore-body", "description": "Do not fetch the response content.", "group": "HTTP", "sortOrder": 15 }, { - "key": "recursion", - "name": "Recursion", + "key": "-recursion", + "displayName": "Recursion", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-recursion", "description": "Scan recursively. Only FUZZ keyword is supported, and URL must end in it.", "group": "HTTP", "sortOrder": 16 }, { - "key": "recursion-depth", - "name": "Recursion Depth", + "key": "-recursion-depth", + "displayName": "Recursion Depth", "parameterType": "Option", "dataType": "Number", - "longFlag": "-recursion-depth", "description": "Maximum recursion depth.", "group": "HTTP", "sortOrder": 17 }, { - "key": "recursion-strategy", - "name": "Recursion Strategy", + "key": "-recursion-strategy", + "displayName": "Recursion Strategy", "parameterType": "Option", "dataType": "Enum", - "longFlag": "-recursion-strategy", "description": "Recursion strategy.", "group": "HTTP", "sortOrder": 18, @@ -209,303 +191,273 @@ } }, { - "key": "threads", - "name": "Threads", + "key": "-t", + "displayName": "Threads", "parameterType": "Option", "dataType": "Number", - "shortFlag": "-t", "description": "Number of concurrent threads.", "group": "General", "sortOrder": 19 }, { - "key": "rate", - "name": "Rate", + "key": "-rate", + "displayName": "Rate", "parameterType": "Option", "dataType": "Number", - "longFlag": "-rate", "description": "Rate of requests per second.", "group": "General", "sortOrder": 20 }, { - "key": "delay", - "name": "Delay", + "key": "-p", + "displayName": "Delay", "parameterType": "Option", "dataType": "String", - "shortFlag": "-p", "description": "Seconds of delay between requests, or a range of random delay. For example \"0.1\" or \"0.1-2.0\".", "group": "General", "sortOrder": 21 }, { - "key": "maxtime", - "name": "Max Time", + "key": "-maxtime", + "displayName": "Max Time", "parameterType": "Option", "dataType": "Number", - "longFlag": "-maxtime", "description": "Maximum running time in seconds for entire process.", "group": "General", "sortOrder": 22 }, { - "key": "maxtime-job", - "name": "Max Time Per Job", + "key": "-maxtime-job", + "displayName": "Max Time Per Job", "parameterType": "Option", "dataType": "Number", - "longFlag": "-maxtime-job", "description": "Maximum running time in seconds per job.", "group": "General", "sortOrder": 23 }, { - "key": "autocalibrate", - "name": "Auto-Calibrate", + "key": "-ac", + "displayName": "Auto-Calibrate", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-ac", "description": "Automatically calibrate filtering options.", "group": "General", "sortOrder": 24 }, { - "key": "autocalibrate-custom", - "name": "Auto-Calibrate String", + "key": "-acc", + "displayName": "Auto-Calibrate String", "parameterType": "Option", "dataType": "String", - "longFlag": "-acc", "description": "Custom auto-calibration string. Can be used multiple times. Implies -ac.", "isRepeatable": true, "group": "General", "sortOrder": 25 }, { - "key": "autocalibrate-per-host", - "name": "Auto-Calibrate Per Host", + "key": "-ach", + "displayName": "Auto-Calibrate Per Host", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-ach", "description": "Per host autocalibration.", "group": "General", "sortOrder": 26 }, { - "key": "autocalibrate-keyword", - "name": "Auto-Calibrate Keyword", + "key": "-ack", + "displayName": "Auto-Calibrate Keyword", "parameterType": "Option", "dataType": "String", - "longFlag": "-ack", "description": "Autocalibration keyword.", "group": "General", "sortOrder": 27 }, { - "key": "autocalibrate-strategy", - "name": "Auto-Calibrate Strategy", + "key": "-acs", + "displayName": "Auto-Calibrate Strategy", "parameterType": "Option", "dataType": "String", - "longFlag": "-acs", "description": "Custom auto-calibration strategies. Can be used multiple times. Implies -ac.", "isRepeatable": true, "group": "General", "sortOrder": 28 }, { - "key": "stop-all-errors", - "name": "Stop on All Errors", + "key": "-sa", + "displayName": "Stop on All Errors", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-sa", "description": "Stop on all error cases. Implies -sf and -se.", "group": "General", "sortOrder": 29 }, { - "key": "stop-on-errors", - "name": "Stop on Spurious Errors", + "key": "-se", + "displayName": "Stop on Spurious Errors", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-se", "description": "Stop on spurious errors.", "group": "General", "sortOrder": 30 }, { - "key": "stop-on-forbidden", - "name": "Stop on Forbidden", + "key": "-sf", + "displayName": "Stop on Forbidden", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-sf", "description": "Stop when > 95% of responses return 403 Forbidden.", "group": "General", "sortOrder": 31 }, { - "key": "scrapers", - "name": "Scrapers", + "key": "-scrapers", + "displayName": "Scrapers", "parameterType": "Option", "dataType": "String", - "longFlag": "-scrapers", "description": "Active scraper groups.", "group": "General", "sortOrder": 32 }, { - "key": "scraperfile", - "name": "Scraper File", + "key": "-scraperfile", + "displayName": "Scraper File", "parameterType": "Option", "dataType": "String", - "longFlag": "-scraperfile", "description": "Custom scraper file path.", "group": "General", "sortOrder": 33 }, { - "key": "colorize", - "name": "Colorize", + "key": "-c", + "displayName": "Colorize", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-c", "description": "Colorize output.", "group": "General", "sortOrder": 34 }, { - "key": "silent", - "name": "Silent", + "key": "-s", + "displayName": "Silent", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-s", "description": "Do not print additional information (silent mode).", "group": "General", "sortOrder": 35 }, { - "key": "verbose", - "name": "Verbose", + "key": "-v", + "displayName": "Verbose", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-v", "description": "Verbose output, printing full URL and redirect location with the results.", "group": "General", "sortOrder": 36 }, { - "key": "json-output", - "name": "JSON Output", + "key": "-json", + "displayName": "JSON Output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-json", "description": "JSON output, printing newline-delimited JSON records.", "group": "General", "sortOrder": 37 }, { - "key": "config", - "name": "Config File", + "key": "-config", + "displayName": "Config File", "parameterType": "Option", "dataType": "String", - "longFlag": "-config", "description": "Load configuration from a file.", "group": "General", "sortOrder": 38 }, { - "key": "search", - "name": "Search", + "key": "-search", + "displayName": "Search", "parameterType": "Option", "dataType": "String", - "longFlag": "-search", "description": "Search for a FFUFHASH payload from ffuf history.", "group": "General", "sortOrder": 39 }, { - "key": "noninteractive", - "name": "Non-Interactive", + "key": "-noninteractive", + "displayName": "Non-Interactive", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-noninteractive", "description": "Disable the interactive console functionality.", "group": "General", "sortOrder": 40 }, { - "key": "version", - "name": "Version", + "key": "-V", + "displayName": "Version", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-V", "description": "Show version information.", "group": "General", "sortOrder": 41 }, { - "key": "match-codes", - "name": "Match Codes", + "key": "-mc", + "displayName": "Match Codes", "parameterType": "Option", "dataType": "String", - "longFlag": "-mc", "description": "Match HTTP status codes, or \"all\" for everything.", "group": "Matcher", "sortOrder": 42 }, { - "key": "match-size", - "name": "Match Size", + "key": "-ms", + "displayName": "Match Size", "parameterType": "Option", "dataType": "String", - "longFlag": "-ms", "description": "Match HTTP response size.", "group": "Matcher", "sortOrder": 43 }, { - "key": "match-lines", - "name": "Match Lines", + "key": "-ml", + "displayName": "Match Lines", "parameterType": "Option", "dataType": "String", - "longFlag": "-ml", "description": "Match amount of lines in response.", "group": "Matcher", "sortOrder": 44 }, { - "key": "match-words", - "name": "Match Words", + "key": "-mw", + "displayName": "Match Words", "parameterType": "Option", "dataType": "String", - "longFlag": "-mw", "description": "Match amount of words in response.", "group": "Matcher", "sortOrder": 45 }, { - "key": "match-time", - "name": "Match Time", + "key": "-mt", + "displayName": "Match Time", "parameterType": "Option", "dataType": "String", - "longFlag": "-mt", "description": "Match how many milliseconds to the first response byte, either greater or less than. E.g. >100 or <100.", "group": "Matcher", "sortOrder": 46 }, { - "key": "match-regexp", - "name": "Match Regexp", + "key": "-mr", + "displayName": "Match Regexp", "parameterType": "Option", "dataType": "String", - "longFlag": "-mr", "description": "Match regexp.", "group": "Matcher", "sortOrder": 47 }, { - "key": "match-mode", - "name": "Match Mode", + "key": "-mmode", + "displayName": "Match Mode", "parameterType": "Option", "dataType": "Enum", - "longFlag": "-mmode", "description": "Matcher set operator.", "group": "Matcher", "sortOrder": 48, @@ -526,71 +478,64 @@ } }, { - "key": "filter-codes", - "name": "Filter Codes", + "key": "-fc", + "displayName": "Filter Codes", "parameterType": "Option", "dataType": "String", - "longFlag": "-fc", "description": "Filter HTTP status codes from response. Comma separated list of codes and ranges.", "group": "Filter", "sortOrder": 49 }, { - "key": "filter-size", - "name": "Filter Size", + "key": "-fs", + "displayName": "Filter Size", "parameterType": "Option", "dataType": "String", - "longFlag": "-fs", "description": "Filter HTTP response size. Comma separated list of sizes and ranges.", "group": "Filter", "sortOrder": 50 }, { - "key": "filter-lines", - "name": "Filter Lines", + "key": "-fl", + "displayName": "Filter Lines", "parameterType": "Option", "dataType": "String", - "longFlag": "-fl", "description": "Filter by amount of lines in response. Comma separated list of line counts and ranges.", "group": "Filter", "sortOrder": 51 }, { - "key": "filter-words", - "name": "Filter Words", + "key": "-fw", + "displayName": "Filter Words", "parameterType": "Option", "dataType": "String", - "longFlag": "-fw", "description": "Filter by amount of words in response. Comma separated list of word counts and ranges.", "group": "Filter", "sortOrder": 52 }, { - "key": "filter-time", - "name": "Filter Time", + "key": "-ft", + "displayName": "Filter Time", "parameterType": "Option", "dataType": "String", - "longFlag": "-ft", "description": "Filter by number of milliseconds to the first response byte, either greater or less than. E.g. >100 or <100.", "group": "Filter", "sortOrder": 53 }, { - "key": "filter-regexp", - "name": "Filter Regexp", + "key": "-fr", + "displayName": "Filter Regexp", "parameterType": "Option", "dataType": "String", - "longFlag": "-fr", "description": "Filter regexp.", "group": "Filter", "sortOrder": 54 }, { - "key": "filter-mode", - "name": "Filter Mode", + "key": "-fmode", + "displayName": "Filter Mode", "parameterType": "Option", "dataType": "Enum", - "longFlag": "-fmode", "description": "Filter set operator.", "group": "Filter", "sortOrder": 55, @@ -611,42 +556,38 @@ } }, { - "key": "wordlist", - "name": "Wordlist", + "key": "-w", + "displayName": "Wordlist", "parameterType": "Option", "dataType": "String", - "shortFlag": "-w", "description": "Wordlist file path and (optional) keyword separated by colon. E.g. '/path/to/wordlist:KEYWORD'.", "isRepeatable": true, "group": "Input", "sortOrder": 56 }, { - "key": "extensions", - "name": "Extensions", + "key": "-e", + "displayName": "Extensions", "parameterType": "Option", "dataType": "String", - "shortFlag": "-e", "description": "Comma separated list of extensions. Extends FUZZ keyword.", "group": "Input", "sortOrder": 57 }, { - "key": "dirsearch-compat", - "name": "DirSearch Compatibility", + "key": "-D", + "displayName": "DirSearch Compatibility", "parameterType": "Flag", "dataType": "Boolean", - "shortFlag": "-D", "description": "DirSearch wordlist compatibility mode. Used in conjunction with -e flag.", "group": "Input", "sortOrder": 58 }, { - "key": "mode", - "name": "Mode", + "key": "-mode", + "displayName": "Mode", "parameterType": "Option", "dataType": "Enum", - "longFlag": "-mode", "description": "Multi-wordlist operation mode.", "group": "Input", "sortOrder": 59, @@ -672,41 +613,37 @@ } }, { - "key": "encoders", - "name": "Encoders", + "key": "-enc", + "displayName": "Encoders", "parameterType": "Option", "dataType": "String", - "longFlag": "-enc", "description": "Encoders for keywords, e.g. 'FUZZ:urlencode b64encode'.", "group": "Input", "sortOrder": 60 }, { - "key": "ignore-comments", - "name": "Ignore Comments", + "key": "-ic", + "displayName": "Ignore Comments", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-ic", "description": "Ignore wordlist comments.", "group": "Input", "sortOrder": 61 }, { - "key": "request", - "name": "Request File", + "key": "-request", + "displayName": "Request File", "parameterType": "Option", "dataType": "String", - "longFlag": "-request", "description": "File containing the raw HTTP request.", "group": "Input", "sortOrder": 62 }, { - "key": "request-proto", - "name": "Request Protocol", + "key": "-request-proto", + "displayName": "Request Protocol", "parameterType": "Option", "dataType": "Enum", - "longFlag": "-request-proto", "description": "Protocol to use along with raw request.", "group": "Input", "sortOrder": 63, @@ -727,51 +664,46 @@ } }, { - "key": "input-cmd", - "name": "Input Command", + "key": "-input-cmd", + "displayName": "Input Command", "parameterType": "Option", "dataType": "String", - "longFlag": "-input-cmd", "description": "Command producing the input. --input-num is required when using this method. Overrides -w.", "group": "Input", "sortOrder": 64 }, { - "key": "input-num", - "name": "Input Number", + "key": "-input-num", + "displayName": "Input Number", "parameterType": "Option", "dataType": "Number", - "longFlag": "-input-num", "description": "Number of inputs to test. Used in conjunction with --input-cmd.", "group": "Input", "sortOrder": 65 }, { - "key": "input-shell", - "name": "Input Shell", + "key": "-input-shell", + "displayName": "Input Shell", "parameterType": "Option", "dataType": "String", - "longFlag": "-input-shell", "description": "Shell to be used for running command.", "group": "Input", "sortOrder": 66 }, { - "key": "output", - "name": "Output File", + "key": "-o", + "displayName": "Output File", "parameterType": "Option", "dataType": "String", - "shortFlag": "-o", "description": "Write output to file.", "group": "Output", "sortOrder": 67 }, { - "key": "output-format", - "name": "Output Format", + "key": "-of", + "displayName": "Output Format", "parameterType": "Option", "dataType": "Enum", - "longFlag": "-of", "description": "Output file format.", "group": "Output", "sortOrder": 68, @@ -817,34 +749,79 @@ } }, { - "key": "output-dir", - "name": "Output Directory", + "key": "-od", + "displayName": "Output Directory", "parameterType": "Option", "dataType": "String", - "longFlag": "-od", "description": "Directory path to store matched results to.", "group": "Output", "sortOrder": 69 }, { - "key": "no-empty-output", - "name": "No Empty Output", + "key": "-or", + "displayName": "No Empty Output", "parameterType": "Flag", "dataType": "Boolean", - "longFlag": "-or", "description": "Don't create the output file if we don't have results.", "group": "Output", "sortOrder": 70 }, { - "key": "debug-log", - "name": "Debug Log", + "key": "-debug-log", + "displayName": "Debug Log", "parameterType": "Option", "dataType": "String", - "longFlag": "-debug-log", "description": "Write all of the internal logging to the specified file.", "group": "Output", "sortOrder": 71 } - ] + ], + "installation": { + "sources": [ + { + "key": "go-install", + "method": "package_manager", + "manager": "go", + "command": "go install github.com/ffuf/ffuf/v2@latest", + "url": "https://github.com/ffuf/ffuf#installation" + }, + { + "key": "brew", + "method": "package_manager", + "manager": "brew", + "command": "brew install ffuf", + "url": "https://github.com/ffuf/ffuf#installation", + "os": [ + "macos" + ] + }, + { + "key": "scoop", + "method": "package_manager", + "manager": "scoop", + "command": "scoop install ffuf", + "url": "https://github.com/ffuf/ffuf#installation", + "os": [ + "windows" + ] + }, + { + "key": "winget", + "method": "package_manager", + "manager": "winget", + "command": "winget install ffuf.ffuf", + "url": "https://github.com/ffuf/ffuf#installation", + "os": [ + "windows" + ] + }, + { + "key": "release-binary", + "method": "binary", + "command": "https://github.com/ffuf/ffuf/releases", + "url": "https://github.com/ffuf/ffuf#installation", + "note": "Download a prebuilt binary, unpack it and run it." + } + ] + } } diff --git a/public/tools-collection/git.json b/public/tools-collection/git.json new file mode 100644 index 0000000..07e6f93 --- /dev/null +++ b/public/tools-collection/git.json @@ -0,0 +1,29176 @@ +{ + "$schema": "https://commandly.divyeshio.in/specification/tool.json", + "binaryName": "git", + "displayName": "git", + "parameters": [ + { + "key": "--version", + "displayName": "Version", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "Prints the Git suite version that the git program came from.", + "aliases": [ + "-v" + ] + }, + { + "key": "--help", + "displayName": "Help", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Prints the synopsis and a list of the most commonly used commands.", + "aliases": [ + "-h" + ], + "recursive": true + }, + { + "key": "-C", + "displayName": "C", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "Run as if git was started in instead of the current working directory." + }, + { + "key": "-c", + "displayName": "C", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "Pass a configuration parameter to the command." + }, + { + "key": "--config-env", + "displayName": "Config Env", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Like -c =, give configuration variable a value, where is the name of an environment variable from which to retrieve the value." + }, + { + "key": "--exec-path", + "displayName": "Exec Path", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "Path to wherever your core Git programs are installed." + }, + { + "key": "--html-path", + "displayName": "HTML Path", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "Print the path, without trailing slash, where Git's HTML documentation is installed and exit." + }, + { + "key": "--man-path", + "displayName": "Man Path", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Print the manpath (see man(1)) for the man pages for this version of Git and exit." + }, + { + "key": "--info-path", + "displayName": "Info Path", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Print the path where the Info files documenting this version of Git are installed and exit." + }, + { + "key": "--paginate", + "displayName": "Paginate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Pipe all output into less (or if set, $PAGER) if standard output is a terminal.", + "aliases": [ + "-p" + ] + }, + { + "key": "--no-pager", + "displayName": "No Pager", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Do not pipe Git output into a pager.", + "aliases": [ + "-P" + ] + }, + { + "key": "--git-dir", + "displayName": "Git Dir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Set the path to the repository (\".git\" directory)." + }, + { + "key": "--work-tree", + "displayName": "Work Tree", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "Set the path to the working tree." + }, + { + "key": "--namespace", + "displayName": "Namespace", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "Set the Git namespace." + }, + { + "key": "--bare", + "displayName": "Bare", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "Treat the repository as a bare repository." + }, + { + "key": "--no-replace-objects", + "displayName": "No Replace Objects", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "Do not use replacement refs to replace Git objects." + }, + { + "key": "--no-lazy-fetch", + "displayName": "No Lazy Fetch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Do not fetch missing objects from the promisor remote on demand." + }, + { + "key": "--no-optional-locks", + "displayName": "No Optional Locks", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "Do not perform optional operations that require locks." + }, + { + "key": "--no-advice", + "displayName": "No Advice", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "Disable all advice hints from being printed." + }, + { + "key": "--literal-pathspecs", + "displayName": "Literal Pathspecs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "Treat pathspecs literally (i.e." + }, + { + "key": "--glob-pathspecs", + "displayName": "Glob Pathspecs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Add \"glob\" magic to all pathspec." + }, + { + "key": "--noglob-pathspecs", + "displayName": "Noglob Pathspecs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "Add \"literal\" magic to all pathspec." + }, + { + "key": "--icase-pathspecs", + "displayName": "Icase Pathspecs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "Add \"icase\" magic to all pathspec." + }, + { + "key": "--list-cmds", + "displayName": "List Cmds", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 23, + "description": "List commands by group." + }, + { + "key": "--attr-source", + "displayName": "Attr Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 24, + "description": "Read gitattributes from instead of the worktree." + } + ], + "commands": [ + { + "key": "add", + "displayName": "add", + "sortOrder": 0, + "description": "Add file contents to the index", + "parameters": [ + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "dry run", + "aliases": [ + "-n" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "be verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "interactive picking", + "aliases": [ + "-i" + ] + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "select hunks interactively", + "aliases": [ + "-p" + ] + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "edit current diff and apply", + "aliases": [ + "-e" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "allow adding otherwise ignored files", + "aliases": [ + "-f" + ] + }, + { + "key": "--update", + "displayName": "Update", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "update tracked files", + "aliases": [ + "-u" + ] + }, + { + "key": "--renormalize", + "displayName": "Renormalize", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "renormalize EOL of tracked files (implies -u)" + }, + { + "key": "--intent-to-add", + "displayName": "Intent To Add", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "record only the fact that the path will be added later", + "aliases": [ + "-N" + ] + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "add changes from all tracked and untracked files", + "aliases": [ + "-A" + ] + }, + { + "key": "--ignore-removal", + "displayName": "Ignore Removal", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "ignore paths removed in the working tree (same as --no-all)" + }, + { + "key": "--refresh", + "displayName": "Refresh", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "don't add, only refresh the index" + }, + { + "key": "--ignore-errors", + "displayName": "Ignore Errors", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "just skip files which cannot be added because of errors" + }, + { + "key": "--ignore-missing", + "displayName": "Ignore Missing", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "check if - even missing - files are ignored in dry run" + }, + { + "key": "--sparse", + "displayName": "Sparse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "allow updating entries outside of the sparse-checkout cone" + }, + { + "key": "--chmod", + "displayName": "Chmod", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "override the executable bit of the listed files" + }, + { + "key": "--pathspec-from-file", + "displayName": "Pathspec From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "read pathspec from file" + }, + { + "key": "--pathspec-file-nul", + "displayName": "Pathspec File Nul", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "with --pathspec-from-file, pathspec elements are separated with NUL character" + }, + { + "key": "--no-warn-embedded-repo", + "displayName": "No Warn Embedded Repo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "By default, git add will warn when adding an embedded repository to the index without using git submodule add to create an entry in .gitmodules." + } + ] + }, + { + "key": "am", + "displayName": "am", + "sortOrder": 1, + "description": "Apply a series of patches from a mailbox", + "parameters": [ + { + "key": "mbox", + "displayName": "Mbox", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "Maildir", + "displayName": "Maildir", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "run interactively", + "aliases": [ + "-i" + ] + }, + { + "key": "--no-verify", + "displayName": "No Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "bypass pre-applypatch and applypatch-msg hooks", + "aliases": [ + "-n" + ] + }, + { + "key": "--verify", + "displayName": "Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "opposite of --no-verify" + }, + { + "key": "--3way", + "displayName": "3way", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "allow fall back on 3way merging if needed", + "aliases": [ + "-3" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "be quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "add a Signed-off-by trailer to the commit message", + "aliases": [ + "-s" + ] + }, + { + "key": "--utf8", + "displayName": "UTF8", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "recode into utf8 (default)", + "aliases": [ + "-u" + ] + }, + { + "key": "--keep", + "displayName": "Keep", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "pass -k flag to git-mailinfo", + "aliases": [ + "-k" + ] + }, + { + "key": "--keep-non-patch", + "displayName": "Keep Non Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "pass -b flag to git-mailinfo" + }, + { + "key": "--message-id", + "displayName": "Message ID", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "pass -m flag to git-mailinfo", + "aliases": [ + "-m" + ] + }, + { + "key": "--keep-cr", + "displayName": "Keep CR", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "pass --keep-cr flag to git-mailsplit for mbox format" + }, + { + "key": "--scissors", + "displayName": "Scissors", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "strip everything before a scissors line", + "aliases": [ + "-c" + ] + }, + { + "key": "--quoted-cr", + "displayName": "Quoted CR", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "pass it through git-mailinfo" + }, + { + "key": "--whitespace", + "displayName": "Whitespace", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "pass it through git-apply" + }, + { + "key": "--ignore-space-change", + "displayName": "Ignore Space Change", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "pass it through git-apply" + }, + { + "key": "--ignore-whitespace", + "displayName": "Ignore Whitespace", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "pass it through git-apply" + }, + { + "key": "--directory", + "displayName": "Directory", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "pass it through git-apply" + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 19, + "description": "pass it through git-apply" + }, + { + "key": "--include", + "displayName": "Include", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 20, + "description": "pass it through git-apply" + }, + { + "key": "-C", + "displayName": "C", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "pass it through git-apply" + }, + { + "key": "-p", + "displayName": "P", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 22, + "description": "pass it through git-apply" + }, + { + "key": "--patch-format", + "displayName": "Patch Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 23, + "description": "format the patch(es) are in" + }, + { + "key": "--reject", + "displayName": "Reject", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "pass it through git-apply" + }, + { + "key": "--resolvemsg", + "displayName": "Resolvemsg", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "..." + }, + { + "key": "--continue", + "displayName": "Continue", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "continue applying patches after resolving a conflict" + }, + { + "key": "--resolved", + "displayName": "Resolved", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "synonyms for --continue", + "aliases": [ + "-r" + ] + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "skip the current patch" + }, + { + "key": "--abort", + "displayName": "Abort", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "restore the original branch and abort the patching operation" + }, + { + "key": "--quit", + "displayName": "Quit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "abort the patching operation but keep HEAD where it is" + }, + { + "key": "--show-current-patch", + "displayName": "Show Current Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "show the patch being applied" + }, + { + "key": "--retry", + "displayName": "Retry", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "try to apply current patch again" + }, + { + "key": "--allow-empty", + "displayName": "Allow Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "record the empty patch as an empty commit" + }, + { + "key": "--committer-date-is-author-date", + "displayName": "Committer Date Is Author Date", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "lie about committer date" + }, + { + "key": "--ignore-date", + "displayName": "Ignore Date", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "use current timestamp for author date" + }, + { + "key": "--rerere-autoupdate", + "displayName": "Rerere Autoupdate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "update the index with reused conflict resolution if possible" + }, + { + "key": "--gpg-sign", + "displayName": "Gpg Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "GPG-sign commits", + "aliases": [ + "-S" + ] + }, + { + "key": "--empty", + "displayName": "Empty", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 38, + "description": "how to handle empty patches" + } + ] + }, + { + "key": "archive", + "displayName": "archive", + "sortOrder": 2, + "description": "Create an archive of files from a named tree", + "parameters": [ + { + "key": "tree-ish", + "displayName": "Tree Ish", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "archive format" + }, + { + "key": "--prefix", + "displayName": "Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "prepend prefix to each pathname in the archive" + }, + { + "key": "--add-file", + "displayName": "Add File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "add untracked file to archive" + }, + { + "key": "--add-virtual-file", + "displayName": "Add Virtual File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "add untracked file to archive" + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "write the archive to this file", + "aliases": [ + "-o" + ] + }, + { + "key": "--worktree-attributes", + "displayName": "Worktree Attributes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "read .gitattributes in working directory" + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "report archived files on stderr", + "aliases": [ + "-v" + ] + }, + { + "key": "--mtime", + "displayName": "Mtime", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "set modification time of archive entries" + }, + { + "key": "-NUM", + "displayName": "NUM", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "set compression level" + }, + { + "key": "--list", + "displayName": "List", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "list supported archive formats", + "aliases": [ + "-l" + ] + }, + { + "key": "--remote", + "displayName": "Remote", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "retrieve the archive from remote repository " + }, + { + "key": "--exec", + "displayName": "Exec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "path to the remote git-upload-archive command" + } + ] + }, + { + "key": "backfill", + "displayName": "backfill", + "sortOrder": 3, + "description": "Download missing objects in a partial clone", + "parameters": [ + { + "key": "--min-batch-size", + "displayName": "Min Batch Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "Minimum number of objects to request at a time" + }, + { + "key": "--sparse", + "displayName": "Sparse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "Restrict the missing objects to the current sparse-checkout" + } + ] + }, + { + "key": "bisect", + "displayName": "bisect", + "sortOrder": 4, + "description": "Use binary search to find the commit that introduced a bug", + "commands": [ + { + "key": "bisect-start", + "displayName": "start", + "sortOrder": 5, + "parameters": [ + { + "key": "bad", + "displayName": "Bad", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "good", + "displayName": "Good", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "--term-new", + "displayName": "Term New", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "aliases": [ + "--term-bad" + ] + }, + { + "key": "--term-old", + "displayName": "Term Old", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "aliases": [ + "--term-good" + ] + }, + { + "key": "--no-checkout", + "displayName": "No Checkout", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5 + }, + { + "key": "--first-parent", + "displayName": "First Parent", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6 + } + ] + }, + { + "key": "bisect-good", + "displayName": "good", + "sortOrder": 6, + "parameters": [ + { + "key": "rev", + "displayName": "Rev", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + }, + { + "key": "bisect-bad", + "displayName": "bad", + "sortOrder": 7, + "parameters": [ + { + "key": "rev", + "displayName": "Rev", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + }, + { + "key": "bisect-terms", + "displayName": "terms", + "sortOrder": 8, + "parameters": [ + { + "key": "--term-good", + "displayName": "Term Good", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0 + }, + { + "key": "--term-bad", + "displayName": "Term Bad", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + } + ] + }, + { + "key": "bisect-skip", + "displayName": "skip", + "sortOrder": 9, + "parameters": [ + { + "key": "rev", + "displayName": "Rev", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "range", + "displayName": "Range", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + } + ] + }, + { + "key": "bisect-next", + "displayName": "next", + "sortOrder": 10 + }, + { + "key": "bisect-reset", + "displayName": "reset", + "sortOrder": 11, + "parameters": [ + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + }, + { + "key": "bisect-visualize", + "displayName": "visualize", + "sortOrder": 12 + }, + { + "key": "bisect-replay", + "displayName": "replay", + "sortOrder": 13, + "parameters": [ + { + "key": "logfile", + "displayName": "Logfile", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + } + ] + }, + { + "key": "bisect-log", + "displayName": "log", + "sortOrder": 14 + }, + { + "key": "bisect-run", + "displayName": "run", + "sortOrder": 15, + "parameters": [ + { + "key": "cmd", + "displayName": "Cmd", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "arg", + "displayName": "Arg", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + } + ] + } + ] + }, + { + "key": "branch", + "displayName": "branch", + "sortOrder": 16, + "description": "List, create, or delete branches", + "parameters": [ + { + "key": "branch-name", + "displayName": "Branch Name", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "start-point", + "displayName": "Start Point", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "pattern", + "displayName": "Pattern", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "old-branch", + "displayName": "Old Branch", + "parameterType": "Argument", + "dataType": "String", + "position": 3, + "sortOrder": 3 + }, + { + "key": "new-branch", + "displayName": "New Branch", + "parameterType": "Argument", + "dataType": "String", + "position": 4, + "sortOrder": 4 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "show hash and subject, give twice for upstream branch", + "group": "Generic options", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "suppress informational messages", + "group": "Generic options", + "aliases": [ + "-q" + ] + }, + { + "key": "--track", + "displayName": "Track", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "set branch tracking configuration", + "group": "Generic options", + "aliases": [ + "-t" + ] + }, + { + "key": "--set-upstream-to", + "displayName": "Set Upstream To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "change the upstream info", + "group": "Generic options", + "aliases": [ + "-u" + ] + }, + { + "key": "--unset-upstream", + "displayName": "Unset Upstream", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "unset the upstream info", + "group": "Generic options" + }, + { + "key": "--color", + "displayName": "Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "use colored output", + "group": "Generic options" + }, + { + "key": "--remotes", + "displayName": "Remotes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "act on remote-tracking branches", + "group": "Generic options", + "aliases": [ + "-r" + ] + }, + { + "key": "--contains", + "displayName": "Contains", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "print only branches that contain the commit", + "group": "Generic options" + }, + { + "key": "--no-contains", + "displayName": "No Contains", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "print only branches that don't contain the commit", + "group": "Generic options" + }, + { + "key": "--abbrev", + "displayName": "Abbrev", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "use digits to display object names", + "group": "Generic options" + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "list both remote-tracking and local branches", + "group": "Specific git-branch actions", + "aliases": [ + "-a" + ] + }, + { + "key": "--delete", + "displayName": "Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "delete fully merged branch", + "group": "Specific git-branch actions", + "aliases": [ + "-d" + ] + }, + { + "key": "-D", + "displayName": "D", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "delete branch (even if not merged)", + "group": "Specific git-branch actions" + }, + { + "key": "--move", + "displayName": "Move", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "move/rename a branch and its reflog", + "group": "Specific git-branch actions", + "aliases": [ + "-m" + ] + }, + { + "key": "-M", + "displayName": "M", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "move/rename a branch, even if target exists", + "group": "Specific git-branch actions" + }, + { + "key": "--omit-empty", + "displayName": "Omit Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "do not output a newline after empty formatted refs", + "group": "Specific git-branch actions" + }, + { + "key": "--copy", + "displayName": "Copy", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "copy a branch and its reflog", + "group": "Specific git-branch actions", + "aliases": [ + "-c" + ] + }, + { + "key": "-C", + "displayName": "C", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "copy a branch, even if target exists", + "group": "Specific git-branch actions" + }, + { + "key": "--list", + "displayName": "List", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "list branch names", + "group": "Specific git-branch actions", + "aliases": [ + "-l" + ] + }, + { + "key": "--show-current", + "displayName": "Show Current", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "show current branch name", + "group": "Specific git-branch actions" + }, + { + "key": "--create-reflog", + "displayName": "Create Reflog", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "create the branch's reflog", + "group": "Specific git-branch actions" + }, + { + "key": "--edit-description", + "displayName": "Edit Description", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "edit the description for the branch", + "group": "Specific git-branch actions" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "force creation, move/rename, deletion", + "group": "Specific git-branch actions", + "aliases": [ + "-f" + ] + }, + { + "key": "--merged", + "displayName": "Merged", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 28, + "description": "print only branches that are merged", + "group": "Specific git-branch actions" + }, + { + "key": "--no-merged", + "displayName": "No Merged", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 29, + "description": "print only branches that are not merged", + "group": "Specific git-branch actions" + }, + { + "key": "--column", + "displayName": "Column", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "list branches in columns", + "group": "Specific git-branch actions" + }, + { + "key": "--sort", + "displayName": "Sort", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 31, + "description": "field name to sort on", + "group": "Specific git-branch actions" + }, + { + "key": "--points-at", + "displayName": "Points At", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 32, + "description": "print only branches of the object", + "group": "Specific git-branch actions" + }, + { + "key": "--ignore-case", + "displayName": "Ignore Case", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "sorting and filtering are case insensitive", + "group": "Specific git-branch actions", + "aliases": [ + "-i" + ] + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "recurse through submodules", + "group": "Specific git-branch actions" + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 35, + "description": "format to use for the output", + "group": "Specific git-branch actions" + }, + { + "key": "--set-upstream", + "displayName": "Set Upstream", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "As this option had confusing syntax, it is no longer supported." + } + ] + }, + { + "key": "bundle", + "displayName": "bundle", + "sortOrder": 17, + "description": "Move objects and refs by archive", + "commands": [ + { + "key": "bundle-create", + "displayName": "create", + "sortOrder": 18, + "parameters": [ + { + "key": "file", + "displayName": "File", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "git-rev-list-args", + "displayName": "Git Rev List Args", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "isRequired": true + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "do not show progress meter", + "aliases": [ + "-q" + ] + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "show progress meter" + }, + { + "key": "--version", + "displayName": "Version", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "specify bundle format version" + } + ] + }, + { + "key": "bundle-verify", + "displayName": "verify", + "sortOrder": 19, + "parameters": [ + { + "key": "file", + "displayName": "File", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "do not show bundle details", + "aliases": [ + "-q" + ] + } + ] + }, + { + "key": "bundle-list-heads", + "displayName": "list-heads", + "sortOrder": 20, + "parameters": [ + { + "key": "file", + "displayName": "File", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "refname", + "displayName": "Refname", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + } + ] + }, + { + "key": "bundle-unbundle", + "displayName": "unbundle", + "sortOrder": 21, + "parameters": [ + { + "key": "file", + "displayName": "File", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "refname", + "displayName": "Refname", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "show progress meter" + } + ] + } + ] + }, + { + "key": "checkout", + "displayName": "checkout", + "sortOrder": 22, + "description": "Switch branches or restore working tree files", + "parameters": [ + { + "key": "branch", + "displayName": "Branch", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "file", + "displayName": "File", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "-b", + "displayName": "B", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "create and checkout a new branch" + }, + { + "key": "-B", + "displayName": "B", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "create/reset and checkout a branch" + }, + { + "key": "-l", + "displayName": "L", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "create reflog for new branch" + }, + { + "key": "--guess", + "displayName": "Guess", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "second guess 'git checkout ' (default)" + }, + { + "key": "--overlay", + "displayName": "Overlay", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "use overlay mode (default)" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "suppress progress reporting", + "aliases": [ + "-q" + ] + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "control recursive updating of submodules" + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "force progress reporting" + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "perform a 3-way merge with the new branch", + "aliases": [ + "-m" + ] + }, + { + "key": "--conflict", + "displayName": "Conflict", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "conflict style (merge, diff3, or zdiff3)" + }, + { + "key": "--detach", + "displayName": "Detach", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "detach HEAD at named commit", + "aliases": [ + "-d" + ] + }, + { + "key": "--track", + "displayName": "Track", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "set branch tracking configuration", + "aliases": [ + "-t" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "force checkout (throw away local modifications)", + "aliases": [ + "-f" + ] + }, + { + "key": "--orphan", + "displayName": "Orphan", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "new unborn branch" + }, + { + "key": "--overwrite-ignore", + "displayName": "Overwrite Ignore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "update ignored files (default)" + }, + { + "key": "--ignore-other-worktrees", + "displayName": "Ignore Other Worktrees", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "do not check if another worktree is using this branch" + }, + { + "key": "--ours", + "displayName": "Ours", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "checkout our version for unmerged files", + "aliases": [ + "-2" + ] + }, + { + "key": "--theirs", + "displayName": "Theirs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "checkout their version for unmerged files", + "aliases": [ + "-3" + ] + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "select hunks interactively", + "aliases": [ + "-p" + ] + }, + { + "key": "--ignore-skip-worktree-bits", + "displayName": "Ignore Skip Worktree Bits", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "do not limit pathspecs to sparse entries only" + }, + { + "key": "--pathspec-from-file", + "displayName": "Pathspec From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 22, + "description": "read pathspec from file" + }, + { + "key": "--pathspec-file-nul", + "displayName": "Pathspec File Nul", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "with --pathspec-from-file, pathspec elements are separated with NUL character" + } + ] + }, + { + "key": "cherry-pick", + "displayName": "cherry-pick", + "sortOrder": 23, + "description": "Apply the changes introduced by some existing commits", + "parameters": [ + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--quit", + "displayName": "Quit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "end revert or cherry-pick sequence" + }, + { + "key": "--continue", + "displayName": "Continue", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "resume revert or cherry-pick sequence" + }, + { + "key": "--abort", + "displayName": "Abort", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "cancel revert or cherry-pick sequence" + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "skip current commit and continue" + }, + { + "key": "--cleanup", + "displayName": "Cleanup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "how to strip spaces and #comments from message" + }, + { + "key": "--no-commit", + "displayName": "No Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "don't automatically commit", + "aliases": [ + "-n" + ] + }, + { + "key": "--commit", + "displayName": "Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "opposite of --no-commit" + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "edit the commit message", + "aliases": [ + "-e" + ] + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "add a Signed-off-by trailer", + "aliases": [ + "-s" + ] + }, + { + "key": "--mainline", + "displayName": "Mainline", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "select mainline parent", + "aliases": [ + "-m" + ] + }, + { + "key": "--rerere-autoupdate", + "displayName": "Rerere Autoupdate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "update the index with reused conflict resolution if possible" + }, + { + "key": "--strategy", + "displayName": "Strategy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "merge strategy" + }, + { + "key": "--strategy-option", + "displayName": "Strategy Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "option for merge strategy", + "aliases": [ + "-X" + ] + }, + { + "key": "--gpg-sign", + "displayName": "Gpg Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "GPG sign commit", + "aliases": [ + "-S" + ] + }, + { + "key": "-x", + "displayName": "X", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "append commit name" + }, + { + "key": "--ff", + "displayName": "Ff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "allow fast-forward" + }, + { + "key": "--allow-empty", + "displayName": "Allow Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "preserve initially empty commits" + }, + { + "key": "--allow-empty-message", + "displayName": "Allow Empty Message", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "allow commits with empty messages" + }, + { + "key": "--keep-redundant-commits", + "displayName": "Keep Redundant Commits", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "deprecated: use --empty=keep instead" + }, + { + "key": "--empty", + "displayName": "Empty", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 20, + "description": "how to handle commits that become empty" + }, + { + "key": "-r", + "displayName": "R", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "It used to be that the command defaulted to do -x described above, and -r was to disable it." + } + ] + }, + { + "key": "clean", + "displayName": "clean", + "sortOrder": 24, + "description": "Remove untracked files from the working tree", + "parameters": [ + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "do not print names of files removed", + "aliases": [ + "-q" + ] + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "dry run", + "aliases": [ + "-n" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "force", + "aliases": [ + "-f" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "interactive cleaning", + "aliases": [ + "-i" + ] + }, + { + "key": "-d", + "displayName": "D", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "remove whole directories" + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "add to ignore rules", + "aliases": [ + "-e" + ] + }, + { + "key": "-x", + "displayName": "X", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "remove ignored files, too" + }, + { + "key": "-X", + "displayName": "X", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "remove only ignored files" + } + ] + }, + { + "key": "clone", + "displayName": "clone", + "sortOrder": 25, + "description": "Clone a repository into a new directory", + "parameters": [ + { + "key": "repo", + "displayName": "Repo", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "dir", + "displayName": "Dir", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "be more verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "be more quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "force progress reporting" + }, + { + "key": "--reject-shallow", + "displayName": "Reject Shallow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "don't clone shallow repository" + }, + { + "key": "--no-checkout", + "displayName": "No Checkout", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "don't create a checkout", + "aliases": [ + "-n" + ] + }, + { + "key": "--checkout", + "displayName": "Checkout", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "opposite of --no-checkout" + }, + { + "key": "--bare", + "displayName": "Bare", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "create a bare repository" + }, + { + "key": "--mirror", + "displayName": "Mirror", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "create a mirror repository (implies --bare)" + }, + { + "key": "--local", + "displayName": "Local", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "to clone from a local repository", + "aliases": [ + "-l" + ] + }, + { + "key": "--no-hardlinks", + "displayName": "No Hardlinks", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "don't use local hardlinks, always copy" + }, + { + "key": "--hardlinks", + "displayName": "Hardlinks", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "opposite of --no-hardlinks" + }, + { + "key": "--shared", + "displayName": "Shared", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "setup as shared repository", + "aliases": [ + "-s" + ] + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "initialize submodules in the clone" + }, + { + "key": "--recursive", + "displayName": "Recursive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "alias of --recurse-submodules" + }, + { + "key": "--jobs", + "displayName": "Jobs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "number of submodules cloned in parallel", + "aliases": [ + "-j" + ] + }, + { + "key": "--template", + "displayName": "Template", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "directory from which templates will be used" + }, + { + "key": "--reference", + "displayName": "Reference", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "reference repository" + }, + { + "key": "--reference-if-able", + "displayName": "Reference If Able", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 19, + "description": "reference repository" + }, + { + "key": "--dissociate", + "displayName": "Dissociate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "use --reference only while cloning" + }, + { + "key": "--origin", + "displayName": "Origin", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "use instead of 'origin' to track upstream", + "aliases": [ + "-o" + ] + }, + { + "key": "--branch", + "displayName": "Branch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 22, + "description": "checkout instead of the remote's HEAD", + "aliases": [ + "-b" + ] + }, + { + "key": "--revision", + "displayName": "Revision", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 23, + "description": "clone single revision and check out" + }, + { + "key": "--upload-pack", + "displayName": "Upload Pack", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 24, + "description": "path to git-upload-pack on the remote", + "aliases": [ + "-u" + ] + }, + { + "key": "--depth", + "displayName": "Depth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 25, + "description": "create a shallow clone of that depth" + }, + { + "key": "--shallow-since", + "displayName": "Shallow Since", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 26, + "description": "create a shallow clone since a specific time" + }, + { + "key": "--shallow-exclude", + "displayName": "Shallow Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 27, + "description": "deepen history of shallow clone, excluding ref" + }, + { + "key": "--single-branch", + "displayName": "Single Branch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "clone only one branch, HEAD or --branch" + }, + { + "key": "--tags", + "displayName": "Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "clone tags, and make later fetches not to follow them" + }, + { + "key": "--shallow-submodules", + "displayName": "Shallow Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "any cloned submodules will be shallow" + }, + { + "key": "--separate-git-dir", + "displayName": "Separate Git Dir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 31, + "description": "separate git dir from working tree" + }, + { + "key": "--ref-format", + "displayName": "Ref Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 32, + "description": "specify the reference format to use" + }, + { + "key": "--config", + "displayName": "Config", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "set config inside the new repository", + "aliases": [ + "-c" + ] + }, + { + "key": "--server-option", + "displayName": "Server Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 34, + "description": "option to transmit" + }, + { + "key": "--ipv4", + "displayName": "IPv4", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "use IPv4 addresses only", + "aliases": [ + "-4" + ] + }, + { + "key": "--ipv6", + "displayName": "IPv6", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "use IPv6 addresses only", + "aliases": [ + "-6" + ] + }, + { + "key": "--filter", + "displayName": "Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 37, + "description": "object filtering" + }, + { + "key": "--also-filter-submodules", + "displayName": "Also Filter Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "apply partial clone filters to submodules" + }, + { + "key": "--remote-submodules", + "displayName": "Remote Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "any cloned submodules will use their remote-tracking branch" + }, + { + "key": "--sparse", + "displayName": "Sparse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "initialize sparse-checkout file to include only files at root" + }, + { + "key": "--bundle-uri", + "displayName": "Bundle URI", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 41, + "description": "a URI for downloading bundles before fetching from origin remote" + } + ] + }, + { + "key": "commit", + "displayName": "commit", + "sortOrder": 26, + "description": "Record changes to the repository", + "parameters": [ + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "suppress summary after successful commit", + "aliases": [ + "-q" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "show diff in commit message template", + "aliases": [ + "-v" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "read message from file", + "group": "Commit message options", + "aliases": [ + "-F" + ] + }, + { + "key": "--author", + "displayName": "Author", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "override author for commit", + "group": "Commit message options" + }, + { + "key": "--date", + "displayName": "Date", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "override date for commit", + "group": "Commit message options" + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "commit message", + "group": "Commit message options", + "aliases": [ + "-m" + ] + }, + { + "key": "--reedit-message", + "displayName": "Reedit Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "reuse and edit message from specified commit", + "group": "Commit message options", + "aliases": [ + "-c" + ] + }, + { + "key": "--reuse-message", + "displayName": "Reuse Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "reuse message from specified commit", + "group": "Commit message options", + "aliases": [ + "-C" + ] + }, + { + "key": "--fixup", + "displayName": "Fixup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "use autosquash formatted message to fixup or amend/reword specified commit", + "group": "Commit message options" + }, + { + "key": "--squash", + "displayName": "Squash", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "use autosquash formatted message to squash specified commit", + "group": "Commit message options" + }, + { + "key": "--reset-author", + "displayName": "Reset Author", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "the commit is authored by me now (used with -C/-c/--amend)", + "group": "Commit message options" + }, + { + "key": "--trailer", + "displayName": "Trailer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "add custom trailer(s)", + "group": "Commit message options" + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "add a Signed-off-by trailer", + "group": "Commit message options", + "aliases": [ + "-s" + ] + }, + { + "key": "--template", + "displayName": "Template", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "use specified template file", + "group": "Commit message options", + "aliases": [ + "-t" + ] + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "force edit of commit", + "group": "Commit message options", + "aliases": [ + "-e" + ] + }, + { + "key": "--cleanup", + "displayName": "Cleanup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "how to strip spaces and #comments from message", + "group": "Commit message options" + }, + { + "key": "--status", + "displayName": "Status", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "include status in commit message template", + "group": "Commit message options" + }, + { + "key": "--gpg-sign", + "displayName": "Gpg Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "GPG sign commit", + "group": "Commit message options", + "aliases": [ + "-S" + ] + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "commit all changed files", + "group": "Commit contents options", + "aliases": [ + "-a" + ] + }, + { + "key": "--include", + "displayName": "Include", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "add specified files to index for commit", + "group": "Commit contents options", + "aliases": [ + "-i" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "interactively add files", + "group": "Commit contents options" + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "interactively add changes", + "group": "Commit contents options", + "aliases": [ + "-p" + ] + }, + { + "key": "--only", + "displayName": "Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "commit only specified files", + "group": "Commit contents options", + "aliases": [ + "-o" + ] + }, + { + "key": "--no-verify", + "displayName": "No Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "bypass pre-commit and commit-msg hooks", + "group": "Commit contents options", + "aliases": [ + "-n" + ] + }, + { + "key": "--verify", + "displayName": "Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "opposite of --no-verify", + "group": "Commit contents options" + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "show what would be committed", + "group": "Commit contents options" + }, + { + "key": "--short", + "displayName": "Short", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "show status concisely", + "group": "Commit contents options" + }, + { + "key": "--branch", + "displayName": "Branch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "show branch information", + "group": "Commit contents options" + }, + { + "key": "--ahead-behind", + "displayName": "Ahead Behind", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "compute full ahead/behind values", + "group": "Commit contents options" + }, + { + "key": "--porcelain", + "displayName": "Porcelain", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "machine-readable output", + "group": "Commit contents options" + }, + { + "key": "--long", + "displayName": "Long", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "show status in long format (default)", + "group": "Commit contents options" + }, + { + "key": "--null", + "displayName": "Null", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "terminate entries with NUL", + "group": "Commit contents options", + "aliases": [ + "-z" + ] + }, + { + "key": "--amend", + "displayName": "Amend", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "amend previous commit", + "group": "Commit contents options" + }, + { + "key": "--no-post-rewrite", + "displayName": "No Post Rewrite", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "bypass post-rewrite hook", + "group": "Commit contents options" + }, + { + "key": "--post-rewrite", + "displayName": "Post Rewrite", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "opposite of --no-post-rewrite", + "group": "Commit contents options" + }, + { + "key": "--untracked-files", + "displayName": "Untracked Files", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "show untracked files, optional modes: all, normal, no.", + "group": "Commit contents options", + "aliases": [ + "-u" + ] + }, + { + "key": "--pathspec-from-file", + "displayName": "Pathspec From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 37, + "description": "read pathspec from file", + "group": "Commit contents options" + }, + { + "key": "--pathspec-file-nul", + "displayName": "Pathspec File Nul", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "with --pathspec-from-file, pathspec elements are separated with NUL character", + "group": "Commit contents options" + }, + { + "key": "--allow-empty", + "displayName": "Allow Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "Usually recording a commit that has the exact same tree as its sole parent commit is a mistake, and the command prevents you from making such a commit." + }, + { + "key": "--allow-empty-message", + "displayName": "Allow Empty Message", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "Create a commit with an empty commit message without using plumbing commands like git-commit-tree(1)." + } + ] + }, + { + "key": "describe", + "displayName": "describe", + "sortOrder": 27, + "description": "Give an object a human readable name based on an available ref", + "parameters": [ + { + "key": "commit-ish", + "displayName": "Commit Ish", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "blob", + "displayName": "Blob", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--contains", + "displayName": "Contains", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "find the tag that comes after the commit" + }, + { + "key": "--debug", + "displayName": "Debug", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "debug search strategy on stderr" + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "use any ref" + }, + { + "key": "--tags", + "displayName": "Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "use any tag, even unannotated" + }, + { + "key": "--long", + "displayName": "Long", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "always use long format" + }, + { + "key": "--first-parent", + "displayName": "First Parent", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "only follow first parent" + }, + { + "key": "--abbrev", + "displayName": "Abbrev", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "use digits to display object names" + }, + { + "key": "--exact-match", + "displayName": "Exact Match", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "only output exact matches" + }, + { + "key": "--candidates", + "displayName": "Candidates", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "consider most recent tags (default: 10)" + }, + { + "key": "--match", + "displayName": "Match", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "only consider tags matching " + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "do not consider tags matching " + }, + { + "key": "--always", + "displayName": "Always", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "show abbreviated commit object as fallback" + }, + { + "key": "--dirty", + "displayName": "Dirty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "append on dirty working tree (default: \"-dirty\")" + }, + { + "key": "--broken", + "displayName": "Broken", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "append on broken working tree (default: \"-broken\")" + } + ] + }, + { + "key": "diff", + "displayName": "diff", + "sortOrder": 28, + "description": "Show changes between commits, commit and working tree, etc", + "parameters": [ + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "blob", + "displayName": "Blob", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "Generate patch (see the section called \"GENERATING PATCH TEXT WITH -P\").", + "aliases": [ + "-p", + "-u" + ] + }, + { + "key": "--unified", + "displayName": "Unified", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "Generate diffs with lines of context instead of the usual three.", + "aliases": [ + "-U" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "Output to a specific file instead of stdout." + }, + { + "key": "--output-indicator-new", + "displayName": "Output Indicator New", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "Specify the character used to indicate new, old or context lines in the generated patch.", + "aliases": [ + "--output-indicator-old", + "--output-indicator-context" + ] + }, + { + "key": "--raw", + "displayName": "Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "Generate the diff in raw format." + }, + { + "key": "--patch-with-raw", + "displayName": "Patch With Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Synonym for -p --raw." + }, + { + "key": "--indent-heuristic", + "displayName": "Indent Heuristic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "Enable the heuristic that shifts diff hunk boundaries to make patches easier to read." + }, + { + "key": "--minimal", + "displayName": "Minimal", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Spend extra time to make sure the smallest possible diff is produced." + }, + { + "key": "--patience", + "displayName": "Patience", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Generate a diff using the \"patience diff\" algorithm." + }, + { + "key": "--histogram", + "displayName": "Histogram", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Generate a diff using the \"histogram diff\" algorithm." + }, + { + "key": "--anchored", + "displayName": "Anchored", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "Generate a diff using the \"anchored diff\" algorithm." + }, + { + "key": "--diff-algorithm", + "displayName": "Diff Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "Choose a diff algorithm." + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "Generate a diffstat." + }, + { + "key": "--compact-summary", + "displayName": "Compact Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Output a condensed summary of extended header information such as file creations or deletions (\"new\" or \"gone\", optionally +l if it's a symlink) and mode changes (+x or -x for adding or removing executable bit respectively) in diffstat." + }, + { + "key": "--numstat", + "displayName": "Numstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "Similar to --stat, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly." + }, + { + "key": "--shortstat", + "displayName": "Shortstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "Output only the last line of the --stat format containing total number of modified files, as well as number of added and deleted lines." + }, + { + "key": "--dirstat", + "displayName": "Dirstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "Output the distribution of relative amount of changes for each sub-directory.", + "aliases": [ + "-X" + ] + }, + { + "key": "--cumulative", + "displayName": "Cumulative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Synonym for --dirstat=cumulative." + }, + { + "key": "--dirstat-by-file", + "displayName": "Dirstat By File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "Synonym for --dirstat=files,,...." + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "Output a condensed summary of extended header information such as creations, renames and mode changes." + }, + { + "key": "--patch-with-stat", + "displayName": "Patch With Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "Synonym for -p --stat." + }, + { + "key": "-z", + "displayName": "Z", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "When --raw, --numstat, --name-only or --name-status has been given, do not munge pathnames and use NULs as output field terminators." + }, + { + "key": "--name-only", + "displayName": "Name Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "Show only the name of each changed file in the post-image tree." + }, + { + "key": "--name-status", + "displayName": "Name Status", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "Show only the name(s) and status of each changed file." + }, + { + "key": "--submodule", + "displayName": "Submodule", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "Specify how differences in submodules are shown." + }, + { + "key": "--color", + "displayName": "Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "Show colored diff." + }, + { + "key": "--color-moved", + "displayName": "Color Moved", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "Moved lines of code are colored differently." + }, + { + "key": "--color-moved-ws", + "displayName": "Color Moved Ws", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 30, + "description": "This configures how whitespace is ignored when performing the move detection for --color-moved." + }, + { + "key": "--word-diff", + "displayName": "Word Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "By default, words are delimited by whitespace; see --word-diff-regex below." + }, + { + "key": "--word-diff-regex", + "displayName": "Word Diff Regex", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 32, + "description": "Use to decide what a word is, instead of considering runs of non-whitespace to be a word." + }, + { + "key": "--color-words", + "displayName": "Color Words", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "Equivalent to --word-diff=color plus (if a regex was specified) --word-diff-regex=." + }, + { + "key": "--no-renames", + "displayName": "No Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "Turn off rename detection, even when the configuration file gives the default to do so." + }, + { + "key": "--rename-empty", + "displayName": "Rename Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "Whether to use empty blobs as rename source." + }, + { + "key": "--check", + "displayName": "Check", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "Warn if changes introduce conflict markers or whitespace errors." + }, + { + "key": "--ws-error-highlight", + "displayName": "Ws Error Highlight", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 37, + "description": "Highlight whitespace errors in the context, old or new lines of the diff." + }, + { + "key": "--full-index", + "displayName": "Full Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "Instead of the first handful of characters, show the full pre- and post-image blob object names on the \"index\" line when generating patch format output." + }, + { + "key": "--binary", + "displayName": "Binary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "In addition to --full-index, output a binary diff that can be applied with git-apply." + }, + { + "key": "--abbrev", + "displayName": "Abbrev", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show the shortest prefix that is at least hexdigits long that uniquely refers the object." + }, + { + "key": "--break-rewrites", + "displayName": "Break Rewrites", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 41, + "description": "Break complete rewrite changes into pairs of delete and create.", + "aliases": [ + "-B" + ] + }, + { + "key": "--find-renames", + "displayName": "Find Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "Detect renames.", + "aliases": [ + "-M" + ] + }, + { + "key": "--find-copies", + "displayName": "Find Copies", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "Detect copies as well as renames.", + "aliases": [ + "-C" + ] + }, + { + "key": "--find-copies-harder", + "displayName": "Find Copies Harder", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "For performance reasons, by default, -C option finds copies only if the original file of the copy was modified in the same changeset." + }, + { + "key": "--irreversible-delete", + "displayName": "Irreversible Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45, + "description": "Omit the preimage for deletes, i.e.", + "aliases": [ + "-D" + ] + }, + { + "key": "-l", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 46, + "description": "The -M and -C options involve some preliminary steps that can detect subsets of renames/copies cheaply, followed by an exhaustive fallback portion that compares all remaining unpaired destinations to all relevant sources." + }, + { + "key": "--diff-filter", + "displayName": "Diff Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 47, + "description": "Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e." + }, + { + "key": "-S", + "displayName": "S", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 48, + "description": "Look for differences that change the number of occurrences of the specified (i.e." + }, + { + "key": "-G", + "displayName": "G", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 49, + "description": "Look for differences whose patch text contains added/removed lines that match ." + }, + { + "key": "--find-object", + "displayName": "Find Object", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 50, + "description": "Look for differences that change the number of occurrences of the specified object." + }, + { + "key": "--pickaxe-all", + "displayName": "Pickaxe All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 51, + "description": "When -S or -G finds a change, show all the changes in that changeset, not just the files that contain the change in ." + }, + { + "key": "--pickaxe-regex", + "displayName": "Pickaxe Regex", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 52, + "description": "Treat the given to -S as an extended POSIX regular expression to match." + }, + { + "key": "-O", + "displayName": "O", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 53, + "description": "Control the order in which files appear in the output." + }, + { + "key": "--skip-to", + "displayName": "Skip To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 54, + "description": "Discard the files before the named from the output (i.e.", + "aliases": [ + "--rotate-to" + ] + }, + { + "key": "-R", + "displayName": "R", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 55, + "description": "Swap two inputs; that is, show differences from index or on-disk file to tree contents." + }, + { + "key": "--relative", + "displayName": "Relative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 56, + "description": "When run from a subdirectory of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option.", + "aliases": [ + "--no-relative" + ] + }, + { + "key": "--text", + "displayName": "Text", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 57, + "description": "Treat all files as text.", + "aliases": [ + "-a" + ] + }, + { + "key": "--ignore-cr-at-eol", + "displayName": "Ignore CR At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 58, + "description": "Ignore carriage-return at the end of line when doing a comparison." + }, + { + "key": "--ignore-space-at-eol", + "displayName": "Ignore Space At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 59, + "description": "Ignore changes in whitespace at EOL." + }, + { + "key": "--ignore-space-change", + "displayName": "Ignore Space Change", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 60, + "description": "Ignore changes in amount of whitespace.", + "aliases": [ + "-b" + ] + }, + { + "key": "--ignore-all-space", + "displayName": "Ignore All Space", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 61, + "description": "Ignore whitespace when comparing lines.", + "aliases": [ + "-w" + ] + }, + { + "key": "--ignore-blank-lines", + "displayName": "Ignore Blank Lines", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 62, + "description": "Ignore changes whose lines are all blank." + }, + { + "key": "--ignore-matching-lines", + "displayName": "Ignore Matching Lines", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 63, + "description": "Ignore changes whose all lines match .", + "aliases": [ + "-I" + ] + }, + { + "key": "--inter-hunk-context", + "displayName": "Inter Hunk Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 64, + "description": "Show the context between diff hunks, up to the specified of lines, thereby fusing hunks that are close to each other." + }, + { + "key": "--function-context", + "displayName": "Function Context", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 65, + "description": "Show whole function as context lines for each change.", + "aliases": [ + "-W" + ] + }, + { + "key": "--exit-code", + "displayName": "Exit Code", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 66, + "description": "Make the program exit with codes similar to diff(1)." + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 67, + "description": "Disable all output of the program." + }, + { + "key": "--ext-diff", + "displayName": "Ext Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 68, + "description": "Allow an external diff helper to be executed." + }, + { + "key": "--textconv", + "displayName": "Textconv", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 69, + "description": "Allow (or disallow) external text conversion filters to be run when comparing binary files.", + "aliases": [ + "--no-textconv" + ] + }, + { + "key": "--ignore-submodules", + "displayName": "Ignore Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 70, + "description": "Ignore changes to submodules in the diff generation." + }, + { + "key": "--src-prefix", + "displayName": "Src Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 71, + "description": "Show the given source instead of \"a/\"." + }, + { + "key": "--dst-prefix", + "displayName": "Dst Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 72, + "description": "Show the given destination instead of \"b/\"." + }, + { + "key": "--no-prefix", + "displayName": "No Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 73, + "description": "Do not show any source or destination prefix." + }, + { + "key": "--default-prefix", + "displayName": "Default Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 74, + "description": "Use the default source and destination prefixes (\"a/\" and \"b/\")." + }, + { + "key": "--line-prefix", + "displayName": "Line Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 75, + "description": "Prepend an additional to every line of output." + }, + { + "key": "--ita-invisible-in-index", + "displayName": "Ita Invisible In Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 76, + "description": "By default entries added by git add -N appear as an existing empty file in git diff and a new file in git diff --cached." + }, + { + "key": "--base", + "displayName": "Base", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 77, + "description": "Compare the working tree with", + "aliases": [ + "-1", + "-2", + "--ours", + "-3", + "--theirs" + ] + }, + { + "key": "-0", + "displayName": "0", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 78, + "description": "Omit diff output for unmerged entries and just show \"Unmerged\"." + } + ] + }, + { + "key": "fetch", + "displayName": "fetch", + "sortOrder": 29, + "description": "Download objects and refs from another repository", + "parameters": [ + { + "key": "repository", + "displayName": "Repository", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "refspec", + "displayName": "Refspec", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "group", + "displayName": "Group", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "be more verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "be more quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "fetch from all remotes" + }, + { + "key": "--set-upstream", + "displayName": "Set Upstream", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "set upstream for git pull/fetch" + }, + { + "key": "--append", + "displayName": "Append", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "append to .git/FETCH_HEAD instead of overwriting", + "aliases": [ + "-a" + ] + }, + { + "key": "--atomic", + "displayName": "Atomic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "use atomic transaction to update references" + }, + { + "key": "--upload-pack", + "displayName": "Upload Pack", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "path to upload pack on remote end" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "force overwrite of local reference", + "aliases": [ + "-f" + ] + }, + { + "key": "--multiple", + "displayName": "Multiple", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "fetch from multiple remotes", + "aliases": [ + "-m" + ] + }, + { + "key": "--tags", + "displayName": "Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "fetch all tags and associated objects", + "aliases": [ + "-t" + ] + }, + { + "key": "-n", + "displayName": "N", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "do not fetch all tags (--no-tags)" + }, + { + "key": "--jobs", + "displayName": "Jobs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "number of submodules fetched in parallel", + "aliases": [ + "-j" + ] + }, + { + "key": "--prefetch", + "displayName": "Prefetch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "modify the refspec to place all refs within refs/prefetch/" + }, + { + "key": "--prune", + "displayName": "Prune", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "prune remote-tracking branches no longer on remote", + "aliases": [ + "-p" + ] + }, + { + "key": "--prune-tags", + "displayName": "Prune Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "prune local tags no longer on remote and clobber changed tags", + "aliases": [ + "-P" + ] + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "control recursive fetching of submodules" + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "dry run" + }, + { + "key": "--porcelain", + "displayName": "Porcelain", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "machine-readable output" + }, + { + "key": "--write-fetch-head", + "displayName": "Write Fetch Head", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "write fetched references to the FETCH_HEAD file" + }, + { + "key": "--keep", + "displayName": "Keep", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "keep downloaded pack", + "aliases": [ + "-k" + ] + }, + { + "key": "--update-head-ok", + "displayName": "Update Head Ok", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "allow updating of HEAD ref", + "aliases": [ + "-u" + ] + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "force progress reporting" + }, + { + "key": "--depth", + "displayName": "Depth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 25, + "description": "deepen history of shallow clone" + }, + { + "key": "--shallow-since", + "displayName": "Shallow Since", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 26, + "description": "deepen history of shallow repository based on time" + }, + { + "key": "--shallow-exclude", + "displayName": "Shallow Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 27, + "description": "deepen history of shallow clone, excluding ref" + }, + { + "key": "--deepen", + "displayName": "Deepen", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 28, + "description": "deepen history of shallow clone" + }, + { + "key": "--unshallow", + "displayName": "Unshallow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "convert to a complete repository" + }, + { + "key": "--refetch", + "displayName": "Refetch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "re-fetch without negotiating common commits" + }, + { + "key": "--update-shallow", + "displayName": "Update Shallow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "accept refs that update .git/shallow" + }, + { + "key": "--refmap", + "displayName": "Refmap", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 32, + "description": "specify fetch refmap" + }, + { + "key": "--server-option", + "displayName": "Server Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "option to transmit", + "aliases": [ + "-o" + ] + }, + { + "key": "--ipv4", + "displayName": "IPv4", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "use IPv4 addresses only", + "aliases": [ + "-4" + ] + }, + { + "key": "--ipv6", + "displayName": "IPv6", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "use IPv6 addresses only", + "aliases": [ + "-6" + ] + }, + { + "key": "--negotiation-tip", + "displayName": "Negotiation Tip", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 36, + "description": "report that we have only objects reachable from this object" + }, + { + "key": "--negotiate-only", + "displayName": "Negotiate Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "do not fetch a packfile; instead, print ancestors of negotiation tips" + }, + { + "key": "--filter", + "displayName": "Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 38, + "description": "object filtering" + }, + { + "key": "--auto-maintenance", + "displayName": "Auto Maintenance", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "run 'maintenance --auto' after fetching" + }, + { + "key": "--auto-gc", + "displayName": "Auto Gc", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "run 'maintenance --auto' after fetching" + }, + { + "key": "--show-forced-updates", + "displayName": "Show Forced Updates", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "check for forced-updates on all updated branches" + }, + { + "key": "--write-commit-graph", + "displayName": "Write Commit Graph", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "write the commit-graph after fetching" + }, + { + "key": "--stdin", + "displayName": "Stdin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "accept refspecs from stdin" + }, + { + "key": "--submodule-prefix", + "displayName": "Submodule Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 44, + "description": "Prepend to paths printed in informative messages such as \"Fetching submodule foo\"." + }, + { + "key": "--recurse-submodules-default", + "displayName": "Recurse Submodules Default", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 45, + "description": "This option is used internally to temporarily provide a non-negative default value for the --recurse-submodules option." + } + ] + }, + { + "key": "format-patch", + "displayName": "format-patch", + "sortOrder": 30, + "description": "Prepare patches for e-mail submission", + "parameters": [ + { + "key": "since", + "displayName": "Since", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "revision-range", + "displayName": "Revision Range", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--numbered", + "displayName": "Numbered", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "use [PATCH n/m] even with a single patch", + "aliases": [ + "-n" + ] + }, + { + "key": "--no-numbered", + "displayName": "No Numbered", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "use [PATCH] even with multiple patches", + "aliases": [ + "-N" + ] + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "add a Signed-off-by trailer", + "aliases": [ + "-s" + ] + }, + { + "key": "--stdout", + "displayName": "Stdout", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "print patches to standard out" + }, + { + "key": "--cover-letter", + "displayName": "Cover Letter", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "generate a cover letter" + }, + { + "key": "--numbered-files", + "displayName": "Numbered Files", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "use simple number sequence for output file names" + }, + { + "key": "--suffix", + "displayName": "Suffix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "use instead of '.patch'" + }, + { + "key": "--start-number", + "displayName": "Start Number", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "start numbering patches at instead of 1" + }, + { + "key": "--reroll-count", + "displayName": "Reroll Count", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "mark the series as Nth re-roll", + "aliases": [ + "-v" + ] + }, + { + "key": "--filename-max-length", + "displayName": "Filename Max Length", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "max length of output filename" + }, + { + "key": "--rfc", + "displayName": "Rfc", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "add (default 'RFC') before 'PATCH'" + }, + { + "key": "--cover-from-description", + "displayName": "Cover From Description", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "generate parts of a cover letter based on a branch's description" + }, + { + "key": "--description-file", + "displayName": "Description File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "use branch description from file" + }, + { + "key": "--subject-prefix", + "displayName": "Subject Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "use [] instead of [PATCH]" + }, + { + "key": "--output-directory", + "displayName": "Output Directory", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "store resulting files in ", + "aliases": [ + "-o" + ] + }, + { + "key": "--keep-subject", + "displayName": "Keep Subject", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "don't strip/add [PATCH]", + "aliases": [ + "-k" + ] + }, + { + "key": "--no-binary", + "displayName": "No Binary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "don't output binary diffs" + }, + { + "key": "--binary", + "displayName": "Binary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "opposite of --no-binary" + }, + { + "key": "--zero-commit", + "displayName": "Zero Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "output all-zero hash in From header" + }, + { + "key": "--ignore-if-in-upstream", + "displayName": "Ignore If In Upstream", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "don't include a patch matching a commit upstream" + }, + { + "key": "--no-stat", + "displayName": "No Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "show patch format instead of default (patch + stat)", + "aliases": [ + "-p" + ] + }, + { + "key": "--add-header", + "displayName": "Add Header", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 23, + "description": "add email header", + "group": "Messaging" + }, + { + "key": "--to", + "displayName": "To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 24, + "description": "add To: header", + "group": "Messaging" + }, + { + "key": "--cc", + "displayName": "Cc", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 25, + "description": "add Cc: header", + "group": "Messaging" + }, + { + "key": "--from", + "displayName": "From", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "set From address to (or committer ident if absent)", + "group": "Messaging" + }, + { + "key": "--in-reply-to", + "displayName": "In Reply To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 27, + "description": "make first mail a reply to ", + "group": "Messaging" + }, + { + "key": "--attach", + "displayName": "Attach", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "attach the patch", + "group": "Messaging" + }, + { + "key": "--inline", + "displayName": "Inline", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "inline the patch", + "group": "Messaging" + }, + { + "key": "--thread", + "displayName": "Thread", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "enable message threading, styles: shallow, deep", + "group": "Messaging" + }, + { + "key": "--signature", + "displayName": "Signature", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 31, + "description": "add a signature", + "group": "Messaging" + }, + { + "key": "--base", + "displayName": "Base", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 32, + "description": "add prerequisite tree info to the patch series", + "group": "Messaging" + }, + { + "key": "--signature-file", + "displayName": "Signature File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "add a signature from a file", + "group": "Messaging" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "don't print the patch filenames", + "group": "Messaging", + "aliases": [ + "-q" + ] + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "show progress while generating patches", + "group": "Messaging" + }, + { + "key": "--interdiff", + "displayName": "Interdiff", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 36, + "description": "show changes against in cover letter or single patch", + "group": "Messaging" + }, + { + "key": "--range-diff", + "displayName": "Range Diff", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 37, + "description": "show changes against in cover letter or single patch", + "group": "Messaging" + }, + { + "key": "--creation-factor", + "displayName": "Creation Factor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 38, + "description": "percentage by which creation is weighted", + "group": "Messaging" + }, + { + "key": "--force-in-body-from", + "displayName": "Force In Body From", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "show in-body From: even if identical to the e-mail header", + "group": "Messaging" + }, + { + "key": "--unified", + "displayName": "Unified", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 40, + "description": "Generate diffs with lines of context instead of the usual three.", + "aliases": [ + "-U" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 41, + "description": "Output to a specific file instead of stdout." + }, + { + "key": "--output-indicator-new", + "displayName": "Output Indicator New", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 42, + "description": "Specify the character used to indicate new, old or context lines in the generated patch.", + "aliases": [ + "--output-indicator-old", + "--output-indicator-context" + ] + }, + { + "key": "--indent-heuristic", + "displayName": "Indent Heuristic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "Enable the heuristic that shifts diff hunk boundaries to make patches easier to read." + }, + { + "key": "--minimal", + "displayName": "Minimal", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "Spend extra time to make sure the smallest possible diff is produced." + }, + { + "key": "--patience", + "displayName": "Patience", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45, + "description": "Generate a diff using the \"patience diff\" algorithm." + }, + { + "key": "--histogram", + "displayName": "Histogram", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46, + "description": "Generate a diff using the \"histogram diff\" algorithm." + }, + { + "key": "--anchored", + "displayName": "Anchored", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 47, + "description": "Generate a diff using the \"anchored diff\" algorithm." + }, + { + "key": "--diff-algorithm", + "displayName": "Diff Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 48, + "description": "Choose a diff algorithm." + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 49, + "description": "Generate a diffstat." + }, + { + "key": "--compact-summary", + "displayName": "Compact Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 50, + "description": "Output a condensed summary of extended header information such as file creations or deletions (\"new\" or \"gone\", optionally +l if it's a symlink) and mode changes (+x or -x for adding or removing executable bit respectively) in diffstat." + }, + { + "key": "--numstat", + "displayName": "Numstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 51, + "description": "Similar to --stat, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly." + }, + { + "key": "--shortstat", + "displayName": "Shortstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 52, + "description": "Output only the last line of the --stat format containing total number of modified files, as well as number of added and deleted lines." + }, + { + "key": "--dirstat", + "displayName": "Dirstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 53, + "description": "Output the distribution of relative amount of changes for each sub-directory.", + "aliases": [ + "-X" + ] + }, + { + "key": "--cumulative", + "displayName": "Cumulative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 54, + "description": "Synonym for --dirstat=cumulative." + }, + { + "key": "--dirstat-by-file", + "displayName": "Dirstat By File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 55, + "description": "Synonym for --dirstat=files,,...." + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 56, + "description": "Output a condensed summary of extended header information such as creations, renames and mode changes." + }, + { + "key": "--no-renames", + "displayName": "No Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 57, + "description": "Turn off rename detection, even when the configuration file gives the default to do so." + }, + { + "key": "--rename-empty", + "displayName": "Rename Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 58, + "description": "Whether to use empty blobs as rename source." + }, + { + "key": "--full-index", + "displayName": "Full Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 59, + "description": "Instead of the first handful of characters, show the full pre- and post-image blob object names on the \"index\" line when generating patch format output." + }, + { + "key": "--abbrev", + "displayName": "Abbrev", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 60, + "description": "Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show the shortest prefix that is at least hexdigits long that uniquely refers the object." + }, + { + "key": "--break-rewrites", + "displayName": "Break Rewrites", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 61, + "description": "Break complete rewrite changes into pairs of delete and create.", + "aliases": [ + "-B" + ] + }, + { + "key": "--find-renames", + "displayName": "Find Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 62, + "description": "Detect renames.", + "aliases": [ + "-M" + ] + }, + { + "key": "--find-copies", + "displayName": "Find Copies", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 63, + "description": "Detect copies as well as renames.", + "aliases": [ + "-C" + ] + }, + { + "key": "--find-copies-harder", + "displayName": "Find Copies Harder", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 64, + "description": "For performance reasons, by default, -C option finds copies only if the original file of the copy was modified in the same changeset." + }, + { + "key": "--irreversible-delete", + "displayName": "Irreversible Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 65, + "description": "Omit the preimage for deletes, i.e.", + "aliases": [ + "-D" + ] + }, + { + "key": "-l", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 66, + "description": "The -M and -C options involve some preliminary steps that can detect subsets of renames/copies cheaply, followed by an exhaustive fallback portion that compares all remaining unpaired destinations to all relevant sources." + }, + { + "key": "-O", + "displayName": "O", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 67, + "description": "Control the order in which files appear in the output." + }, + { + "key": "--skip-to", + "displayName": "Skip To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 68, + "description": "Discard the files before the named from the output (i.e.", + "aliases": [ + "--rotate-to" + ] + }, + { + "key": "--relative", + "displayName": "Relative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 69, + "description": "When run from a subdirectory of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option.", + "aliases": [ + "--no-relative" + ] + }, + { + "key": "--text", + "displayName": "Text", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 70, + "description": "Treat all files as text.", + "aliases": [ + "-a" + ] + }, + { + "key": "--ignore-cr-at-eol", + "displayName": "Ignore CR At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 71, + "description": "Ignore carriage-return at the end of line when doing a comparison." + }, + { + "key": "--ignore-space-at-eol", + "displayName": "Ignore Space At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 72, + "description": "Ignore changes in whitespace at EOL." + }, + { + "key": "--ignore-space-change", + "displayName": "Ignore Space Change", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 73, + "description": "Ignore changes in amount of whitespace.", + "aliases": [ + "-b" + ] + }, + { + "key": "--ignore-all-space", + "displayName": "Ignore All Space", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 74, + "description": "Ignore whitespace when comparing lines.", + "aliases": [ + "-w" + ] + }, + { + "key": "--ignore-blank-lines", + "displayName": "Ignore Blank Lines", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 75, + "description": "Ignore changes whose lines are all blank." + }, + { + "key": "--ignore-matching-lines", + "displayName": "Ignore Matching Lines", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 76, + "description": "Ignore changes whose all lines match .", + "aliases": [ + "-I" + ] + }, + { + "key": "--inter-hunk-context", + "displayName": "Inter Hunk Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 77, + "description": "Show the context between diff hunks, up to the specified of lines, thereby fusing hunks that are close to each other." + }, + { + "key": "--function-context", + "displayName": "Function Context", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 78, + "description": "Show whole function as context lines for each change.", + "aliases": [ + "-W" + ] + }, + { + "key": "--ext-diff", + "displayName": "Ext Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 79, + "description": "Allow an external diff helper to be executed." + }, + { + "key": "--textconv", + "displayName": "Textconv", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 80, + "description": "Allow (or disallow) external text conversion filters to be run when comparing binary files.", + "aliases": [ + "--no-textconv" + ] + }, + { + "key": "--ignore-submodules", + "displayName": "Ignore Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 81, + "description": "Ignore changes to submodules in the diff generation." + }, + { + "key": "--src-prefix", + "displayName": "Src Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 82, + "description": "Show the given source instead of \"a/\"." + }, + { + "key": "--dst-prefix", + "displayName": "Dst Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 83, + "description": "Show the given destination instead of \"b/\"." + }, + { + "key": "--no-prefix", + "displayName": "No Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 84, + "description": "Do not show any source or destination prefix." + }, + { + "key": "--default-prefix", + "displayName": "Default Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 85, + "description": "Use the default source and destination prefixes (\"a/\" and \"b/\")." + }, + { + "key": "--line-prefix", + "displayName": "Line Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 86, + "description": "Prepend an additional to every line of output." + }, + { + "key": "--ita-invisible-in-index", + "displayName": "Ita Invisible In Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 87, + "description": "By default entries added by git add -N appear as an existing empty file in git diff and a new file in git diff --cached." + }, + { + "key": "--always", + "displayName": "Always", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 88, + "description": "Include patches for commits that do not introduce any change, which are omitted by default." + }, + { + "key": "--encode-email-headers", + "displayName": "Encode Email Headers", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 89, + "description": "Encode email headers that have non-ASCII characters with \"Q-encoding\" (described in RFC 2047), instead of outputting the headers verbatim.", + "aliases": [ + "--no-encode-email-headers" + ] + }, + { + "key": "--notes", + "displayName": "Notes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 90, + "description": "Append the notes (see git-notes(1)) for the commit after the three-dash line.", + "aliases": [ + "--no-notes" + ] + }, + { + "key": "--root", + "displayName": "Root", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 91, + "description": "Treat the revision argument as a , even if it is just a single commit (that would normally be treated as a )." + } + ] + }, + { + "key": "gc", + "displayName": "gc", + "sortOrder": 31, + "description": "Cleanup unnecessary files and optimize the local repository", + "parameters": [ + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "suppress progress reporting", + "aliases": [ + "-q" + ] + }, + { + "key": "--prune", + "displayName": "Prune", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "prune unreferenced objects" + }, + { + "key": "--cruft", + "displayName": "Cruft", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "pack unreferenced objects separately" + }, + { + "key": "--max-cruft-size", + "displayName": "Max Cruft Size", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "with --cruft, limit the size of new cruft packs" + }, + { + "key": "--aggressive", + "displayName": "Aggressive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "be more thorough (increased runtime)" + }, + { + "key": "--auto", + "displayName": "Auto", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "enable auto-gc mode" + }, + { + "key": "--detach", + "displayName": "Detach", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "perform garbage collection in the background" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "force running gc even if there may be another gc running" + }, + { + "key": "--keep-largest-pack", + "displayName": "Keep Largest Pack", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "repack all other packs except the largest pack" + }, + { + "key": "--expire-to", + "displayName": "Expire To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "pack prefix to store a pack containing pruned objects" + } + ] + }, + { + "key": "grep", + "displayName": "grep", + "sortOrder": 32, + "description": "Print lines matching a pattern", + "parameters": [ + { + "key": "pattern", + "displayName": "Pattern", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "rev", + "displayName": "Rev", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "--cached", + "displayName": "Cached", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "search in index instead of in the work tree" + }, + { + "key": "--no-index", + "displayName": "No Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "find in contents not managed by git" + }, + { + "key": "--index", + "displayName": "Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "opposite of --no-index" + }, + { + "key": "--untracked", + "displayName": "Untracked", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "search in both tracked and untracked files" + }, + { + "key": "--exclude-standard", + "displayName": "Exclude Standard", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "ignore files specified via '.gitignore'" + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "recursively search in each submodule" + }, + { + "key": "--invert-match", + "displayName": "Invert Match", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "show non-matching lines", + "aliases": [ + "-v" + ] + }, + { + "key": "--ignore-case", + "displayName": "Ignore Case", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "case insensitive matching", + "aliases": [ + "-i" + ] + }, + { + "key": "--word-regexp", + "displayName": "Word Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "match patterns only at word boundaries", + "aliases": [ + "-w" + ] + }, + { + "key": "--text", + "displayName": "Text", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "process binary files as text", + "aliases": [ + "-a" + ] + }, + { + "key": "-I", + "displayName": "I", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "don't match patterns in binary files" + }, + { + "key": "--textconv", + "displayName": "Textconv", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "process binary files with textconv filters" + }, + { + "key": "--recursive", + "displayName": "Recursive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "search in subdirectories (default)", + "aliases": [ + "-r" + ] + }, + { + "key": "--max-depth", + "displayName": "Max Depth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "descend at most levels" + }, + { + "key": "--extended-regexp", + "displayName": "Extended Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "use extended POSIX regular expressions", + "aliases": [ + "-E" + ] + }, + { + "key": "--basic-regexp", + "displayName": "Basic Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "use basic POSIX regular expressions (default)", + "aliases": [ + "-G" + ] + }, + { + "key": "--fixed-strings", + "displayName": "Fixed Strings", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "interpret patterns as fixed strings", + "aliases": [ + "-F" + ] + }, + { + "key": "--perl-regexp", + "displayName": "Perl Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "use Perl-compatible regular expressions", + "aliases": [ + "-P" + ] + }, + { + "key": "--line-number", + "displayName": "Line Number", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "show line numbers", + "aliases": [ + "-n" + ] + }, + { + "key": "--column", + "displayName": "Column", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "show column number of first match" + }, + { + "key": "-h", + "displayName": "H", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "don't show filenames" + }, + { + "key": "-H", + "displayName": "H", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "show filenames" + }, + { + "key": "--full-name", + "displayName": "Full Name", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "show filenames relative to top directory" + }, + { + "key": "--files-with-matches", + "displayName": "Files With Matches", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "show only filenames instead of matching lines", + "aliases": [ + "-l" + ] + }, + { + "key": "--name-only", + "displayName": "Name Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "synonym for --files-with-matches" + }, + { + "key": "--files-without-match", + "displayName": "Files Without Match", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "show only the names of files without match", + "aliases": [ + "-L" + ] + }, + { + "key": "--null", + "displayName": "Null", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "print NUL after filenames", + "aliases": [ + "-z" + ] + }, + { + "key": "--only-matching", + "displayName": "Only Matching", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "show only matching parts of a line", + "aliases": [ + "-o" + ] + }, + { + "key": "--count", + "displayName": "Count", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "show the number of matches instead of matching lines", + "aliases": [ + "-c" + ] + }, + { + "key": "--color", + "displayName": "Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "highlight matches" + }, + { + "key": "--break", + "displayName": "Break", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "print empty line between matches from different files" + }, + { + "key": "--heading", + "displayName": "Heading", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "show filename only once above matches from same file" + }, + { + "key": "--context", + "displayName": "Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 35, + "description": "show context lines before and after matches", + "aliases": [ + "-C" + ] + }, + { + "key": "--before-context", + "displayName": "Before Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 36, + "description": "show context lines before matches", + "aliases": [ + "-B" + ] + }, + { + "key": "--after-context", + "displayName": "After Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 37, + "description": "show context lines after matches", + "aliases": [ + "-A" + ] + }, + { + "key": "--threads", + "displayName": "Threads", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 38, + "description": "use worker threads" + }, + { + "key": "-NUM", + "displayName": "NUM", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "shortcut for -C NUM" + }, + { + "key": "--show-function", + "displayName": "Show Function", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "show a line with the function name before matches", + "aliases": [ + "-p" + ] + }, + { + "key": "--function-context", + "displayName": "Function Context", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "show the surrounding function", + "aliases": [ + "-W" + ] + }, + { + "key": "-f", + "displayName": "F", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 42, + "description": "read patterns from file" + }, + { + "key": "-e", + "displayName": "E", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 43, + "description": "match " + }, + { + "key": "--and", + "displayName": "And", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "combine patterns specified with -e" + }, + { + "key": "--or", + "displayName": "Or", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45 + }, + { + "key": "--not", + "displayName": "Not", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 47, + "description": "indicate hit with exit status without output", + "aliases": [ + "-q" + ] + }, + { + "key": "--all-match", + "displayName": "All Match", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 48, + "description": "show only matches from files that match all patterns" + }, + { + "key": "--open-files-in-pager", + "displayName": "Open Files In Pager", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 49, + "description": "show matching files in the pager", + "aliases": [ + "-O" + ] + }, + { + "key": "--ext-grep", + "displayName": "Ext Grep", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 50, + "description": "allow calling of grep(1) (ignored by this build)" + }, + { + "key": "--max-count", + "displayName": "Max Count", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 51, + "description": "maximum number of results per file", + "aliases": [ + "-m" + ] + } + ] + }, + { + "key": "init", + "displayName": "init", + "sortOrder": 33, + "description": "Create an empty Git repository or reinitialize an existing one", + "parameters": [ + { + "key": "directory", + "displayName": "Directory", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--template", + "displayName": "Template", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "directory from which templates will be used" + }, + { + "key": "--bare", + "displayName": "Bare", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "create a bare repository" + }, + { + "key": "--shared", + "displayName": "Shared", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "specify that the git repository is to be shared amongst several users" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "be quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--separate-git-dir", + "displayName": "Separate Git Dir", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "separate git dir from working tree" + }, + { + "key": "--initial-branch", + "displayName": "Initial Branch", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "override the name of the initial branch", + "aliases": [ + "-b" + ] + }, + { + "key": "--object-format", + "displayName": "Object Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "specify the hash algorithm to use" + }, + { + "key": "--ref-format", + "displayName": "Ref Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "specify the reference format to use" + } + ] + }, + { + "key": "log", + "displayName": "log", + "sortOrder": 34, + "description": "Show commit logs", + "parameters": [ + { + "key": "revision-range", + "displayName": "Revision Range", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "suppress diff output", + "aliases": [ + "-q" + ] + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "show source" + }, + { + "key": "--use-mailmap", + "displayName": "Use Mailmap", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "use mail map file" + }, + { + "key": "--mailmap", + "displayName": "Mailmap", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "alias of --use-mailmap" + }, + { + "key": "--clear-decorations", + "displayName": "Clear Decorations", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "clear all previously-defined decoration filters" + }, + { + "key": "--decorate-refs", + "displayName": "Decorate Refs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "only decorate refs that match " + }, + { + "key": "--decorate-refs-exclude", + "displayName": "Decorate Refs Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "do not decorate refs that match " + }, + { + "key": "--decorate", + "displayName": "Decorate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "decorate options" + }, + { + "key": "-L", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "trace the evolution of line range , or function : in " + }, + { + "key": "--follow", + "displayName": "Follow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Continue listing the history of a file beyond renames (works only for a single file)." + }, + { + "key": "--full-diff", + "displayName": "Full Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "Without this flag, git log -p ..." + }, + { + "key": "--log-size", + "displayName": "Log Size", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "Include a line log size in the output for each commit, where is the length of that commit's message in bytes." + }, + { + "key": "--max-count", + "displayName": "Max Count", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "Limit the output to commits.", + "aliases": [ + "-n" + ] + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "Skip commits before starting to show the commit output." + }, + { + "key": "--since", + "displayName": "Since", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "Show commits more recent than .", + "aliases": [ + "--after" + ] + }, + { + "key": "--since-as-filter", + "displayName": "Since As Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "Show all commits more recent than ." + }, + { + "key": "--until", + "displayName": "Until", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "Show commits older than .", + "aliases": [ + "--before" + ] + }, + { + "key": "--author", + "displayName": "Author", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 19, + "description": "Limit the commits output to ones with author/committer header lines that match the regular expression.", + "aliases": [ + "--committer" + ] + }, + { + "key": "--grep-reflog", + "displayName": "Grep Reflog", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 20, + "description": "Limit the commits output to ones with reflog entries that match the regular expression." + }, + { + "key": "--grep", + "displayName": "Grep", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "Limit the commits output to ones with a log message that matches the regular expression." + }, + { + "key": "--all-match", + "displayName": "All Match", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "Limit the commits output to ones that match all given --grep, instead of ones that match at least one." + }, + { + "key": "--invert-grep", + "displayName": "Invert Grep", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "Limit the commits output to ones with a log message that do not match the specified with --grep=." + }, + { + "key": "--regexp-ignore-case", + "displayName": "Regexp Ignore Case", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "Match the regular expression limiting patterns without regard to letter case.", + "aliases": [ + "-i" + ] + }, + { + "key": "--basic-regexp", + "displayName": "Basic Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "Consider the limiting patterns to be basic regular expressions; this is the default." + }, + { + "key": "--extended-regexp", + "displayName": "Extended Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "Consider the limiting patterns to be extended regular expressions instead of the default basic regular expressions.", + "aliases": [ + "-E" + ] + }, + { + "key": "--fixed-strings", + "displayName": "Fixed Strings", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "Consider the limiting patterns to be fixed strings (don't interpret pattern as a regular expression).", + "aliases": [ + "-F" + ] + }, + { + "key": "--perl-regexp", + "displayName": "Perl Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "Consider the limiting patterns to be Perl-compatible regular expressions.", + "aliases": [ + "-P" + ] + }, + { + "key": "--remove-empty", + "displayName": "Remove Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "Stop when a given path disappears from the tree." + }, + { + "key": "--merges", + "displayName": "Merges", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "Print only merge commits." + }, + { + "key": "--min-parents", + "displayName": "Min Parents", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 31, + "description": "Show only commits which have at least (or at most) that many parent commits.", + "aliases": [ + "--max-parents", + "--no-min-parents", + "--no-max-parents" + ] + }, + { + "key": "--first-parent", + "displayName": "First Parent", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "When finding commits to include, follow only the first parent commit upon seeing a merge commit." + }, + { + "key": "--exclude-first-parent-only", + "displayName": "Exclude First Parent Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "When finding commits to exclude (with a ^), follow only the first parent commit upon seeing a merge commit." + }, + { + "key": "--not", + "displayName": "Not", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "Reverses the meaning of the ^ prefix (or lack thereof) for all following revision specifiers, up to the next --not." + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "Pretend as if all the refs in refs/, along with HEAD, are listed on the command line as ." + }, + { + "key": "--branches", + "displayName": "Branches", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "Pretend as if all the refs in refs/heads are listed on the command line as ." + }, + { + "key": "--tags", + "displayName": "Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "Pretend as if all the refs in refs/tags are listed on the command line as ." + }, + { + "key": "--remotes", + "displayName": "Remotes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "Pretend as if all the refs in refs/remotes are listed on the command line as ." + }, + { + "key": "--glob", + "displayName": "Glob", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 39, + "description": "Pretend as if all the refs matching shell glob are listed on the command line as ." + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 40, + "description": "Do not include refs matching that the next --all, --branches, --tags, --remotes, or --glob would otherwise consider." + }, + { + "key": "--exclude-hidden", + "displayName": "Exclude Hidden", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 41, + "description": "Do not include refs that would be hidden by git-fetch, git-receive-pack or git-upload-pack by consulting the appropriate fetch.hideRefs, receive.hideRefs or uploadpack.hideRefs configuration along with transfer.hideRefs (see git-config(1))." + }, + { + "key": "--reflog", + "displayName": "Reflog", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "Pretend as if all objects mentioned by reflogs are listed on the command line as ." + }, + { + "key": "--alternate-refs", + "displayName": "Alternate Refs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "Pretend as if all objects mentioned as ref tips of alternate repositories were listed on the command line." + }, + { + "key": "--single-worktree", + "displayName": "Single Worktree", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "By default, all working trees will be examined by the following options when there are more than one (see git-worktree(1)): --all, --reflog and --indexed-objects." + }, + { + "key": "--ignore-missing", + "displayName": "Ignore Missing", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45, + "description": "Upon seeing an invalid object name in the input, pretend as if the bad input was not given." + }, + { + "key": "--bisect", + "displayName": "Bisect", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46, + "description": "Pretend as if the bad bisection ref refs/bisect/bad was listed and as if it was followed by --not and the good bisection refs refs/bisect/good-* on the command line." + }, + { + "key": "--stdin", + "displayName": "Stdin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 47, + "description": "In addition to getting arguments from the command line, read them from standard input as well." + }, + { + "key": "--cherry-mark", + "displayName": "Cherry Mark", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 48, + "description": "Like --cherry-pick (see below) but mark equivalent commits with = rather than omitting them, and inequivalent ones with +." + }, + { + "key": "--cherry-pick", + "displayName": "Cherry Pick", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 49, + "description": "Omit any commit that introduces the same change as another commit on the \"other side\" when the set of commits are limited with symmetric difference." + }, + { + "key": "--left-only", + "displayName": "Left Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 50, + "description": "List only commits on the respective side of a symmetric difference, i.e.", + "aliases": [ + "--right-only" + ] + }, + { + "key": "--cherry", + "displayName": "Cherry", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 51, + "description": "A synonym for --right-only --cherry-mark --no-merges; useful to limit the output to the commits on our side and mark those that have been applied to the other side of a forked history with git log --cherry upstream...mybranch, similar to git cherry upstream mybranch." + }, + { + "key": "--walk-reflogs", + "displayName": "Walk Reflogs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 52, + "description": "Instead of walking the commit ancestry chain, walk reflog entries from the most recent one to older ones.", + "aliases": [ + "-g" + ] + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 53, + "description": "Show commits touching conflicted paths in the range HEAD..., where is the first existing pseudoref in MERGE_HEAD, CHERRY_PICK_HEAD, REVERT_HEAD or REBASE_HEAD." + }, + { + "key": "--boundary", + "displayName": "Boundary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 54, + "description": "Output excluded boundary commits." + }, + { + "key": "--simplify-by-decoration", + "displayName": "Simplify By Decoration", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 55, + "description": "Commits that are referred by some branch or tag are selected." + }, + { + "key": "--show-pulls", + "displayName": "Show Pulls", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 56, + "description": "Include all commits from the default mode, but also any merge commits that are not TREESAME to the first parent but are TREESAME to a later parent." + }, + { + "key": "--full-history", + "displayName": "Full History", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 57, + "description": "Same as the default mode, but does not prune some history." + }, + { + "key": "--dense", + "displayName": "Dense", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 58, + "description": "Only the selected commits are shown, plus some to have a meaningful history." + }, + { + "key": "--sparse", + "displayName": "Sparse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 59, + "description": "All commits in the simplified history are shown." + }, + { + "key": "--simplify-merges", + "displayName": "Simplify Merges", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 60, + "description": "Additional option to --full-history to remove some needless merges from the resulting history, as there are no selected commits contributing to this merge." + }, + { + "key": "--ancestry-path", + "displayName": "Ancestry Path", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 61, + "description": "When given a range of commits to display (e.g." + }, + { + "key": "--date-order", + "displayName": "Date Order", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 62, + "description": "Show no parents before all of its children are shown, but otherwise show commits in the commit timestamp order." + }, + { + "key": "--author-date-order", + "displayName": "Author Date Order", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 63, + "description": "Show no parents before all of its children are shown, but otherwise show commits in the author timestamp order." + }, + { + "key": "--topo-order", + "displayName": "Topo Order", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 64, + "description": "Show no parents before all of its children are shown, and avoid showing commits on multiple lines of history intermixed." + }, + { + "key": "--reverse", + "displayName": "Reverse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 65, + "description": "Output the commits chosen to be shown (see Commit Limiting section above) in reverse order." + }, + { + "key": "--no-walk", + "displayName": "No Walk", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 66, + "description": "Only show the given commits, but do not traverse their ancestors." + }, + { + "key": "--do-walk", + "displayName": "Do Walk", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 67, + "description": "Overrides a previous --no-walk." + }, + { + "key": "--pretty", + "displayName": "Pretty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 68, + "description": "Pretty-print the contents of the commit logs in a given format, where can be one of oneline, short, medium, full, fuller, reference, email, raw, format: and tformat:.", + "aliases": [ + "--format" + ] + }, + { + "key": "--abbrev-commit", + "displayName": "Abbrev Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 69, + "description": "Instead of showing the full 40-byte hexadecimal commit object name, show a prefix that names the object uniquely." + }, + { + "key": "--oneline", + "displayName": "Oneline", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 70, + "description": "This is a shorthand for --pretty=oneline --abbrev-commit used together." + }, + { + "key": "--encoding", + "displayName": "Encoding", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 71, + "description": "Commit objects record the character encoding used for the log message in their encoding header; this option can be used to tell the command to re-code the commit log message in the encoding preferred by the user." + }, + { + "key": "--expand-tabs", + "displayName": "Expand Tabs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 72, + "description": "Perform a tab expansion (replace each tab with enough spaces to fill to the next display column that is a multiple of ) in the log message before showing it in the output.", + "aliases": [ + "--no-expand-tabs" + ] + }, + { + "key": "--notes", + "displayName": "Notes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 73, + "description": "Show the notes (see git-notes(1)) that annotate the commit, when showing the commit log message." + }, + { + "key": "--show-notes-by-default", + "displayName": "Show Notes By Default", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 74, + "description": "Show the default notes unless options for displaying specific notes are given." + }, + { + "key": "--show-notes", + "displayName": "Show Notes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 75, + "description": "These options are deprecated.", + "aliases": [ + "--standard-notes", + "--no-standard-notes" + ] + }, + { + "key": "--show-signature", + "displayName": "Show Signature", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 76, + "description": "Check the validity of a signed commit object by passing the signature to gpg --verify and show the output." + }, + { + "key": "--relative-date", + "displayName": "Relative Date", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 77, + "description": "Synonym for --date=relative." + }, + { + "key": "--date", + "displayName": "Date", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 78, + "description": "Only takes effect for dates shown in human-readable format, such as when using --pretty." + }, + { + "key": "--parents", + "displayName": "Parents", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 79, + "description": "Print also the parents of the commit (in the form \"commit parent...\")." + }, + { + "key": "--children", + "displayName": "Children", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 80, + "description": "Print also the children of the commit (in the form \"commit child...\")." + }, + { + "key": "--left-right", + "displayName": "Left Right", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 81, + "description": "Mark which side of a symmetric difference a commit is reachable from." + }, + { + "key": "--graph", + "displayName": "Graph", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 82, + "description": "Draw a text-based graphical representation of the commit history on the left hand side of the output." + }, + { + "key": "--show-linear-break", + "displayName": "Show Linear Break", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 83, + "description": "When --graph is not used, all history branches are flattened which can make it hard to see that the two consecutive commits do not belong to a linear branch." + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 84, + "description": "Generate patch (see the section called \"GENERATING PATCH TEXT WITH -P\").", + "aliases": [ + "-p", + "-u" + ] + }, + { + "key": "-m", + "displayName": "M", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 85, + "description": "Show diffs for merge commits in the default format." + }, + { + "key": "-c", + "displayName": "C", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 86, + "description": "Produce combined diff output for merge commits." + }, + { + "key": "--cc", + "displayName": "Cc", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 87, + "description": "Produce dense combined diff output for merge commits." + }, + { + "key": "--dd", + "displayName": "Dd", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 88, + "description": "Produce diff with respect to first parent for both merge and regular commits." + }, + { + "key": "--remerge-diff", + "displayName": "Remerge Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 89, + "description": "Produce remerge-diff output for merge commits." + }, + { + "key": "--no-diff-merges", + "displayName": "No Diff Merges", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 90, + "description": "Synonym for --diff-merges=off." + }, + { + "key": "--diff-merges", + "displayName": "Diff Merges", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 91, + "description": "Specify diff format to be used for merge commits." + }, + { + "key": "--combined-all-paths", + "displayName": "Combined All Paths", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 92, + "description": "Cause combined diffs (used for merge commits) to list the name of the file from all parents." + }, + { + "key": "--unified", + "displayName": "Unified", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 93, + "description": "Generate diffs with lines of context instead of the usual three.", + "aliases": [ + "-U" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 94, + "description": "Output to a specific file instead of stdout." + }, + { + "key": "--output-indicator-new", + "displayName": "Output Indicator New", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 95, + "description": "Specify the character used to indicate new, old or context lines in the generated patch.", + "aliases": [ + "--output-indicator-old", + "--output-indicator-context" + ] + }, + { + "key": "--raw", + "displayName": "Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 96, + "description": "For each commit, show a summary of changes using the raw diff format." + }, + { + "key": "--patch-with-raw", + "displayName": "Patch With Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 97, + "description": "Synonym for -p --raw." + }, + { + "key": "-t", + "displayName": "T", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 98, + "description": "Show the tree objects in the diff output." + }, + { + "key": "--indent-heuristic", + "displayName": "Indent Heuristic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 99, + "description": "Enable the heuristic that shifts diff hunk boundaries to make patches easier to read." + }, + { + "key": "--minimal", + "displayName": "Minimal", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 100, + "description": "Spend extra time to make sure the smallest possible diff is produced." + }, + { + "key": "--patience", + "displayName": "Patience", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 101, + "description": "Generate a diff using the \"patience diff\" algorithm." + }, + { + "key": "--histogram", + "displayName": "Histogram", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 102, + "description": "Generate a diff using the \"histogram diff\" algorithm." + }, + { + "key": "--anchored", + "displayName": "Anchored", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 103, + "description": "Generate a diff using the \"anchored diff\" algorithm." + }, + { + "key": "--diff-algorithm", + "displayName": "Diff Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 104, + "description": "Choose a diff algorithm." + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 105, + "description": "Generate a diffstat." + }, + { + "key": "--compact-summary", + "displayName": "Compact Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 106, + "description": "Output a condensed summary of extended header information such as file creations or deletions (\"new\" or \"gone\", optionally +l if it's a symlink) and mode changes (+x or -x for adding or removing executable bit respectively) in diffstat." + }, + { + "key": "--numstat", + "displayName": "Numstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 107, + "description": "Similar to --stat, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly." + }, + { + "key": "--shortstat", + "displayName": "Shortstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 108, + "description": "Output only the last line of the --stat format containing total number of modified files, as well as number of added and deleted lines." + }, + { + "key": "--dirstat", + "displayName": "Dirstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 109, + "description": "Output the distribution of relative amount of changes for each sub-directory.", + "aliases": [ + "-X" + ] + }, + { + "key": "--cumulative", + "displayName": "Cumulative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 110, + "description": "Synonym for --dirstat=cumulative." + }, + { + "key": "--dirstat-by-file", + "displayName": "Dirstat By File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 111, + "description": "Synonym for --dirstat=files,,...." + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 112, + "description": "Output a condensed summary of extended header information such as creations, renames and mode changes." + }, + { + "key": "--patch-with-stat", + "displayName": "Patch With Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 113, + "description": "Synonym for -p --stat." + }, + { + "key": "-z", + "displayName": "Z", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 114, + "description": "Separate the commits with NULs instead of newlines." + }, + { + "key": "--name-only", + "displayName": "Name Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 115, + "description": "Show only the name of each changed file in the post-image tree." + }, + { + "key": "--name-status", + "displayName": "Name Status", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 116, + "description": "Show only the name(s) and status of each changed file." + }, + { + "key": "--submodule", + "displayName": "Submodule", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 117, + "description": "Specify how differences in submodules are shown." + }, + { + "key": "--color", + "displayName": "Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 118, + "description": "Show colored diff." + }, + { + "key": "--color-moved", + "displayName": "Color Moved", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 119, + "description": "Moved lines of code are colored differently." + }, + { + "key": "--color-moved-ws", + "displayName": "Color Moved Ws", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 120, + "description": "This configures how whitespace is ignored when performing the move detection for --color-moved." + }, + { + "key": "--word-diff", + "displayName": "Word Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 121, + "description": "By default, words are delimited by whitespace; see --word-diff-regex below." + }, + { + "key": "--word-diff-regex", + "displayName": "Word Diff Regex", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 122, + "description": "Use to decide what a word is, instead of considering runs of non-whitespace to be a word." + }, + { + "key": "--color-words", + "displayName": "Color Words", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 123, + "description": "Equivalent to --word-diff=color plus (if a regex was specified) --word-diff-regex=." + }, + { + "key": "--no-renames", + "displayName": "No Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 124, + "description": "Turn off rename detection, even when the configuration file gives the default to do so." + }, + { + "key": "--rename-empty", + "displayName": "Rename Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 125, + "description": "Whether to use empty blobs as rename source." + }, + { + "key": "--check", + "displayName": "Check", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 126, + "description": "Warn if changes introduce conflict markers or whitespace errors." + }, + { + "key": "--ws-error-highlight", + "displayName": "Ws Error Highlight", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 127, + "description": "Highlight whitespace errors in the context, old or new lines of the diff." + }, + { + "key": "--full-index", + "displayName": "Full Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 128, + "description": "Instead of the first handful of characters, show the full pre- and post-image blob object names on the \"index\" line when generating patch format output." + }, + { + "key": "--binary", + "displayName": "Binary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 129, + "description": "In addition to --full-index, output a binary diff that can be applied with git-apply." + }, + { + "key": "--abbrev", + "displayName": "Abbrev", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 130, + "description": "Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show the shortest prefix that is at least hexdigits long that uniquely refers the object." + }, + { + "key": "--break-rewrites", + "displayName": "Break Rewrites", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 131, + "description": "Break complete rewrite changes into pairs of delete and create.", + "aliases": [ + "-B" + ] + }, + { + "key": "--find-renames", + "displayName": "Find Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 132, + "description": "If generating diffs, detect and report renames for each commit.", + "aliases": [ + "-M" + ] + }, + { + "key": "--find-copies", + "displayName": "Find Copies", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 133, + "description": "Detect copies as well as renames.", + "aliases": [ + "-C" + ] + }, + { + "key": "--find-copies-harder", + "displayName": "Find Copies Harder", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 134, + "description": "For performance reasons, by default, -C option finds copies only if the original file of the copy was modified in the same changeset." + }, + { + "key": "--irreversible-delete", + "displayName": "Irreversible Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 135, + "description": "Omit the preimage for deletes, i.e.", + "aliases": [ + "-D" + ] + }, + { + "key": "-l", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 136, + "description": "The -M and -C options involve some preliminary steps that can detect subsets of renames/copies cheaply, followed by an exhaustive fallback portion that compares all remaining unpaired destinations to all relevant sources." + }, + { + "key": "--diff-filter", + "displayName": "Diff Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 137, + "description": "Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e." + }, + { + "key": "-S", + "displayName": "S", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 138, + "description": "Look for differences that change the number of occurrences of the specified (i.e." + }, + { + "key": "-G", + "displayName": "G", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 139, + "description": "Look for differences whose patch text contains added/removed lines that match ." + }, + { + "key": "--find-object", + "displayName": "Find Object", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 140, + "description": "Look for differences that change the number of occurrences of the specified object." + }, + { + "key": "--pickaxe-all", + "displayName": "Pickaxe All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 141, + "description": "When -S or -G finds a change, show all the changes in that changeset, not just the files that contain the change in ." + }, + { + "key": "--pickaxe-regex", + "displayName": "Pickaxe Regex", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 142, + "description": "Treat the given to -S as an extended POSIX regular expression to match." + }, + { + "key": "-O", + "displayName": "O", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 143, + "description": "Control the order in which files appear in the output." + }, + { + "key": "--skip-to", + "displayName": "Skip To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 144, + "description": "Discard the files before the named from the output (i.e.", + "aliases": [ + "--rotate-to" + ] + }, + { + "key": "-R", + "displayName": "R", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 145, + "description": "Swap two inputs; that is, show differences from index or on-disk file to tree contents." + }, + { + "key": "--relative", + "displayName": "Relative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 146, + "description": "When run from a subdirectory of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option.", + "aliases": [ + "--no-relative" + ] + }, + { + "key": "--text", + "displayName": "Text", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 147, + "description": "Treat all files as text.", + "aliases": [ + "-a" + ] + }, + { + "key": "--ignore-cr-at-eol", + "displayName": "Ignore CR At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 148, + "description": "Ignore carriage-return at the end of line when doing a comparison." + }, + { + "key": "--ignore-space-at-eol", + "displayName": "Ignore Space At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 149, + "description": "Ignore changes in whitespace at EOL." + }, + { + "key": "--ignore-space-change", + "displayName": "Ignore Space Change", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 150, + "description": "Ignore changes in amount of whitespace.", + "aliases": [ + "-b" + ] + }, + { + "key": "--ignore-all-space", + "displayName": "Ignore All Space", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 151, + "description": "Ignore whitespace when comparing lines.", + "aliases": [ + "-w" + ] + }, + { + "key": "--ignore-blank-lines", + "displayName": "Ignore Blank Lines", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 152, + "description": "Ignore changes whose lines are all blank." + }, + { + "key": "--ignore-matching-lines", + "displayName": "Ignore Matching Lines", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 153, + "description": "Ignore changes whose all lines match .", + "aliases": [ + "-I" + ] + }, + { + "key": "--inter-hunk-context", + "displayName": "Inter Hunk Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 154, + "description": "Show the context between diff hunks, up to the specified of lines, thereby fusing hunks that are close to each other." + }, + { + "key": "--function-context", + "displayName": "Function Context", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 155, + "description": "Show whole function as context lines for each change.", + "aliases": [ + "-W" + ] + }, + { + "key": "--ext-diff", + "displayName": "Ext Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 156, + "description": "Allow an external diff helper to be executed." + }, + { + "key": "--textconv", + "displayName": "Textconv", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 157, + "description": "Allow (or disallow) external text conversion filters to be run when comparing binary files.", + "aliases": [ + "--no-textconv" + ] + }, + { + "key": "--ignore-submodules", + "displayName": "Ignore Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 158, + "description": "Ignore changes to submodules in the diff generation." + }, + { + "key": "--src-prefix", + "displayName": "Src Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 159, + "description": "Show the given source instead of \"a/\"." + }, + { + "key": "--dst-prefix", + "displayName": "Dst Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 160, + "description": "Show the given destination instead of \"b/\"." + }, + { + "key": "--no-prefix", + "displayName": "No Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 161, + "description": "Do not show any source or destination prefix." + }, + { + "key": "--default-prefix", + "displayName": "Default Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 162, + "description": "Use the default source and destination prefixes (\"a/\" and \"b/\")." + }, + { + "key": "--line-prefix", + "displayName": "Line Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 163, + "description": "Prepend an additional to every line of output." + }, + { + "key": "--ita-invisible-in-index", + "displayName": "Ita Invisible In Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 164, + "description": "By default entries added by git add -N appear as an existing empty file in git diff and a new file in git diff --cached." + } + ] + }, + { + "key": "maintenance", + "displayName": "maintenance", + "sortOrder": 35, + "description": "Run tasks to optimize Git repository data", + "commands": [ + { + "key": "maintenance-run", + "displayName": "run", + "sortOrder": 36, + "description": "Run one or more maintenance tasks.", + "parameters": [ + { + "key": "--auto", + "displayName": "Auto", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "run tasks based on the state of the repository" + }, + { + "key": "--detach", + "displayName": "Detach", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "perform maintenance in the background" + }, + { + "key": "--schedule", + "displayName": "Schedule", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "run tasks based on frequency" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "do not report progress or other information over stderr" + }, + { + "key": "--task", + "displayName": "Task", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "run a specific task" + } + ] + }, + { + "key": "maintenance-start", + "displayName": "start", + "sortOrder": 37, + "description": "Start running maintenance on the current repository.", + "parameters": [ + { + "key": "--scheduler", + "displayName": "Scheduler", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "scheduler to trigger git maintenance run" + } + ] + }, + { + "key": "maintenance-stop", + "displayName": "stop", + "sortOrder": 38, + "description": "Halt the background maintenance schedule." + }, + { + "key": "maintenance-register", + "displayName": "register", + "sortOrder": 39, + "description": "Initialize Git config values so any scheduled maintenance will start running on this repository.", + "parameters": [ + { + "key": "--config-file", + "displayName": "Config File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "use given config file" + } + ] + }, + { + "key": "maintenance-unregister", + "displayName": "unregister", + "sortOrder": 40, + "description": "Remove the current repository from background maintenance.", + "parameters": [ + { + "key": "--config-file", + "displayName": "Config File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "use given config file" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "return success even if repository was not registered", + "aliases": [ + "-f" + ] + } + ] + } + ] + }, + { + "key": "merge", + "displayName": "merge", + "sortOrder": 41, + "description": "Join two or more development histories together", + "parameters": [ + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "-n", + "displayName": "N", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "do not show a diffstat at the end of the merge" + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "show a diffstat at the end of the merge" + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "(synonym to --stat)" + }, + { + "key": "--log", + "displayName": "Log", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "add (at most ) entries from shortlog to merge commit message" + }, + { + "key": "--squash", + "displayName": "Squash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "create a single commit instead of doing a merge" + }, + { + "key": "--commit", + "displayName": "Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "perform a commit if the merge succeeds (default)" + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "edit message before committing", + "aliases": [ + "-e" + ] + }, + { + "key": "--cleanup", + "displayName": "Cleanup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "how to strip spaces and #comments from message" + }, + { + "key": "--ff", + "displayName": "Ff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "allow fast-forward (default)" + }, + { + "key": "--ff-only", + "displayName": "Ff Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "abort if fast-forward is not possible" + }, + { + "key": "--rerere-autoupdate", + "displayName": "Rerere Autoupdate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "update the index with reused conflict resolution if possible" + }, + { + "key": "--verify-signatures", + "displayName": "Verify Signatures", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "verify that the named commit has a valid GPG signature" + }, + { + "key": "--strategy", + "displayName": "Strategy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "merge strategy to use", + "aliases": [ + "-s" + ] + }, + { + "key": "--strategy-option", + "displayName": "Strategy Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "option for selected merge strategy", + "aliases": [ + "-X" + ] + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "merge commit message (for a non-fast-forward merge)", + "aliases": [ + "-m" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 16, + "description": "read message from file", + "aliases": [ + "-F" + ] + }, + { + "key": "--into-name", + "displayName": "Into Name", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "use instead of the real target" + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "be more verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "be more quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--abort", + "displayName": "Abort", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "abort the current in-progress merge" + }, + { + "key": "--quit", + "displayName": "Quit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "--abort but leave index and working tree alone" + }, + { + "key": "--continue", + "displayName": "Continue", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "continue the current in-progress merge" + }, + { + "key": "--allow-unrelated-histories", + "displayName": "Allow Unrelated Histories", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "allow merging unrelated histories" + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "force progress reporting" + }, + { + "key": "--gpg-sign", + "displayName": "Gpg Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "GPG sign commit", + "aliases": [ + "-S" + ] + }, + { + "key": "--autostash", + "displayName": "Autostash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "automatically stash/stash pop before and after" + }, + { + "key": "--overwrite-ignore", + "displayName": "Overwrite Ignore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "update ignored files (default)" + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "add a Signed-off-by trailer" + }, + { + "key": "--no-verify", + "displayName": "No Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "bypass pre-merge-commit and commit-msg hooks" + }, + { + "key": "--verify", + "displayName": "Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "opposite of --no-verify" + }, + { + "key": "--compact-summary", + "displayName": "Compact Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "Show a compact-summary at the end of the merge." + } + ] + }, + { + "key": "mv", + "displayName": "mv", + "sortOrder": 42, + "description": "Move or rename a file, a directory, or a symlink", + "parameters": [ + { + "key": "source", + "displayName": "Source", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "destination", + "displayName": "Destination", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "destination-directory", + "displayName": "Destination Directory", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "be verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "dry run", + "aliases": [ + "-n" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "force move/rename even if target exists", + "aliases": [ + "-f" + ] + }, + { + "key": "-k", + "displayName": "K", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "skip move/rename errors" + }, + { + "key": "--sparse", + "displayName": "Sparse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "allow updating entries outside of the sparse-checkout cone" + } + ] + }, + { + "key": "notes", + "displayName": "notes", + "sortOrder": 43, + "description": "Add or inspect object notes", + "parameters": [ + { + "key": "--ref", + "displayName": "Ref", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 0, + "description": "use notes from " + } + ], + "commands": [ + { + "key": "notes-list", + "displayName": "list", + "sortOrder": 44, + "description": "List the notes object for a given object.", + "parameters": [ + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + }, + { + "key": "notes-add", + "displayName": "add", + "sortOrder": 45, + "description": "Add notes for a given object (defaults to HEAD).", + "parameters": [ + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "note contents as a string", + "aliases": [ + "-m" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "note contents in a file", + "aliases": [ + "-F" + ] + }, + { + "key": "--reedit-message", + "displayName": "Reedit Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "reuse and edit specified note object", + "aliases": [ + "-c" + ] + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "edit note message in editor", + "aliases": [ + "-e" + ] + }, + { + "key": "--reuse-message", + "displayName": "Reuse Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "reuse specified note object", + "aliases": [ + "-C" + ] + }, + { + "key": "--allow-empty", + "displayName": "Allow Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "allow storing empty note" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "replace existing notes", + "aliases": [ + "-f" + ] + }, + { + "key": "--separator", + "displayName": "Separator", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "insert between paragraphs" + }, + { + "key": "--stripspace", + "displayName": "Stripspace", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "remove unnecessary whitespace" + } + ] + }, + { + "key": "notes-copy", + "displayName": "copy", + "sortOrder": 46, + "description": "Copy the notes for the first object onto the second object (defaults to HEAD).", + "parameters": [ + { + "key": "from-object", + "displayName": "From Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "to-object", + "displayName": "To Object", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "replace existing notes", + "aliases": [ + "-f" + ] + }, + { + "key": "--stdin", + "displayName": "Stdin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "read objects from stdin" + }, + { + "key": "--for-rewrite", + "displayName": "For Rewrite", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "load rewriting config for (implies --stdin)" + } + ] + }, + { + "key": "notes-append", + "displayName": "append", + "sortOrder": 47, + "description": "Append new message(s) given by -m or -F options to an existing note, or add them as a new note if one does not exist, for the object (defaults to HEAD).", + "parameters": [ + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "note contents as a string", + "aliases": [ + "-m" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "note contents in a file", + "aliases": [ + "-F" + ] + }, + { + "key": "--reedit-message", + "displayName": "Reedit Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "reuse and edit specified note object", + "aliases": [ + "-c" + ] + }, + { + "key": "--reuse-message", + "displayName": "Reuse Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "reuse specified note object", + "aliases": [ + "-C" + ] + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "edit note message in editor", + "aliases": [ + "-e" + ] + }, + { + "key": "--allow-empty", + "displayName": "Allow Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "allow storing empty note" + }, + { + "key": "--separator", + "displayName": "Separator", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "insert between paragraphs" + }, + { + "key": "--stripspace", + "displayName": "Stripspace", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "remove unnecessary whitespace" + } + ] + }, + { + "key": "notes-edit", + "displayName": "edit", + "sortOrder": 48, + "description": "Edit the notes for a given object (defaults to HEAD).", + "parameters": [ + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "note contents as a string", + "aliases": [ + "-m" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "note contents in a file", + "aliases": [ + "-F" + ] + }, + { + "key": "--reedit-message", + "displayName": "Reedit Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "reuse and edit specified note object", + "aliases": [ + "-c" + ] + }, + { + "key": "--reuse-message", + "displayName": "Reuse Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "reuse specified note object", + "aliases": [ + "-C" + ] + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "edit note message in editor", + "aliases": [ + "-e" + ] + }, + { + "key": "--allow-empty", + "displayName": "Allow Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "allow storing empty note" + }, + { + "key": "--separator", + "displayName": "Separator", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "insert between paragraphs" + }, + { + "key": "--stripspace", + "displayName": "Stripspace", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "remove unnecessary whitespace" + } + ] + }, + { + "key": "notes-show", + "displayName": "show", + "sortOrder": 49, + "description": "Show the notes for a given object (defaults to HEAD).", + "parameters": [ + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + }, + { + "key": "notes-merge", + "displayName": "merge", + "sortOrder": 50, + "description": "Merge the given notes ref into the current notes ref.", + "parameters": [ + { + "key": "notes-ref", + "displayName": "Notes Ref", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "be more verbose", + "group": "General options", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "be more quiet", + "group": "General options", + "aliases": [ + "-q" + ] + }, + { + "key": "--strategy", + "displayName": "Strategy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "resolve notes conflicts using the given strategy (manual/ours/theirs/union/cat_sort_uniq)", + "group": "Merge options", + "aliases": [ + "-s" + ] + }, + { + "key": "--commit", + "displayName": "Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "finalize notes merge by committing unmerged notes", + "group": "Committing unmerged notes" + }, + { + "key": "--abort", + "displayName": "Abort", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "abort notes merge", + "group": "Aborting notes merge resolution" + } + ] + }, + { + "key": "notes-remove", + "displayName": "remove", + "sortOrder": 51, + "description": "Remove the notes for given objects (defaults to HEAD).", + "parameters": [ + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--ignore-missing", + "displayName": "Ignore Missing", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "attempt to remove non-existent note is not an error" + }, + { + "key": "--stdin", + "displayName": "Stdin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "read object names from the standard input" + } + ] + }, + { + "key": "notes-prune", + "displayName": "prune", + "sortOrder": 52, + "description": "Remove all notes for non-existing/unreachable objects.", + "parameters": [ + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "do not remove, show only", + "aliases": [ + "-n" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "report pruned notes", + "aliases": [ + "-v" + ] + } + ] + }, + { + "key": "notes-get-ref", + "displayName": "get-ref", + "sortOrder": 53, + "description": "Print the current notes ref." + } + ] + }, + { + "key": "pull", + "displayName": "pull", + "sortOrder": 54, + "description": "Fetch from and integrate with another repository or a local branch", + "parameters": [ + { + "key": "repository", + "displayName": "Repository", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "refspec", + "displayName": "Refspec", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "be more verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "be more quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "force progress reporting" + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "control for recursive fetching of submodules" + }, + { + "key": "--rebase", + "displayName": "Rebase", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "incorporate changes by rebasing rather than merging", + "group": "Options related to merging", + "aliases": [ + "-r" + ] + }, + { + "key": "-n", + "displayName": "N", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "do not show a diffstat at the end of the merge", + "group": "Options related to merging" + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "show a diffstat at the end of the merge", + "group": "Options related to merging" + }, + { + "key": "--log", + "displayName": "Log", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "add (at most ) entries from shortlog to merge commit message", + "group": "Options related to merging" + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "add a Signed-off-by trailer", + "group": "Options related to merging" + }, + { + "key": "--squash", + "displayName": "Squash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "create a single commit instead of doing a merge", + "group": "Options related to merging" + }, + { + "key": "--commit", + "displayName": "Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "perform a commit if the merge succeeds (default)", + "group": "Options related to merging" + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "edit message before committing", + "group": "Options related to merging" + }, + { + "key": "--cleanup", + "displayName": "Cleanup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "how to strip spaces and #comments from message", + "group": "Options related to merging" + }, + { + "key": "--ff", + "displayName": "Ff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "allow fast-forward", + "group": "Options related to merging" + }, + { + "key": "--ff-only", + "displayName": "Ff Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "abort if fast-forward is not possible", + "group": "Options related to merging" + }, + { + "key": "--verify", + "displayName": "Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "control use of pre-merge-commit and commit-msg hooks", + "group": "Options related to merging" + }, + { + "key": "--verify-signatures", + "displayName": "Verify Signatures", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "verify that the named commit has a valid GPG signature", + "group": "Options related to merging" + }, + { + "key": "--autostash", + "displayName": "Autostash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "automatically stash/stash pop before and after", + "group": "Options related to merging" + }, + { + "key": "--strategy", + "displayName": "Strategy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 20, + "description": "merge strategy to use", + "group": "Options related to merging", + "aliases": [ + "-s" + ] + }, + { + "key": "--strategy-option", + "displayName": "Strategy Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "option for selected merge strategy", + "group": "Options related to merging", + "aliases": [ + "-X" + ] + }, + { + "key": "--gpg-sign", + "displayName": "Gpg Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "GPG sign commit", + "group": "Options related to merging", + "aliases": [ + "-S" + ] + }, + { + "key": "--allow-unrelated-histories", + "displayName": "Allow Unrelated Histories", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "allow merging unrelated histories", + "group": "Options related to merging" + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "fetch from all remotes", + "group": "Options related to fetching" + }, + { + "key": "--append", + "displayName": "Append", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "append to .git/FETCH_HEAD instead of overwriting", + "group": "Options related to fetching", + "aliases": [ + "-a" + ] + }, + { + "key": "--upload-pack", + "displayName": "Upload Pack", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 26, + "description": "path to upload pack on remote end", + "group": "Options related to fetching" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "force overwrite of local branch", + "group": "Options related to fetching", + "aliases": [ + "-f" + ] + }, + { + "key": "--tags", + "displayName": "Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "fetch all tags and associated objects", + "group": "Options related to fetching", + "aliases": [ + "-t" + ] + }, + { + "key": "--prune", + "displayName": "Prune", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "prune remote-tracking branches no longer on remote", + "group": "Options related to fetching", + "aliases": [ + "-p" + ] + }, + { + "key": "--jobs", + "displayName": "Jobs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "number of submodules pulled in parallel", + "group": "Options related to fetching", + "aliases": [ + "-j" + ] + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "dry run", + "group": "Options related to fetching" + }, + { + "key": "--keep", + "displayName": "Keep", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "keep downloaded pack", + "group": "Options related to fetching", + "aliases": [ + "-k" + ] + }, + { + "key": "--depth", + "displayName": "Depth", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "deepen history of shallow clone", + "group": "Options related to fetching" + }, + { + "key": "--shallow-since", + "displayName": "Shallow Since", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 34, + "description": "deepen history of shallow repository based on time", + "group": "Options related to fetching" + }, + { + "key": "--shallow-exclude", + "displayName": "Shallow Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 35, + "description": "deepen history of shallow clone, excluding ref", + "group": "Options related to fetching" + }, + { + "key": "--deepen", + "displayName": "Deepen", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 36, + "description": "deepen history of shallow clone", + "group": "Options related to fetching" + }, + { + "key": "--unshallow", + "displayName": "Unshallow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "convert to a complete repository", + "group": "Options related to fetching" + }, + { + "key": "--update-shallow", + "displayName": "Update Shallow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "accept refs that update .git/shallow", + "group": "Options related to fetching" + }, + { + "key": "--refmap", + "displayName": "Refmap", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 39, + "description": "specify fetch refmap", + "group": "Options related to fetching" + }, + { + "key": "--server-option", + "displayName": "Server Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 40, + "description": "option to transmit", + "group": "Options related to fetching", + "aliases": [ + "-o" + ] + }, + { + "key": "--ipv4", + "displayName": "IPv4", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "use IPv4 addresses only", + "group": "Options related to fetching", + "aliases": [ + "-4" + ] + }, + { + "key": "--ipv6", + "displayName": "IPv6", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "use IPv6 addresses only", + "group": "Options related to fetching", + "aliases": [ + "-6" + ] + }, + { + "key": "--negotiation-tip", + "displayName": "Negotiation Tip", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 43, + "description": "report that we have only objects reachable from this object", + "group": "Options related to fetching" + }, + { + "key": "--show-forced-updates", + "displayName": "Show Forced Updates", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "check for forced-updates on all updated branches", + "group": "Options related to fetching" + }, + { + "key": "--set-upstream", + "displayName": "Set Upstream", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45, + "description": "set upstream for git pull/fetch", + "group": "Options related to fetching" + }, + { + "key": "--compact-summary", + "displayName": "Compact Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46, + "description": "Show a compact-summary at the end of the merge." + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 47, + "description": "Synonyms to --stat and --no-stat; these are deprecated and will be removed in the future.", + "aliases": [ + "--no-summary" + ] + }, + { + "key": "--atomic", + "displayName": "Atomic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 48, + "description": "Use an atomic transaction to update local refs." + }, + { + "key": "--negotiate-only", + "displayName": "Negotiate Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 49, + "description": "Do not fetch anything from the server, and instead print the ancestors of the provided --negotiation-tip=* arguments, which we have in common with the server." + }, + { + "key": "--porcelain", + "displayName": "Porcelain", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 50, + "description": "Print the output to standard output in an easy-to-parse format for scripts." + }, + { + "key": "--prefetch", + "displayName": "Prefetch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 51, + "description": "Modify the configured refspec to place all refs into the refs/prefetch/ namespace." + } + ] + }, + { + "key": "push", + "displayName": "push", + "sortOrder": 55, + "description": "Update remote refs along with associated objects", + "parameters": [ + { + "key": "repository", + "displayName": "Repository", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "refspec", + "displayName": "Refspec", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "be more verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "be more quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--repo", + "displayName": "Repo", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "repository" + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "push all branches" + }, + { + "key": "--branches", + "displayName": "Branches", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "alias of --all" + }, + { + "key": "--mirror", + "displayName": "Mirror", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "mirror all refs" + }, + { + "key": "--delete", + "displayName": "Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "delete refs", + "aliases": [ + "-d" + ] + }, + { + "key": "--tags", + "displayName": "Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "push tags (can't be used with --all or --branches or --mirror)" + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "dry run", + "aliases": [ + "-n" + ] + }, + { + "key": "--porcelain", + "displayName": "Porcelain", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "machine-readable output" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "force updates", + "aliases": [ + "-f" + ] + }, + { + "key": "--force-with-lease", + "displayName": "Force With Lease", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "require old value of ref to be at this value" + }, + { + "key": "--force-if-includes", + "displayName": "Force If Includes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "require remote updates to be integrated locally" + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "control recursive pushing of submodules" + }, + { + "key": "--thin", + "displayName": "Thin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "use thin pack" + }, + { + "key": "--receive-pack", + "displayName": "Receive Pack", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 17, + "description": "receive pack program" + }, + { + "key": "--exec", + "displayName": "Exec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 18, + "description": "receive pack program" + }, + { + "key": "--set-upstream", + "displayName": "Set Upstream", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "set upstream for git pull/status", + "aliases": [ + "-u" + ] + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "force progress reporting" + }, + { + "key": "--prune", + "displayName": "Prune", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "prune locally removed refs" + }, + { + "key": "--no-verify", + "displayName": "No Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "bypass pre-push hook" + }, + { + "key": "--verify", + "displayName": "Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "opposite of --no-verify" + }, + { + "key": "--follow-tags", + "displayName": "Follow Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "push missing but relevant tags" + }, + { + "key": "--signed", + "displayName": "Signed", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "GPG sign the push" + }, + { + "key": "--atomic", + "displayName": "Atomic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "request atomic transaction on remote side" + }, + { + "key": "--push-option", + "displayName": "Push Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 27, + "description": "option to transmit", + "aliases": [ + "-o" + ] + }, + { + "key": "--ipv4", + "displayName": "IPv4", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "use IPv4 addresses only", + "aliases": [ + "-4" + ] + }, + { + "key": "--ipv6", + "displayName": "IPv6", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "use IPv6 addresses only", + "aliases": [ + "-6" + ] + } + ] + }, + { + "key": "range-diff", + "displayName": "range-diff", + "sortOrder": 56, + "description": "Compare two commit ranges (e.g.", + "parameters": [ + { + "key": "old-base..old-tip", + "displayName": "Old Base Old Tip", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "new-base..new-tip", + "displayName": "New Base New Tip", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "old-tip", + "displayName": "Old Tip", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "new-tip", + "displayName": "New Tip", + "parameterType": "Argument", + "dataType": "String", + "position": 3, + "sortOrder": 3 + }, + { + "key": "base", + "displayName": "Base", + "parameterType": "Argument", + "dataType": "String", + "position": 4, + "sortOrder": 4 + }, + { + "key": "--creation-factor", + "displayName": "Creation Factor", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "percentage by which creation is weighted" + }, + { + "key": "--no-dual-color", + "displayName": "No Dual Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "use simple diff colors" + }, + { + "key": "--dual-color", + "displayName": "Dual Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "opposite of --no-dual-color" + }, + { + "key": "--notes", + "displayName": "Notes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "passed to 'git log'" + }, + { + "key": "--diff-merges", + "displayName": "Diff Merges", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "passed to 'git log'" + }, + { + "key": "--remerge-diff", + "displayName": "Remerge Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "passed to 'git log'" + }, + { + "key": "--left-only", + "displayName": "Left Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "only emit output related to the first range" + }, + { + "key": "--right-only", + "displayName": "Right Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "only emit output related to the second range" + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "generate patch", + "group": "Diff output format options", + "aliases": [ + "-p" + ] + }, + { + "key": "--no-patch", + "displayName": "No Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "suppress diff output", + "group": "Diff output format options", + "aliases": [ + "-s" + ] + }, + { + "key": "-u", + "displayName": "U", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "generate patch", + "group": "Diff output format options" + }, + { + "key": "--unified", + "displayName": "Unified", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "generate diffs with lines context", + "group": "Diff output format options", + "aliases": [ + "-U" + ] + }, + { + "key": "--function-context", + "displayName": "Function Context", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "generate diffs with lines context", + "group": "Diff output format options", + "aliases": [ + "-W" + ] + }, + { + "key": "--raw", + "displayName": "Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "generate the diff in raw format", + "group": "Diff output format options" + }, + { + "key": "--patch-with-raw", + "displayName": "Patch With Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "synonym for '-p --raw'", + "group": "Diff output format options" + }, + { + "key": "--patch-with-stat", + "displayName": "Patch With Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "synonym for '-p --stat'", + "group": "Diff output format options" + }, + { + "key": "--numstat", + "displayName": "Numstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "machine friendly --stat", + "group": "Diff output format options" + }, + { + "key": "--shortstat", + "displayName": "Shortstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "output only the last line of --stat", + "group": "Diff output format options" + }, + { + "key": "--dirstat", + "displayName": "Dirstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "output the distribution of relative amount of changes for each sub-directory", + "group": "Diff output format options", + "aliases": [ + "-X" + ] + }, + { + "key": "--cumulative", + "displayName": "Cumulative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "synonym for --dirstat=cumulative", + "group": "Diff output format options" + }, + { + "key": "--dirstat-by-file", + "displayName": "Dirstat By File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "synonym for --dirstat=files,,...", + "group": "Diff output format options" + }, + { + "key": "--check", + "displayName": "Check", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "warn if changes introduce conflict markers or whitespace errors", + "group": "Diff output format options" + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "condensed summary such as creations, renames and mode changes", + "group": "Diff output format options" + }, + { + "key": "--name-only", + "displayName": "Name Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "show only names of changed files", + "group": "Diff output format options" + }, + { + "key": "--name-status", + "displayName": "Name Status", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "show only names and status of changed files", + "group": "Diff output format options" + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "generate diffstat", + "group": "Diff output format options" + }, + { + "key": "--stat-width", + "displayName": "Stat Width", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 31, + "description": "generate diffstat with a given width", + "group": "Diff output format options" + }, + { + "key": "--stat-name-width", + "displayName": "Stat Name Width", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 32, + "description": "generate diffstat with a given name width", + "group": "Diff output format options" + }, + { + "key": "--stat-graph-width", + "displayName": "Stat Graph Width", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "generate diffstat with a given graph width", + "group": "Diff output format options" + }, + { + "key": "--stat-count", + "displayName": "Stat Count", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 34, + "description": "generate diffstat with limited lines", + "group": "Diff output format options" + }, + { + "key": "--compact-summary", + "displayName": "Compact Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "generate compact summary in diffstat", + "group": "Diff output format options" + }, + { + "key": "--binary", + "displayName": "Binary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "output a binary diff that can be applied", + "group": "Diff output format options" + }, + { + "key": "--full-index", + "displayName": "Full Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "show full pre- and post-image object names on the \"index\" lines", + "group": "Diff output format options" + }, + { + "key": "--color", + "displayName": "Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "show colored diff", + "group": "Diff output format options" + }, + { + "key": "--ws-error-highlight", + "displayName": "Ws Error Highlight", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 39, + "description": "highlight whitespace errors in the 'context', 'old' or 'new' lines in the diff", + "group": "Diff output format options" + }, + { + "key": "-z", + "displayName": "Z", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "do not munge pathnames and use NULs as output field terminators in --raw or --numstat", + "group": "Diff output format options" + }, + { + "key": "--abbrev", + "displayName": "Abbrev", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "use digits to display object names", + "group": "Diff output format options" + }, + { + "key": "--src-prefix", + "displayName": "Src Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 42, + "description": "show the given source prefix instead of \"a/\"", + "group": "Diff output format options" + }, + { + "key": "--dst-prefix", + "displayName": "Dst Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 43, + "description": "show the given destination prefix instead of \"b/\"", + "group": "Diff output format options" + }, + { + "key": "--line-prefix", + "displayName": "Line Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 44, + "description": "prepend an additional prefix to every line of output", + "group": "Diff output format options" + }, + { + "key": "--no-prefix", + "displayName": "No Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45, + "description": "do not show any source or destination prefix", + "group": "Diff output format options" + }, + { + "key": "--default-prefix", + "displayName": "Default Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46, + "description": "use default prefixes a/ and b/", + "group": "Diff output format options" + }, + { + "key": "--inter-hunk-context", + "displayName": "Inter Hunk Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 47, + "description": "show context between diff hunks up to the specified number of lines", + "group": "Diff output format options" + }, + { + "key": "--output-indicator-new", + "displayName": "Output Indicator New", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 48, + "description": "specify the character to indicate a new line instead of '+'", + "group": "Diff output format options" + }, + { + "key": "--output-indicator-old", + "displayName": "Output Indicator Old", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 49, + "description": "specify the character to indicate an old line instead of '-'", + "group": "Diff output format options" + }, + { + "key": "--output-indicator-context", + "displayName": "Output Indicator Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 50, + "description": "specify the character to indicate a context instead of ' '", + "group": "Diff output format options" + }, + { + "key": "--break-rewrites", + "displayName": "Break Rewrites", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 51, + "description": "break complete rewrite changes into pairs of delete and create", + "group": "Diff rename options", + "aliases": [ + "-B" + ] + }, + { + "key": "--find-renames", + "displayName": "Find Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 52, + "description": "detect renames", + "group": "Diff rename options", + "aliases": [ + "-M" + ] + }, + { + "key": "--irreversible-delete", + "displayName": "Irreversible Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 53, + "description": "omit the preimage for deletes", + "group": "Diff rename options", + "aliases": [ + "-D" + ] + }, + { + "key": "--find-copies", + "displayName": "Find Copies", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 54, + "description": "detect copies", + "group": "Diff rename options", + "aliases": [ + "-C" + ] + }, + { + "key": "--find-copies-harder", + "displayName": "Find Copies Harder", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 55, + "description": "use unmodified files as source to find copies", + "group": "Diff rename options" + }, + { + "key": "--no-renames", + "displayName": "No Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 56, + "description": "disable rename detection", + "group": "Diff rename options" + }, + { + "key": "--rename-empty", + "displayName": "Rename Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 57, + "description": "use empty blobs as rename source", + "group": "Diff rename options" + }, + { + "key": "--follow", + "displayName": "Follow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 58, + "description": "continue listing the history of a file beyond renames", + "group": "Diff rename options" + }, + { + "key": "-l", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 59, + "description": "prevent rename/copy detection if the number of rename/copy targets exceeds given limit", + "group": "Diff rename options" + }, + { + "key": "--minimal", + "displayName": "Minimal", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 60, + "description": "produce the smallest possible diff", + "group": "Diff algorithm options" + }, + { + "key": "--ignore-all-space", + "displayName": "Ignore All Space", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 61, + "description": "ignore whitespace when comparing lines", + "group": "Diff algorithm options", + "aliases": [ + "-w" + ] + }, + { + "key": "--ignore-space-change", + "displayName": "Ignore Space Change", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 62, + "description": "ignore changes in amount of whitespace", + "group": "Diff algorithm options", + "aliases": [ + "-b" + ] + }, + { + "key": "--ignore-space-at-eol", + "displayName": "Ignore Space At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 63, + "description": "ignore changes in whitespace at EOL", + "group": "Diff algorithm options" + }, + { + "key": "--ignore-cr-at-eol", + "displayName": "Ignore CR At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 64, + "description": "ignore carrier-return at the end of line", + "group": "Diff algorithm options" + }, + { + "key": "--ignore-blank-lines", + "displayName": "Ignore Blank Lines", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 65, + "description": "ignore changes whose lines are all blank", + "group": "Diff algorithm options" + }, + { + "key": "--ignore-matching-lines", + "displayName": "Ignore Matching Lines", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 66, + "description": "ignore changes whose all lines match ", + "group": "Diff algorithm options", + "aliases": [ + "-I" + ] + }, + { + "key": "--indent-heuristic", + "displayName": "Indent Heuristic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 67, + "description": "heuristic to shift diff hunk boundaries for easy reading", + "group": "Diff algorithm options" + }, + { + "key": "--patience", + "displayName": "Patience", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 68, + "description": "generate diff using the \"patience diff\" algorithm", + "group": "Diff algorithm options" + }, + { + "key": "--histogram", + "displayName": "Histogram", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 69, + "description": "generate diff using the \"histogram diff\" algorithm", + "group": "Diff algorithm options" + }, + { + "key": "--diff-algorithm", + "displayName": "Diff Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 70, + "description": "choose a diff algorithm", + "group": "Diff algorithm options" + }, + { + "key": "--anchored", + "displayName": "Anchored", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 71, + "description": "generate diff using the \"anchored diff\" algorithm", + "group": "Diff algorithm options" + }, + { + "key": "--word-diff", + "displayName": "Word Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 72, + "description": "show word diff, using to delimit changed words", + "group": "Diff algorithm options" + }, + { + "key": "--word-diff-regex", + "displayName": "Word Diff Regex", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 73, + "description": "use to decide what a word is", + "group": "Diff algorithm options" + }, + { + "key": "--color-words", + "displayName": "Color Words", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 74, + "description": "equivalent to --word-diff=color --word-diff-regex=", + "group": "Diff algorithm options" + }, + { + "key": "--color-moved", + "displayName": "Color Moved", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 75, + "description": "moved lines of code are colored differently", + "group": "Diff algorithm options" + }, + { + "key": "--color-moved-ws", + "displayName": "Color Moved Ws", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 76, + "description": "how white spaces are ignored in --color-moved", + "group": "Diff algorithm options" + }, + { + "key": "--relative", + "displayName": "Relative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 77, + "description": "when run from subdir, exclude changes outside and show relative paths", + "group": "Other diff options" + }, + { + "key": "--text", + "displayName": "Text", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 78, + "description": "treat all files as text", + "group": "Other diff options", + "aliases": [ + "-a" + ] + }, + { + "key": "-R", + "displayName": "R", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 79, + "description": "swap two inputs, reverse the diff", + "group": "Other diff options" + }, + { + "key": "--exit-code", + "displayName": "Exit Code", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 80, + "description": "exit with 1 if there were differences, 0 otherwise", + "group": "Other diff options" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 81, + "description": "disable all output of the program", + "group": "Other diff options" + }, + { + "key": "--ext-diff", + "displayName": "Ext Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 82, + "description": "allow an external diff helper to be executed", + "group": "Other diff options" + }, + { + "key": "--textconv", + "displayName": "Textconv", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 83, + "description": "run external text conversion filters when comparing binary files", + "group": "Other diff options" + }, + { + "key": "--ignore-submodules", + "displayName": "Ignore Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 84, + "description": "ignore changes to submodules in the diff generation", + "group": "Other diff options" + }, + { + "key": "--submodule", + "displayName": "Submodule", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 85, + "description": "specify how differences in submodules are shown", + "group": "Other diff options" + }, + { + "key": "--ita-invisible-in-index", + "displayName": "Ita Invisible In Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 86, + "description": "hide 'git add -N' entries from the index", + "group": "Other diff options" + }, + { + "key": "--ita-visible-in-index", + "displayName": "Ita Visible In Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 87, + "description": "treat 'git add -N' entries as real in the index", + "group": "Other diff options" + }, + { + "key": "-S", + "displayName": "S", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 88, + "description": "look for differences that change the number of occurrences of the specified string", + "group": "Other diff options" + }, + { + "key": "-G", + "displayName": "G", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 89, + "description": "look for differences that change the number of occurrences of the specified regex", + "group": "Other diff options" + }, + { + "key": "--pickaxe-all", + "displayName": "Pickaxe All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 90, + "description": "show all changes in the changeset with -S or -G", + "group": "Other diff options" + }, + { + "key": "--pickaxe-regex", + "displayName": "Pickaxe Regex", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 91, + "description": "treat in -S as extended POSIX regular expression", + "group": "Other diff options" + }, + { + "key": "-O", + "displayName": "O", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 92, + "description": "control the order in which files appear in the output", + "group": "Other diff options" + }, + { + "key": "--rotate-to", + "displayName": "Rotate To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 93, + "description": "show the change in the specified path first", + "group": "Other diff options" + }, + { + "key": "--skip-to", + "displayName": "Skip To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 94, + "description": "skip the output to the specified path", + "group": "Other diff options" + }, + { + "key": "--find-object", + "displayName": "Find Object", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 95, + "description": "look for differences that change the number of occurrences of the specified object", + "group": "Other diff options" + }, + { + "key": "--diff-filter", + "displayName": "Diff Filter", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 96, + "description": "select files by diff type", + "group": "Other diff options" + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 97, + "description": "output to a specific file", + "group": "Other diff options" + } + ] + }, + { + "key": "rebase", + "displayName": "rebase", + "sortOrder": 57, + "description": "Reapply commits on top of another base tip", + "parameters": [ + { + "key": "upstream", + "displayName": "Upstream", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "branch", + "displayName": "Branch", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--onto", + "displayName": "Onto", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "rebase onto given branch instead of upstream" + }, + { + "key": "--keep-base", + "displayName": "Keep Base", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "use the merge-base of upstream and branch as the current base" + }, + { + "key": "--no-verify", + "displayName": "No Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "allow pre-rebase hook to run" + }, + { + "key": "--verify", + "displayName": "Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "opposite of --no-verify" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "be quiet.", + "aliases": [ + "-q" + ] + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "display a diffstat of what changed upstream", + "aliases": [ + "-v" + ] + }, + { + "key": "--no-stat", + "displayName": "No Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "do not show diffstat of what changed upstream", + "aliases": [ + "-n" + ] + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "opposite of --no-stat" + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "add a Signed-off-by trailer to each commit" + }, + { + "key": "--committer-date-is-author-date", + "displayName": "Committer Date Is Author Date", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "make committer date match author date" + }, + { + "key": "--reset-author-date", + "displayName": "Reset Author Date", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "ignore author date and use current date" + }, + { + "key": "-C", + "displayName": "C", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "passed to 'git apply'" + }, + { + "key": "--ignore-whitespace", + "displayName": "Ignore Whitespace", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "ignore changes in whitespace" + }, + { + "key": "--whitespace", + "displayName": "Whitespace", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "passed to 'git apply'" + }, + { + "key": "--force-rebase", + "displayName": "Force Rebase", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "cherry-pick all commits, even if unchanged", + "aliases": [ + "-f" + ] + }, + { + "key": "--no-ff", + "displayName": "No Ff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "cherry-pick all commits, even if unchanged" + }, + { + "key": "--ff", + "displayName": "Ff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "opposite of --no-ff" + }, + { + "key": "--continue", + "displayName": "Continue", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "continue" + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "skip current patch and continue" + }, + { + "key": "--abort", + "displayName": "Abort", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "abort and check out the original branch" + }, + { + "key": "--quit", + "displayName": "Quit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "abort but keep HEAD where it is" + }, + { + "key": "--edit-todo", + "displayName": "Edit Todo", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "edit the todo list during an interactive rebase" + }, + { + "key": "--show-current-patch", + "displayName": "Show Current Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "show the patch file being applied or merged" + }, + { + "key": "--apply", + "displayName": "Apply", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "use apply strategies to rebase" + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "use merging strategies to rebase", + "aliases": [ + "-m" + ] + }, + { + "key": "--interactive", + "displayName": "Interactive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "let the user edit the list of commits to rebase", + "aliases": [ + "-i" + ] + }, + { + "key": "--rerere-autoupdate", + "displayName": "Rerere Autoupdate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "update the index with reused conflict resolution if possible" + }, + { + "key": "--empty", + "displayName": "Empty", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 29, + "description": "how to handle commits that become empty" + }, + { + "key": "--autosquash", + "displayName": "Autosquash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "move commits that begin with squash!/fixup!" + }, + { + "key": "--update-refs", + "displayName": "Update Refs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "update branches that point to commits that are being rebased" + }, + { + "key": "--gpg-sign", + "displayName": "Gpg Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "GPG-sign commits", + "aliases": [ + "-S" + ] + }, + { + "key": "--autostash", + "displayName": "Autostash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "automatically stash/stash pop before and after" + }, + { + "key": "--exec", + "displayName": "Exec", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 34, + "description": "add exec lines after each commit of the editable list", + "aliases": [ + "-x" + ] + }, + { + "key": "--rebase-merges", + "displayName": "Rebase Merges", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "try to rebase merges instead of skipping them", + "aliases": [ + "-r" + ] + }, + { + "key": "--fork-point", + "displayName": "Fork Point", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "use 'merge-base --fork-point' to refine upstream" + }, + { + "key": "--strategy", + "displayName": "Strategy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 37, + "description": "use the given merge strategy", + "aliases": [ + "-s" + ] + }, + { + "key": "--strategy-option", + "displayName": "Strategy Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 38, + "description": "pass the argument through to the merge strategy", + "aliases": [ + "-X" + ] + }, + { + "key": "--root", + "displayName": "Root", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "rebase all reachable commits up to the root(s)" + }, + { + "key": "--reschedule-failed-exec", + "displayName": "Reschedule Failed Exec", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "automatically re-schedule any `exec` that fails" + }, + { + "key": "--reapply-cherry-picks", + "displayName": "Reapply Cherry Picks", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "apply all changes, even those already present upstream" + }, + { + "key": "--no-keep-empty", + "displayName": "No Keep Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "Do not keep commits that start empty before the rebase (i.e.", + "aliases": [ + "--keep-empty" + ] + }, + { + "key": "--allow-empty-message", + "displayName": "Allow Empty Message", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "No-op." + } + ] + }, + { + "key": "reset", + "displayName": "reset", + "sortOrder": 58, + "description": "Reset current HEAD to the specified state", + "parameters": [ + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "tree-ish", + "displayName": "Tree Ish", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "be quiet, only report errors", + "aliases": [ + "-q" + ] + }, + { + "key": "--no-refresh", + "displayName": "No Refresh", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "skip refreshing the index after reset" + }, + { + "key": "--refresh", + "displayName": "Refresh", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "opposite of --no-refresh" + }, + { + "key": "--mixed", + "displayName": "Mixed", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "reset HEAD and index" + }, + { + "key": "--soft", + "displayName": "Soft", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "reset only HEAD" + }, + { + "key": "--hard", + "displayName": "Hard", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "reset HEAD, index and working tree" + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "reset HEAD, index and working tree" + }, + { + "key": "--keep", + "displayName": "Keep", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "reset HEAD but keep local changes" + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "control recursive updating of submodules" + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "select hunks interactively", + "aliases": [ + "-p" + ] + }, + { + "key": "--intent-to-add", + "displayName": "Intent To Add", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "record only the fact that removed paths will be added later", + "aliases": [ + "-N" + ] + }, + { + "key": "--pathspec-from-file", + "displayName": "Pathspec From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "read pathspec from file" + }, + { + "key": "--pathspec-file-nul", + "displayName": "Pathspec File Nul", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "with --pathspec-from-file, pathspec elements are separated with NUL character" + } + ] + }, + { + "key": "restore", + "displayName": "restore", + "sortOrder": 59, + "description": "Restore working tree files", + "parameters": [ + { + "key": "file", + "displayName": "File", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "which tree-ish to checkout from", + "aliases": [ + "-s" + ] + }, + { + "key": "--staged", + "displayName": "Staged", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "restore the index", + "aliases": [ + "-S" + ] + }, + { + "key": "--worktree", + "displayName": "Worktree", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "restore the working tree (default)", + "aliases": [ + "-W" + ] + }, + { + "key": "--ignore-unmerged", + "displayName": "Ignore Unmerged", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "ignore unmerged entries" + }, + { + "key": "--overlay", + "displayName": "Overlay", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "use overlay mode" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "suppress progress reporting", + "aliases": [ + "-q" + ] + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "control recursive updating of submodules" + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "force progress reporting" + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "perform a 3-way merge with the new branch", + "aliases": [ + "-m" + ] + }, + { + "key": "--conflict", + "displayName": "Conflict", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "conflict style (merge, diff3, or zdiff3)" + }, + { + "key": "--ours", + "displayName": "Ours", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "checkout our version for unmerged files", + "aliases": [ + "-2" + ] + }, + { + "key": "--theirs", + "displayName": "Theirs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "checkout their version for unmerged files", + "aliases": [ + "-3" + ] + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "select hunks interactively", + "aliases": [ + "-p" + ] + }, + { + "key": "--ignore-skip-worktree-bits", + "displayName": "Ignore Skip Worktree Bits", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "do not limit pathspecs to sparse entries only" + }, + { + "key": "--pathspec-from-file", + "displayName": "Pathspec From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "read pathspec from file" + }, + { + "key": "--pathspec-file-nul", + "displayName": "Pathspec File Nul", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "with --pathspec-from-file, pathspec elements are separated with NUL character" + } + ] + }, + { + "key": "revert", + "displayName": "revert", + "sortOrder": 60, + "description": "Revert some existing commits", + "parameters": [ + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--quit", + "displayName": "Quit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "end revert or cherry-pick sequence" + }, + { + "key": "--continue", + "displayName": "Continue", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "resume revert or cherry-pick sequence" + }, + { + "key": "--abort", + "displayName": "Abort", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "cancel revert or cherry-pick sequence" + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "skip current commit and continue" + }, + { + "key": "--cleanup", + "displayName": "Cleanup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 5, + "description": "how to strip spaces and #comments from message" + }, + { + "key": "--no-commit", + "displayName": "No Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "don't automatically commit", + "aliases": [ + "-n" + ] + }, + { + "key": "--commit", + "displayName": "Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "opposite of --no-commit" + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "edit the commit message", + "aliases": [ + "-e" + ] + }, + { + "key": "--signoff", + "displayName": "Signoff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "add a Signed-off-by trailer", + "aliases": [ + "-s" + ] + }, + { + "key": "--mainline", + "displayName": "Mainline", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "select mainline parent", + "aliases": [ + "-m" + ] + }, + { + "key": "--rerere-autoupdate", + "displayName": "Rerere Autoupdate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "update the index with reused conflict resolution if possible" + }, + { + "key": "--strategy", + "displayName": "Strategy", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "merge strategy" + }, + { + "key": "--strategy-option", + "displayName": "Strategy Option", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "option for merge strategy", + "aliases": [ + "-X" + ] + }, + { + "key": "--gpg-sign", + "displayName": "Gpg Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "GPG sign commit", + "aliases": [ + "-S" + ] + }, + { + "key": "--reference", + "displayName": "Reference", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "use the 'reference' format to refer to commits" + } + ] + }, + { + "key": "rm", + "displayName": "rm", + "sortOrder": 61, + "description": "Remove files from the working tree and from the index", + "parameters": [ + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--dry-run", + "displayName": "Dry Run", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "dry run", + "aliases": [ + "-n" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "do not list removed files", + "aliases": [ + "-q" + ] + }, + { + "key": "--cached", + "displayName": "Cached", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "only remove from the index" + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "override the up-to-date check", + "aliases": [ + "-f" + ] + }, + { + "key": "-r", + "displayName": "R", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "allow recursive removal" + }, + { + "key": "--ignore-unmatch", + "displayName": "Ignore Unmatch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "exit with a zero status even if nothing matched" + }, + { + "key": "--sparse", + "displayName": "Sparse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "allow updating entries outside of the sparse-checkout cone" + }, + { + "key": "--pathspec-from-file", + "displayName": "Pathspec From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 8, + "description": "read pathspec from file" + }, + { + "key": "--pathspec-file-nul", + "displayName": "Pathspec File Nul", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "with --pathspec-from-file, pathspec elements are separated with NUL character" + } + ] + }, + { + "key": "shortlog", + "displayName": "shortlog", + "sortOrder": 62, + "description": "Summarize 'git log' output", + "parameters": [ + { + "key": "revision-range", + "displayName": "Revision Range", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--committer", + "displayName": "Committer", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "group by committer rather than author", + "aliases": [ + "-c" + ] + }, + { + "key": "--numbered", + "displayName": "Numbered", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "sort output according to the number of commits per author", + "aliases": [ + "-n" + ] + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "suppress commit descriptions, only provides commit count", + "aliases": [ + "-s" + ] + }, + { + "key": "--email", + "displayName": "Email", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "show the email address of each author", + "aliases": [ + "-e" + ] + }, + { + "key": "-w", + "displayName": "W", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "linewrap output" + }, + { + "key": "--group", + "displayName": "Group", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "group by field" + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "Instead of the commit subject, use some other information to describe each commit." + }, + { + "key": "--date", + "displayName": "Date", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "Show dates formatted according to the given date string." + }, + { + "key": "--skip", + "displayName": "Skip", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "Skip commits before starting to show the commit output." + }, + { + "key": "--since", + "displayName": "Since", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "Show commits more recent than .", + "aliases": [ + "--after" + ] + }, + { + "key": "--since-as-filter", + "displayName": "Since As Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 12, + "description": "Show all commits more recent than ." + }, + { + "key": "--until", + "displayName": "Until", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "Show commits older than .", + "aliases": [ + "--before" + ] + }, + { + "key": "--grep-reflog", + "displayName": "Grep Reflog", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "Limit the commits output to ones with reflog entries that match the regular expression." + }, + { + "key": "--grep", + "displayName": "Grep", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "Limit the commits output to ones with a log message that matches the regular expression." + }, + { + "key": "--all-match", + "displayName": "All Match", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Limit the commits output to ones that match all given --grep, instead of ones that match at least one." + }, + { + "key": "--invert-grep", + "displayName": "Invert Grep", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "Limit the commits output to ones with a log message that do not match the specified with --grep=." + }, + { + "key": "--regexp-ignore-case", + "displayName": "Regexp Ignore Case", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "Match the regular expression limiting patterns without regard to letter case.", + "aliases": [ + "-i" + ] + }, + { + "key": "--basic-regexp", + "displayName": "Basic Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "Consider the limiting patterns to be basic regular expressions; this is the default." + }, + { + "key": "--extended-regexp", + "displayName": "Extended Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Consider the limiting patterns to be extended regular expressions instead of the default basic regular expressions.", + "aliases": [ + "-E" + ] + }, + { + "key": "--fixed-strings", + "displayName": "Fixed Strings", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "Consider the limiting patterns to be fixed strings (don't interpret pattern as a regular expression).", + "aliases": [ + "-F" + ] + }, + { + "key": "--perl-regexp", + "displayName": "Perl Regexp", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "Consider the limiting patterns to be Perl-compatible regular expressions.", + "aliases": [ + "-P" + ] + }, + { + "key": "--remove-empty", + "displayName": "Remove Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "Stop when a given path disappears from the tree." + }, + { + "key": "--merges", + "displayName": "Merges", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "Print only merge commits." + }, + { + "key": "--min-parents", + "displayName": "Min Parents", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 25, + "description": "Show only commits which have at least (or at most) that many parent commits.", + "aliases": [ + "--max-parents", + "--no-min-parents", + "--no-max-parents" + ] + }, + { + "key": "--first-parent", + "displayName": "First Parent", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 26, + "description": "When finding commits to include, follow only the first parent commit upon seeing a merge commit." + }, + { + "key": "--exclude-first-parent-only", + "displayName": "Exclude First Parent Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "When finding commits to exclude (with a ^), follow only the first parent commit upon seeing a merge commit." + }, + { + "key": "--not", + "displayName": "Not", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "Reverses the meaning of the ^ prefix (or lack thereof) for all following revision specifiers, up to the next --not." + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 29, + "description": "Pretend as if all the refs in refs/, along with HEAD, are listed on the command line as ." + }, + { + "key": "--branches", + "displayName": "Branches", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 30, + "description": "Pretend as if all the refs in refs/heads are listed on the command line as ." + }, + { + "key": "--tags", + "displayName": "Tags", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "Pretend as if all the refs in refs/tags are listed on the command line as ." + }, + { + "key": "--remotes", + "displayName": "Remotes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "Pretend as if all the refs in refs/remotes are listed on the command line as ." + }, + { + "key": "--glob", + "displayName": "Glob", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 33, + "description": "Pretend as if all the refs matching shell glob are listed on the command line as ." + }, + { + "key": "--exclude", + "displayName": "Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 34, + "description": "Do not include refs matching that the next --all, --branches, --tags, --remotes, or --glob would otherwise consider." + }, + { + "key": "--exclude-hidden", + "displayName": "Exclude Hidden", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 35, + "description": "Do not include refs that would be hidden by git-fetch, git-receive-pack or git-upload-pack by consulting the appropriate fetch.hideRefs, receive.hideRefs or uploadpack.hideRefs configuration along with transfer.hideRefs (see git-config(1))." + }, + { + "key": "--reflog", + "displayName": "Reflog", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "Pretend as if all objects mentioned by reflogs are listed on the command line as ." + }, + { + "key": "--alternate-refs", + "displayName": "Alternate Refs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "Pretend as if all objects mentioned as ref tips of alternate repositories were listed on the command line." + }, + { + "key": "--single-worktree", + "displayName": "Single Worktree", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 38, + "description": "By default, all working trees will be examined by the following options when there are more than one (see git-worktree(1)): --all, --reflog and --indexed-objects." + }, + { + "key": "--ignore-missing", + "displayName": "Ignore Missing", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 39, + "description": "Upon seeing an invalid object name in the input, pretend as if the bad input was not given." + }, + { + "key": "--bisect", + "displayName": "Bisect", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "Pretend as if the bad bisection ref refs/bisect/bad was listed and as if it was followed by --not and the good bisection refs refs/bisect/good-* on the command line." + }, + { + "key": "--stdin", + "displayName": "Stdin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "In addition to getting arguments from the command line, read them from standard input as well." + }, + { + "key": "--cherry-mark", + "displayName": "Cherry Mark", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "Like --cherry-pick (see below) but mark equivalent commits with = rather than omitting them, and inequivalent ones with +." + }, + { + "key": "--cherry-pick", + "displayName": "Cherry Pick", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "Omit any commit that introduces the same change as another commit on the \"other side\" when the set of commits are limited with symmetric difference." + }, + { + "key": "--left-only", + "displayName": "Left Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "List only commits on the respective side of a symmetric difference, i.e.", + "aliases": [ + "--right-only" + ] + }, + { + "key": "--cherry", + "displayName": "Cherry", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45, + "description": "A synonym for --right-only --cherry-mark --no-merges; useful to limit the output to the commits on our side and mark those that have been applied to the other side of a forked history with git log --cherry upstream...mybranch, similar to git cherry upstream mybranch." + }, + { + "key": "--walk-reflogs", + "displayName": "Walk Reflogs", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46, + "description": "Instead of walking the commit ancestry chain, walk reflog entries from the most recent one to older ones.", + "aliases": [ + "-g" + ] + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 47, + "description": "Show commits touching conflicted paths in the range HEAD..., where is the first existing pseudoref in MERGE_HEAD, CHERRY_PICK_HEAD, REVERT_HEAD or REBASE_HEAD." + }, + { + "key": "--boundary", + "displayName": "Boundary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 48, + "description": "Output excluded boundary commits." + }, + { + "key": "--simplify-by-decoration", + "displayName": "Simplify By Decoration", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 49, + "description": "Commits that are referred by some branch or tag are selected." + }, + { + "key": "--show-pulls", + "displayName": "Show Pulls", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 50, + "description": "Include all commits from the default mode, but also any merge commits that are not TREESAME to the first parent but are TREESAME to a later parent." + }, + { + "key": "--full-history", + "displayName": "Full History", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 51, + "description": "Same as the default mode, but does not prune some history." + }, + { + "key": "--dense", + "displayName": "Dense", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 52, + "description": "Only the selected commits are shown, plus some to have a meaningful history." + }, + { + "key": "--sparse", + "displayName": "Sparse", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 53, + "description": "All commits in the simplified history are shown." + }, + { + "key": "--simplify-merges", + "displayName": "Simplify Merges", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 54, + "description": "Additional option to --full-history to remove some needless merges from the resulting history, as there are no selected commits contributing to this merge." + }, + { + "key": "--ancestry-path", + "displayName": "Ancestry Path", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 55, + "description": "When given a range of commits to display (e.g." + } + ] + }, + { + "key": "show", + "displayName": "show", + "sortOrder": 63, + "description": "Show various types of objects", + "parameters": [ + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "suppress diff output", + "aliases": [ + "-q" + ] + }, + { + "key": "--source", + "displayName": "Source", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "show source" + }, + { + "key": "--use-mailmap", + "displayName": "Use Mailmap", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "use mail map file" + }, + { + "key": "--mailmap", + "displayName": "Mailmap", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "alias of --use-mailmap" + }, + { + "key": "--clear-decorations", + "displayName": "Clear Decorations", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "clear all previously-defined decoration filters" + }, + { + "key": "--decorate-refs", + "displayName": "Decorate Refs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 6, + "description": "only decorate refs that match " + }, + { + "key": "--decorate-refs-exclude", + "displayName": "Decorate Refs Exclude", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "do not decorate refs that match " + }, + { + "key": "--decorate", + "displayName": "Decorate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "decorate options" + }, + { + "key": "-L", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "trace the evolution of line range , or function : in " + }, + { + "key": "--pretty", + "displayName": "Pretty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "Pretty-print the contents of the commit logs in a given format, where can be one of oneline, short, medium, full, fuller, reference, email, raw, format: and tformat:.", + "aliases": [ + "--format" + ] + }, + { + "key": "--abbrev-commit", + "displayName": "Abbrev Commit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "Instead of showing the full 40-byte hexadecimal commit object name, show a prefix that names the object uniquely." + }, + { + "key": "--oneline", + "displayName": "Oneline", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "This is a shorthand for --pretty=oneline --abbrev-commit used together." + }, + { + "key": "--encoding", + "displayName": "Encoding", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "Commit objects record the character encoding used for the log message in their encoding header; this option can be used to tell the command to re-code the commit log message in the encoding preferred by the user." + }, + { + "key": "--expand-tabs", + "displayName": "Expand Tabs", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "Perform a tab expansion (replace each tab with enough spaces to fill to the next display column that is a multiple of ) in the log message before showing it in the output.", + "aliases": [ + "--no-expand-tabs" + ] + }, + { + "key": "--notes", + "displayName": "Notes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "Show the notes (see git-notes(1)) that annotate the commit, when showing the commit log message." + }, + { + "key": "--show-notes-by-default", + "displayName": "Show Notes By Default", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "Show the default notes unless options for displaying specific notes are given." + }, + { + "key": "--show-notes", + "displayName": "Show Notes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "These options are deprecated.", + "aliases": [ + "--standard-notes", + "--no-standard-notes" + ] + }, + { + "key": "--show-signature", + "displayName": "Show Signature", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "Check the validity of a signed commit object by passing the signature to gpg --verify and show the output." + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 19, + "description": "Generate patch (see the section called \"GENERATING PATCH TEXT WITH -P\").", + "aliases": [ + "-p", + "-u" + ] + }, + { + "key": "-m", + "displayName": "M", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 20, + "description": "Show diffs for merge commits in the default format." + }, + { + "key": "-c", + "displayName": "C", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 21, + "description": "Produce combined diff output for merge commits." + }, + { + "key": "--cc", + "displayName": "Cc", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 22, + "description": "Produce dense combined diff output for merge commits." + }, + { + "key": "--dd", + "displayName": "Dd", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "Produce diff with respect to first parent for both merge and regular commits." + }, + { + "key": "--remerge-diff", + "displayName": "Remerge Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 24, + "description": "Produce remerge-diff output for merge commits." + }, + { + "key": "--no-diff-merges", + "displayName": "No Diff Merges", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 25, + "description": "Synonym for --diff-merges=off." + }, + { + "key": "--diff-merges", + "displayName": "Diff Merges", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 26, + "description": "Specify diff format to be used for merge commits." + }, + { + "key": "--combined-all-paths", + "displayName": "Combined All Paths", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "Cause combined diffs (used for merge commits) to list the name of the file from all parents." + }, + { + "key": "--unified", + "displayName": "Unified", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 28, + "description": "Generate diffs with lines of context instead of the usual three.", + "aliases": [ + "-U" + ] + }, + { + "key": "--output", + "displayName": "Output", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 29, + "description": "Output to a specific file instead of stdout." + }, + { + "key": "--output-indicator-new", + "displayName": "Output Indicator New", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 30, + "description": "Specify the character used to indicate new, old or context lines in the generated patch.", + "aliases": [ + "--output-indicator-old", + "--output-indicator-context" + ] + }, + { + "key": "--raw", + "displayName": "Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 31, + "description": "For each commit, show a summary of changes using the raw diff format." + }, + { + "key": "--patch-with-raw", + "displayName": "Patch With Raw", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 32, + "description": "Synonym for -p --raw." + }, + { + "key": "-t", + "displayName": "T", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 33, + "description": "Show the tree objects in the diff output." + }, + { + "key": "--indent-heuristic", + "displayName": "Indent Heuristic", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 34, + "description": "Enable the heuristic that shifts diff hunk boundaries to make patches easier to read." + }, + { + "key": "--minimal", + "displayName": "Minimal", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 35, + "description": "Spend extra time to make sure the smallest possible diff is produced." + }, + { + "key": "--patience", + "displayName": "Patience", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 36, + "description": "Generate a diff using the \"patience diff\" algorithm." + }, + { + "key": "--histogram", + "displayName": "Histogram", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 37, + "description": "Generate a diff using the \"histogram diff\" algorithm." + }, + { + "key": "--anchored", + "displayName": "Anchored", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 38, + "description": "Generate a diff using the \"anchored diff\" algorithm." + }, + { + "key": "--diff-algorithm", + "displayName": "Diff Algorithm", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 39, + "description": "Choose a diff algorithm." + }, + { + "key": "--stat", + "displayName": "Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 40, + "description": "Generate a diffstat." + }, + { + "key": "--compact-summary", + "displayName": "Compact Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 41, + "description": "Output a condensed summary of extended header information such as file creations or deletions (\"new\" or \"gone\", optionally +l if it's a symlink) and mode changes (+x or -x for adding or removing executable bit respectively) in diffstat." + }, + { + "key": "--numstat", + "displayName": "Numstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 42, + "description": "Similar to --stat, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly." + }, + { + "key": "--shortstat", + "displayName": "Shortstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 43, + "description": "Output only the last line of the --stat format containing total number of modified files, as well as number of added and deleted lines." + }, + { + "key": "--dirstat", + "displayName": "Dirstat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 44, + "description": "Output the distribution of relative amount of changes for each sub-directory.", + "aliases": [ + "-X" + ] + }, + { + "key": "--cumulative", + "displayName": "Cumulative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 45, + "description": "Synonym for --dirstat=cumulative." + }, + { + "key": "--dirstat-by-file", + "displayName": "Dirstat By File", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 46, + "description": "Synonym for --dirstat=files,,...." + }, + { + "key": "--summary", + "displayName": "Summary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 47, + "description": "Output a condensed summary of extended header information such as creations, renames and mode changes." + }, + { + "key": "--patch-with-stat", + "displayName": "Patch With Stat", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 48, + "description": "Synonym for -p --stat." + }, + { + "key": "-z", + "displayName": "Z", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 49, + "description": "Separate the commits with NULs instead of newlines." + }, + { + "key": "--name-only", + "displayName": "Name Only", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 50, + "description": "Show only the name of each changed file in the post-image tree." + }, + { + "key": "--name-status", + "displayName": "Name Status", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 51, + "description": "Show only the name(s) and status of each changed file." + }, + { + "key": "--submodule", + "displayName": "Submodule", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 52, + "description": "Specify how differences in submodules are shown." + }, + { + "key": "--color", + "displayName": "Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 53, + "description": "Show colored diff." + }, + { + "key": "--color-moved", + "displayName": "Color Moved", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 54, + "description": "Moved lines of code are colored differently." + }, + { + "key": "--color-moved-ws", + "displayName": "Color Moved Ws", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 55, + "description": "This configures how whitespace is ignored when performing the move detection for --color-moved." + }, + { + "key": "--word-diff", + "displayName": "Word Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 56, + "description": "By default, words are delimited by whitespace; see --word-diff-regex below." + }, + { + "key": "--word-diff-regex", + "displayName": "Word Diff Regex", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 57, + "description": "Use to decide what a word is, instead of considering runs of non-whitespace to be a word." + }, + { + "key": "--color-words", + "displayName": "Color Words", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 58, + "description": "Equivalent to --word-diff=color plus (if a regex was specified) --word-diff-regex=." + }, + { + "key": "--no-renames", + "displayName": "No Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 59, + "description": "Turn off rename detection, even when the configuration file gives the default to do so." + }, + { + "key": "--rename-empty", + "displayName": "Rename Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 60, + "description": "Whether to use empty blobs as rename source." + }, + { + "key": "--check", + "displayName": "Check", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 61, + "description": "Warn if changes introduce conflict markers or whitespace errors." + }, + { + "key": "--ws-error-highlight", + "displayName": "Ws Error Highlight", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 62, + "description": "Highlight whitespace errors in the context, old or new lines of the diff." + }, + { + "key": "--full-index", + "displayName": "Full Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 63, + "description": "Instead of the first handful of characters, show the full pre- and post-image blob object names on the \"index\" line when generating patch format output." + }, + { + "key": "--binary", + "displayName": "Binary", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 64, + "description": "In addition to --full-index, output a binary diff that can be applied with git-apply." + }, + { + "key": "--abbrev", + "displayName": "Abbrev", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 65, + "description": "Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show the shortest prefix that is at least hexdigits long that uniquely refers the object." + }, + { + "key": "--break-rewrites", + "displayName": "Break Rewrites", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 66, + "description": "Break complete rewrite changes into pairs of delete and create.", + "aliases": [ + "-B" + ] + }, + { + "key": "--find-renames", + "displayName": "Find Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 67, + "description": "If generating diffs, detect and report renames for each commit.", + "aliases": [ + "-M" + ] + }, + { + "key": "--find-copies", + "displayName": "Find Copies", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 68, + "description": "Detect copies as well as renames.", + "aliases": [ + "-C" + ] + }, + { + "key": "--find-copies-harder", + "displayName": "Find Copies Harder", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 69, + "description": "For performance reasons, by default, -C option finds copies only if the original file of the copy was modified in the same changeset." + }, + { + "key": "--irreversible-delete", + "displayName": "Irreversible Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 70, + "description": "Omit the preimage for deletes, i.e.", + "aliases": [ + "-D" + ] + }, + { + "key": "-l", + "displayName": "L", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 71, + "description": "The -M and -C options involve some preliminary steps that can detect subsets of renames/copies cheaply, followed by an exhaustive fallback portion that compares all remaining unpaired destinations to all relevant sources." + }, + { + "key": "--diff-filter", + "displayName": "Diff Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 72, + "description": "Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e." + }, + { + "key": "-S", + "displayName": "S", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 73, + "description": "Look for differences that change the number of occurrences of the specified (i.e." + }, + { + "key": "-G", + "displayName": "G", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 74, + "description": "Look for differences whose patch text contains added/removed lines that match ." + }, + { + "key": "--find-object", + "displayName": "Find Object", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 75, + "description": "Look for differences that change the number of occurrences of the specified object." + }, + { + "key": "--pickaxe-all", + "displayName": "Pickaxe All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 76, + "description": "When -S or -G finds a change, show all the changes in that changeset, not just the files that contain the change in ." + }, + { + "key": "--pickaxe-regex", + "displayName": "Pickaxe Regex", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 77, + "description": "Treat the given to -S as an extended POSIX regular expression to match." + }, + { + "key": "-O", + "displayName": "O", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 78, + "description": "Control the order in which files appear in the output." + }, + { + "key": "--skip-to", + "displayName": "Skip To", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 79, + "description": "Discard the files before the named from the output (i.e.", + "aliases": [ + "--rotate-to" + ] + }, + { + "key": "-R", + "displayName": "R", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 80, + "description": "Swap two inputs; that is, show differences from index or on-disk file to tree contents." + }, + { + "key": "--relative", + "displayName": "Relative", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 81, + "description": "When run from a subdirectory of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option.", + "aliases": [ + "--no-relative" + ] + }, + { + "key": "--text", + "displayName": "Text", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 82, + "description": "Treat all files as text.", + "aliases": [ + "-a" + ] + }, + { + "key": "--ignore-cr-at-eol", + "displayName": "Ignore CR At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 83, + "description": "Ignore carriage-return at the end of line when doing a comparison." + }, + { + "key": "--ignore-space-at-eol", + "displayName": "Ignore Space At EOL", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 84, + "description": "Ignore changes in whitespace at EOL." + }, + { + "key": "--ignore-space-change", + "displayName": "Ignore Space Change", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 85, + "description": "Ignore changes in amount of whitespace.", + "aliases": [ + "-b" + ] + }, + { + "key": "--ignore-all-space", + "displayName": "Ignore All Space", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 86, + "description": "Ignore whitespace when comparing lines.", + "aliases": [ + "-w" + ] + }, + { + "key": "--ignore-blank-lines", + "displayName": "Ignore Blank Lines", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 87, + "description": "Ignore changes whose lines are all blank." + }, + { + "key": "--ignore-matching-lines", + "displayName": "Ignore Matching Lines", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 88, + "description": "Ignore changes whose all lines match .", + "aliases": [ + "-I" + ] + }, + { + "key": "--inter-hunk-context", + "displayName": "Inter Hunk Context", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 89, + "description": "Show the context between diff hunks, up to the specified of lines, thereby fusing hunks that are close to each other." + }, + { + "key": "--function-context", + "displayName": "Function Context", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 90, + "description": "Show whole function as context lines for each change.", + "aliases": [ + "-W" + ] + }, + { + "key": "--ext-diff", + "displayName": "Ext Diff", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 91, + "description": "Allow an external diff helper to be executed." + }, + { + "key": "--textconv", + "displayName": "Textconv", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 92, + "description": "Allow (or disallow) external text conversion filters to be run when comparing binary files.", + "aliases": [ + "--no-textconv" + ] + }, + { + "key": "--ignore-submodules", + "displayName": "Ignore Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 93, + "description": "Ignore changes to submodules in the diff generation." + }, + { + "key": "--src-prefix", + "displayName": "Src Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 94, + "description": "Show the given source instead of \"a/\"." + }, + { + "key": "--dst-prefix", + "displayName": "Dst Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 95, + "description": "Show the given destination instead of \"b/\"." + }, + { + "key": "--no-prefix", + "displayName": "No Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 96, + "description": "Do not show any source or destination prefix." + }, + { + "key": "--default-prefix", + "displayName": "Default Prefix", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 97, + "description": "Use the default source and destination prefixes (\"a/\" and \"b/\")." + }, + { + "key": "--line-prefix", + "displayName": "Line Prefix", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 98, + "description": "Prepend an additional to every line of output." + }, + { + "key": "--ita-invisible-in-index", + "displayName": "Ita Invisible In Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 99, + "description": "By default entries added by git add -N appear as an existing empty file in git diff and a new file in git diff --cached." + } + ] + }, + { + "key": "sparse-checkout", + "displayName": "sparse-checkout", + "sortOrder": 64, + "description": "Reduce your working tree to a subset of tracked files", + "commands": [ + { + "key": "sparse-checkout-init", + "displayName": "init", + "sortOrder": 65, + "description": "Deprecated command that behaves like set with no specified paths.", + "parameters": [ + { + "key": "--cone", + "displayName": "Cone", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "initialize the sparse-checkout in cone mode" + }, + { + "key": "--sparse-index", + "displayName": "Sparse Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "toggle the use of a sparse index" + } + ] + }, + { + "key": "sparse-checkout-list", + "displayName": "list", + "sortOrder": 66, + "description": "Describe the directories or patterns in the sparse-checkout file." + }, + { + "key": "sparse-checkout-set", + "displayName": "set", + "sortOrder": 67, + "description": "Enable the necessary sparse-checkout config settings (core.sparseCheckout, core.sparseCheckoutCone, and index.sparse) if they are not already set to the desired values, populate the sparse-checkout file from the list of arguments following the set subcommand, and update the working directory to match.", + "parameters": [ + { + "key": "patterns", + "displayName": "Patterns", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--cone", + "displayName": "Cone", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "initialize the sparse-checkout in cone mode" + }, + { + "key": "--sparse-index", + "displayName": "Sparse Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "toggle the use of a sparse index" + }, + { + "key": "--skip-checks", + "displayName": "Skip Checks", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "skip some sanity checks on the given paths that might give false positives" + }, + { + "key": "--stdin", + "displayName": "Stdin", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "read patterns from standard in" + } + ] + }, + { + "key": "sparse-checkout-add", + "displayName": "add", + "sortOrder": 68, + "description": "Update the sparse-checkout file to include additional directories (in cone mode) or patterns (in non-cone mode)." + }, + { + "key": "sparse-checkout-reapply", + "displayName": "reapply", + "sortOrder": 69, + "description": "Reapply the sparsity pattern rules to paths in the working tree." + }, + { + "key": "sparse-checkout-disable", + "displayName": "disable", + "sortOrder": 70, + "description": "Disable the core.sparseCheckout config setting, and restore the working directory to include all files." + }, + { + "key": "sparse-checkout-check-rules", + "displayName": "check-rules", + "sortOrder": 71, + "description": "Check whether sparsity rules match one or more paths.", + "parameters": [ + { + "key": "-z", + "displayName": "Z", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "terminate input and output files by a NUL character" + }, + { + "key": "--cone", + "displayName": "Cone", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "when used with --rules-file interpret patterns as cone mode patterns" + }, + { + "key": "--rules-file", + "displayName": "Rules File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "use patterns in instead of the current ones." + } + ] + } + ] + }, + { + "key": "stash", + "displayName": "stash", + "sortOrder": 72, + "description": "Stash the changes in a dirty working directory away", + "commands": [ + { + "key": "stash-list", + "displayName": "list", + "sortOrder": 73, + "description": "List the stash entries that you currently have." + }, + { + "key": "stash-show", + "displayName": "show", + "sortOrder": 74, + "description": "Show the changes recorded in the stash entry as a diff between the stashed contents and the commit back when the stash entry was first created.", + "parameters": [ + { + "key": "stash", + "displayName": "Stash", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--include-untracked", + "displayName": "Include Untracked", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "include untracked files in the stash", + "aliases": [ + "-u" + ] + }, + { + "key": "--only-untracked", + "displayName": "Only Untracked", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "only show untracked files in the stash" + } + ] + }, + { + "key": "stash-drop", + "displayName": "drop", + "sortOrder": 75, + "description": "Remove a single stash entry from the list of stash entries.", + "parameters": [ + { + "key": "stash", + "displayName": "Stash", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "be quiet, only report errors", + "aliases": [ + "-q" + ] + } + ] + }, + { + "key": "stash-pop", + "displayName": "pop", + "sortOrder": 76, + "description": "Remove a single stashed state from the stash list and apply it on top of the current working tree state, i.e., do the inverse operation of git stash push.", + "parameters": [ + { + "key": "stash", + "displayName": "Stash", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "be quiet, only report errors", + "aliases": [ + "-q" + ] + }, + { + "key": "--index", + "displayName": "Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "attempt to recreate the index" + } + ] + }, + { + "key": "stash-apply", + "displayName": "apply", + "sortOrder": 77, + "description": "Like pop, but do not remove the state from the stash list.", + "parameters": [ + { + "key": "stash", + "displayName": "Stash", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "be quiet, only report errors", + "aliases": [ + "-q" + ] + }, + { + "key": "--index", + "displayName": "Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "attempt to recreate the index" + } + ] + }, + { + "key": "stash-branch", + "displayName": "branch", + "sortOrder": 78, + "description": "Creates and checks out a new branch named starting from the commit at which the was originally created, applies the changes recorded in to the new working tree and index.", + "parameters": [ + { + "key": "branchname", + "displayName": "Branchname", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "stash", + "displayName": "Stash", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + } + ] + }, + { + "key": "stash-push", + "displayName": "push", + "sortOrder": 79, + "description": "Save your local modifications to a new stash entry and roll them back to HEAD (in the working tree and in the index).", + "parameters": [ + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "-p", + "displayName": "P", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "-S", + "displayName": "S", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3 + }, + { + "key": "--staged", + "displayName": "Staged", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4 + }, + { + "key": "-k", + "displayName": "K", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5 + }, + { + "key": "--keep-index", + "displayName": "Keep Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6 + }, + { + "key": "-q", + "displayName": "Q", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7 + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8 + }, + { + "key": "-u", + "displayName": "U", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9 + }, + { + "key": "--include-untracked", + "displayName": "Include Untracked", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10 + }, + { + "key": "-a", + "displayName": "A", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11 + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12 + }, + { + "key": "-m", + "displayName": "M", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13 + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14 + }, + { + "key": "--pathspec-from-file", + "displayName": "Pathspec From File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15 + }, + { + "key": "--pathspec-file-nul", + "displayName": "Pathspec File Nul", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16 + } + ] + }, + { + "key": "stash-save", + "displayName": "save", + "sortOrder": 80, + "description": "This option is deprecated in favour of git stash push.", + "parameters": [ + { + "key": "message", + "displayName": "Message", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--keep-index", + "displayName": "Keep Index", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "keep index", + "aliases": [ + "-k" + ] + }, + { + "key": "--staged", + "displayName": "Staged", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "stash staged changes only", + "aliases": [ + "-S" + ] + }, + { + "key": "--patch", + "displayName": "Patch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "stash in patch mode", + "aliases": [ + "-p" + ] + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "quiet mode", + "aliases": [ + "-q" + ] + }, + { + "key": "--include-untracked", + "displayName": "Include Untracked", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "include untracked files in stash", + "aliases": [ + "-u" + ] + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "include ignore files", + "aliases": [ + "-a" + ] + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 7, + "description": "stash message", + "aliases": [ + "-m" + ] + } + ] + }, + { + "key": "stash-clear", + "displayName": "clear", + "sortOrder": 81, + "description": "Remove all the stash entries." + }, + { + "key": "stash-create", + "displayName": "create", + "sortOrder": 82, + "description": "Create a stash entry (which is a regular commit object) and return its object name, without storing it anywhere in the ref namespace.", + "parameters": [ + { + "key": "message", + "displayName": "Message", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + }, + { + "key": "stash-store", + "displayName": "store", + "sortOrder": 83, + "description": "Store a given stash created via git stash create (which is a dangling merge commit) in the stash ref, updating the stash reflog.", + "parameters": [ + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "be quiet", + "aliases": [ + "-q" + ] + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "stash message", + "aliases": [ + "-m" + ] + } + ] + } + ] + }, + { + "key": "status", + "displayName": "status", + "sortOrder": 84, + "description": "Show the working tree status", + "parameters": [ + { + "key": "pathspec", + "displayName": "Pathspec", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "be verbose", + "aliases": [ + "-v" + ] + }, + { + "key": "--short", + "displayName": "Short", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "show status concisely", + "aliases": [ + "-s" + ] + }, + { + "key": "--branch", + "displayName": "Branch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "show branch information", + "aliases": [ + "-b" + ] + }, + { + "key": "--show-stash", + "displayName": "Show Stash", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "show stash information" + }, + { + "key": "--ahead-behind", + "displayName": "Ahead Behind", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "compute full ahead/behind values" + }, + { + "key": "--porcelain", + "displayName": "Porcelain", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "machine-readable output" + }, + { + "key": "--long", + "displayName": "Long", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "show status in long format (default)" + }, + { + "key": "--null", + "displayName": "Null", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "terminate entries with NUL", + "aliases": [ + "-z" + ] + }, + { + "key": "--untracked-files", + "displayName": "Untracked Files", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9, + "description": "show untracked files, optional modes: all, normal, no.", + "aliases": [ + "-u" + ] + }, + { + "key": "--ignored", + "displayName": "Ignored", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "show ignored files, optional modes: traditional, matching, no." + }, + { + "key": "--ignore-submodules", + "displayName": "Ignore Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "ignore changes to submodules, optional when: all, dirty, untracked." + }, + { + "key": "--column", + "displayName": "Column", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "list untracked files in columns" + }, + { + "key": "--no-renames", + "displayName": "No Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "do not detect renames" + }, + { + "key": "--renames", + "displayName": "Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "opposite of --no-renames" + }, + { + "key": "--find-renames", + "displayName": "Find Renames", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "detect renames, optionally set similarity index", + "aliases": [ + "-M" + ] + } + ] + }, + { + "key": "submodule", + "displayName": "submodule", + "sortOrder": 85, + "description": "Initialize, update or inspect submodules", + "commands": [ + { + "key": "submodule-add", + "displayName": "add", + "sortOrder": 86, + "description": "Add the given repository as a submodule at the given path to the changeset to be committed next to the current project: the current project is termed the \"superproject\".", + "parameters": [ + { + "key": "repository", + "displayName": "Repository", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "-b", + "displayName": "B", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "-f", + "displayName": "F", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3 + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4 + }, + { + "key": "--name", + "displayName": "Name", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5 + }, + { + "key": "--reference", + "displayName": "Reference", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6 + } + ] + }, + { + "key": "submodule-status", + "displayName": "status", + "sortOrder": 87, + "description": "Show the status of the submodules.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--cached", + "displayName": "Cached", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + }, + { + "key": "--recursive", + "displayName": "Recursive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + } + ] + }, + { + "key": "submodule-init", + "displayName": "init", + "sortOrder": 88, + "description": "Initialize the submodules recorded in the index (which were added and committed elsewhere) by setting submodule.$name.url in .git/config, using the same setting from .gitmodules as a template.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + }, + { + "key": "submodule-deinit", + "displayName": "deinit", + "sortOrder": 89, + "description": "Unregister the given submodules, i.e.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "-f", + "displayName": "F", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "--all", + "displayName": "All", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3 + } + ] + }, + { + "key": "submodule-update", + "displayName": "update", + "sortOrder": 90, + "description": "Update the registered submodules to match what the superproject expects by cloning missing submodules, fetching missing commits in submodules and updating the working tree of the submodules.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--init", + "displayName": "Init", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + }, + { + "key": "--filter", + "displayName": "Filter", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2 + }, + { + "key": "--remote", + "displayName": "Remote", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3 + }, + { + "key": "-N", + "displayName": "N", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4 + }, + { + "key": "--no-fetch", + "displayName": "No Fetch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5 + }, + { + "key": "-f", + "displayName": "F", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6 + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7 + }, + { + "key": "--checkout", + "displayName": "Checkout", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8 + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 9 + }, + { + "key": "--rebase", + "displayName": "Rebase", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10 + }, + { + "key": "--recommend-shallow", + "displayName": "Recommend Shallow", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11 + }, + { + "key": "--reference", + "displayName": "Reference", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12 + }, + { + "key": "--recursive", + "displayName": "Recursive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13 + }, + { + "key": "--single-branch", + "displayName": "Single Branch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14 + } + ] + }, + { + "key": "submodule-set-branch", + "displayName": "set-branch", + "sortOrder": 91, + "description": "Sets the default remote tracking branch for the submodule.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--default", + "displayName": "Default", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + }, + { + "key": "--branch", + "displayName": "Branch", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + } + ] + }, + { + "key": "submodule-set-url", + "displayName": "set-url", + "sortOrder": 92, + "description": "Sets the URL of the specified submodule to .", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "newurl", + "displayName": "Newurl", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1, + "isRequired": true + } + ] + }, + { + "key": "submodule-summary", + "displayName": "summary", + "sortOrder": 93, + "description": "Show commit summary between the given commit (defaults to HEAD) and working tree/index.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--cached", + "displayName": "Cached", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + }, + { + "key": "--files", + "displayName": "Files", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2 + }, + { + "key": "--summary-limit", + "displayName": "Summary Limit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3 + } + ] + }, + { + "key": "submodule-foreach", + "displayName": "foreach", + "sortOrder": 94, + "description": "Evaluates an arbitrary shell command in each checked out submodule.", + "parameters": [ + { + "key": "command", + "displayName": "Command", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "--recursive", + "displayName": "Recursive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + } + ] + }, + { + "key": "submodule-sync", + "displayName": "sync", + "sortOrder": 95, + "description": "Synchronizes submodules' remote URL configuration setting to the value specified in .gitmodules.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--recursive", + "displayName": "Recursive", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1 + } + ] + }, + { + "key": "submodule-absorbgitdirs", + "displayName": "absorbgitdirs", + "sortOrder": 96, + "description": "If a git directory of a submodule is inside the submodule, move the git directory of the submodule into its superproject's $GIT_DIR/modules path and then connect the git directory and its working directory by setting the core.worktree and adding a .git file pointing to the git directory embedded in the superprojects git directory.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + } + ] + } + ] + }, + { + "key": "switch", + "displayName": "switch", + "sortOrder": 97, + "description": "Switch branches", + "parameters": [ + { + "key": "branch", + "displayName": "Branch", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "--create", + "displayName": "Create", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 1, + "description": "create and switch to a new branch", + "aliases": [ + "-c" + ] + }, + { + "key": "--force-create", + "displayName": "Force Create", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "create/reset and switch to a branch", + "aliases": [ + "-C" + ] + }, + { + "key": "--guess", + "displayName": "Guess", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 3, + "description": "second guess 'git switch '" + }, + { + "key": "--discard-changes", + "displayName": "Discard Changes", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "throw away local modifications" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "suppress progress reporting", + "aliases": [ + "-q" + ] + }, + { + "key": "--recurse-submodules", + "displayName": "Recurse Submodules", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "control recursive updating of submodules" + }, + { + "key": "--progress", + "displayName": "Progress", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "force progress reporting" + }, + { + "key": "--merge", + "displayName": "Merge", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "perform a 3-way merge with the new branch", + "aliases": [ + "-m" + ] + }, + { + "key": "--conflict", + "displayName": "Conflict", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "conflict style (merge, diff3, or zdiff3)" + }, + { + "key": "--detach", + "displayName": "Detach", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "detach HEAD at named commit", + "aliases": [ + "-d" + ] + }, + { + "key": "--track", + "displayName": "Track", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "set branch tracking configuration", + "aliases": [ + "-t" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "force checkout (throw away local modifications)", + "aliases": [ + "-f" + ] + }, + { + "key": "--orphan", + "displayName": "Orphan", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 13, + "description": "new unborn branch" + }, + { + "key": "--overwrite-ignore", + "displayName": "Overwrite Ignore", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 14, + "description": "update ignored files (default)" + }, + { + "key": "--ignore-other-worktrees", + "displayName": "Ignore Other Worktrees", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 15, + "description": "do not check if another worktree is using this branch" + } + ] + }, + { + "key": "tag", + "displayName": "tag", + "sortOrder": 98, + "description": "Create, list, delete or verify a tag object signed with GPG", + "parameters": [ + { + "key": "tagname", + "displayName": "Tagname", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0 + }, + { + "key": "commit", + "displayName": "Commit", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "object", + "displayName": "Object", + "parameterType": "Argument", + "dataType": "String", + "position": 2, + "sortOrder": 2 + }, + { + "key": "pattern", + "displayName": "Pattern", + "parameterType": "Argument", + "dataType": "String", + "position": 3, + "sortOrder": 3 + }, + { + "key": "--list", + "displayName": "List", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 4, + "description": "list tag names", + "aliases": [ + "-l" + ] + }, + { + "key": "-n", + "displayName": "N", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "print lines of each tag message" + }, + { + "key": "--delete", + "displayName": "Delete", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "delete tags", + "aliases": [ + "-d" + ] + }, + { + "key": "--verify", + "displayName": "Verify", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "verify tags", + "aliases": [ + "-v" + ] + }, + { + "key": "--annotate", + "displayName": "Annotate", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "annotated tag, needs a message", + "group": "Tag creation options", + "aliases": [ + "-a" + ] + }, + { + "key": "--message", + "displayName": "Message", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "tag message", + "group": "Tag creation options", + "aliases": [ + "-m" + ] + }, + { + "key": "--file", + "displayName": "File", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 10, + "description": "read message from file", + "group": "Tag creation options", + "aliases": [ + "-F" + ] + }, + { + "key": "--trailer", + "displayName": "Trailer", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 11, + "description": "add custom trailer(s)", + "group": "Tag creation options" + }, + { + "key": "--edit", + "displayName": "Edit", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "force edit of tag message", + "group": "Tag creation options", + "aliases": [ + "-e" + ] + }, + { + "key": "--sign", + "displayName": "Sign", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "annotated and GPG-signed tag", + "group": "Tag creation options", + "aliases": [ + "-s" + ] + }, + { + "key": "--cleanup", + "displayName": "Cleanup", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 14, + "description": "how to strip spaces and #comments from message", + "group": "Tag creation options" + }, + { + "key": "--local-user", + "displayName": "Local User", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 15, + "description": "use another key to sign the tag", + "group": "Tag creation options", + "aliases": [ + "-u" + ] + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 16, + "description": "replace the tag if exists", + "group": "Tag creation options", + "aliases": [ + "-f" + ] + }, + { + "key": "--create-reflog", + "displayName": "Create Reflog", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 17, + "description": "create a reflog", + "group": "Tag creation options" + }, + { + "key": "--column", + "displayName": "Column", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 18, + "description": "show tag list in columns", + "group": "Tag listing options" + }, + { + "key": "--contains", + "displayName": "Contains", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 19, + "description": "print only tags that contain the commit", + "group": "Tag listing options" + }, + { + "key": "--no-contains", + "displayName": "No Contains", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 20, + "description": "print only tags that don't contain the commit", + "group": "Tag listing options" + }, + { + "key": "--merged", + "displayName": "Merged", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 21, + "description": "print only tags that are merged", + "group": "Tag listing options" + }, + { + "key": "--no-merged", + "displayName": "No Merged", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 22, + "description": "print only tags that are not merged", + "group": "Tag listing options" + }, + { + "key": "--omit-empty", + "displayName": "Omit Empty", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 23, + "description": "do not output a newline after empty formatted refs", + "group": "Tag listing options" + }, + { + "key": "--sort", + "displayName": "Sort", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 24, + "description": "field name to sort on", + "group": "Tag listing options" + }, + { + "key": "--points-at", + "displayName": "Points At", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 25, + "description": "print only tags of the object", + "group": "Tag listing options" + }, + { + "key": "--format", + "displayName": "Format", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 26, + "description": "format to use for the output", + "group": "Tag listing options" + }, + { + "key": "--color", + "displayName": "Color", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 27, + "description": "respect format colors", + "group": "Tag listing options" + }, + { + "key": "--ignore-case", + "displayName": "Ignore Case", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 28, + "description": "sorting and filtering are case insensitive", + "group": "Tag listing options", + "aliases": [ + "-i" + ] + } + ] + }, + { + "key": "worktree", + "displayName": "worktree", + "sortOrder": 99, + "description": "Manage multiple working trees", + "commands": [ + { + "key": "worktree-add", + "displayName": "add", + "sortOrder": 100, + "description": "Create a worktree at and checkout into it.", + "parameters": [ + { + "key": "path", + "displayName": "Path", + "parameterType": "Argument", + "dataType": "String", + "position": 0, + "sortOrder": 0, + "isRequired": true + }, + { + "key": "commit-ish", + "displayName": "Commit Ish", + "parameterType": "Argument", + "dataType": "String", + "position": 1, + "sortOrder": 1 + }, + { + "key": "--force", + "displayName": "Force", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 2, + "description": "checkout even if already checked out in other worktree", + "aliases": [ + "-f" + ] + }, + { + "key": "-b", + "displayName": "B", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 3, + "description": "create a new branch" + }, + { + "key": "-B", + "displayName": "B", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 4, + "description": "create or reset a branch" + }, + { + "key": "--orphan", + "displayName": "Orphan", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 5, + "description": "create unborn branch" + }, + { + "key": "--detach", + "displayName": "Detach", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 6, + "description": "detach HEAD at named commit", + "aliases": [ + "-d" + ] + }, + { + "key": "--checkout", + "displayName": "Checkout", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 7, + "description": "populate the new working tree" + }, + { + "key": "--lock", + "displayName": "Lock", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 8, + "description": "keep the new working tree locked" + }, + { + "key": "--reason", + "displayName": "Reason", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 9, + "description": "reason for locking" + }, + { + "key": "--quiet", + "displayName": "Quiet", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 10, + "description": "suppress progress reporting", + "aliases": [ + "-q" + ] + }, + { + "key": "--track", + "displayName": "Track", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 11, + "description": "set up tracking mode (see git-branch(1))" + }, + { + "key": "--guess-remote", + "displayName": "Guess Remote", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 12, + "description": "try to match the new branch name with a remote-tracking branch" + }, + { + "key": "--relative-paths", + "displayName": "Relative Paths", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 13, + "description": "use relative paths for worktrees" + } + ] + }, + { + "key": "worktree-list", + "displayName": "list", + "sortOrder": 101, + "description": "List details of each worktree.", + "parameters": [ + { + "key": "--porcelain", + "displayName": "Porcelain", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 0, + "description": "machine-readable output" + }, + { + "key": "--verbose", + "displayName": "Verbose", + "parameterType": "Flag", + "dataType": "Boolean", + "sortOrder": 1, + "description": "show extended annotations and reasons, if available", + "aliases": [ + "-v" + ] + }, + { + "key": "--expire", + "displayName": "Expire", + "parameterType": "Option", + "dataType": "String", + "sortOrder": 2, + "description": "add 'prunable' annotation to worktrees older than