From f0a0eb4ebabe0bf3a8e7354ded7199035803d699 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 30 Jul 2025 06:54:59 +0000 Subject: [PATCH 1/8] Initial plan From 569cf8f82e41b31eed50c8e891eb8099e8a4fc63 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 30 Jul 2025 07:08:30 +0000 Subject: [PATCH 2/8] Add MCP server and AI configuration documentation for VS and VS Code extensions Co-authored-by: nenchef <3043283+nenchef@users.noreply.github.com> --- .spelling | 9 +- ai/copilot-extension.md | 2 + ai/mcp-server.md | 13 ++- .../vs-code-integration/ai-configuration.md | 85 ++++++++++++++++ .../vs-code-integration/introduction.md | 3 + .../vs-integration/ai-configuration.md | 96 +++++++++++++++++++ .../vs-integration/introduction.md | 3 + 7 files changed, 209 insertions(+), 2 deletions(-) create mode 100644 getting-started/vs-code-integration/ai-configuration.md create mode 100644 getting-started/vs-integration/ai-configuration.md diff --git a/.spelling b/.spelling index abb926858b..b25f0a7e5b 100644 --- a/.spelling +++ b/.spelling @@ -6915,4 +6915,11 @@ k-rpanel-toggle - api/javascript/ui/scheduler.md workweek - third-party/using-kendo-with-data-access.md -v3 \ No newline at end of file +v3MCP +mcp +mcp.json +.mcp.json +telerikBlazorAssistant +telerikblazor +McP +copilot-instructions.md diff --git a/ai/copilot-extension.md b/ai/copilot-extension.md index a90e2ff7ca..bc0edd0a71 100644 --- a/ai/copilot-extension.md +++ b/ai/copilot-extension.md @@ -35,6 +35,8 @@ To install the Telerik Blazor Copilot extension: 1. Restart your [Copilot-enabled apps](https://docs.github.com/en/copilot/building-copilot-extensions/about-building-copilot-extensions#supported-clients-and-ides) (for example, Visual Studio and VS Code). 1. Start a new chat session in Copilot. +> You can also use the automated installation commands provided by the Telerik extensions for [Visual Studio](slug:getting-started-vs-integration-ai-configuration) and [VS Code](slug:getting-started-vs-code-integration-ai-configuration) to quickly open the installation page. + ## Usage To use the Telerik Blazor Copilot extension: diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 30f4fbea90..abc6a744aa 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -24,7 +24,18 @@ To use the Telerik Blazor MCP server, you need: ## Installation -Use the documentation of your AI-powered MCP client to add the Telerik MCP server to a specific workspace or globally. The sections below provide installation tips and examples for some popular MCP clients like [Visual Studio](#visual-studio), [VS Code](#vs-code), and [Cursor](#cursor). The generic settings of the Telerik Blazor MCP server are: +You can install the Telerik Blazor MCP server manually or use automated configuration commands provided by the Telerik extensions for [Visual Studio](slug:getting-started-vs-integration-ai-configuration) and [VS Code](slug:getting-started-vs-code-integration-ai-configuration). + +### Automated Installation + +The easiest way to configure the Telerik Blazor MCP server is through the automated commands in the Telerik extensions: + +* **Visual Studio**: Use the "Configure MCP Server for Solution" or "Configure MCP Server Globally" commands. For details, see [AI Configuration in Visual Studio](slug:getting-started-vs-integration-ai-configuration). +* **VS Code**: Use the "Telerik UI for Blazor: Configure MCP Server" command. For details, see [AI Configuration in VS Code](slug:getting-started-vs-code-integration-ai-configuration). + +### Manual Installation + +For manual installation or when using other MCP clients, use the documentation of your AI-powered MCP client to add the Telerik MCP server to a specific workspace or globally. The sections below provide installation tips and examples for some popular MCP clients like [Visual Studio](#visual-studio), [VS Code](#vs-code), and [Cursor](#cursor). The generic settings of the Telerik Blazor MCP server are: * npm package name: `@progress/telerik-blazor-mcp` * Type: `stdio` (standard input/output transport) diff --git a/getting-started/vs-code-integration/ai-configuration.md b/getting-started/vs-code-integration/ai-configuration.md new file mode 100644 index 0000000000..d6b3cd1bae --- /dev/null +++ b/getting-started/vs-code-integration/ai-configuration.md @@ -0,0 +1,85 @@ +--- +title: AI Configuration +page_title: Visual Studio Code AI Configuration +description: Learn how to configure AI-powered tools like MCP servers and GitHub Copilot for Telerik UI for Blazor development in Visual Studio Code. +slug: getting-started-vs-code-integration-ai-configuration +position: 8 +--- + +# AI Configuration in Visual Studio Code + +The Telerik UI for Blazor Extension for Visual Studio Code provides automated configuration commands for AI-powered development tools. These commands help you quickly set up [MCP servers](slug:ai-mcp-server) and [GitHub Copilot](slug:ai-copilot-extension) for enhanced developer productivity with Telerik UI for Blazor components. + +## Available Commands + +To access these commands, press `Ctrl`+`Shift`+`P` on Windows/Linux or `Cmd`+`Shift`+`P` on Mac to open the VS Code command palette, then search for the following Telerik commands: + +### Configure MCP Server + +The **Telerik UI for Blazor: Configure MCP Server** command automatically creates the necessary configuration file for the [Telerik Blazor MCP Server](slug:ai-mcp-server). This command provides two configuration scopes: + +* **Workspace Scope** - Creates an `mcp.json` file under the `.vscode` folder in your current workspace. This configuration applies only to the current workspace. +* **Global Scope** - Creates an `mcp.json` file under `C:\Users\[username]\AppData\Roaming\Code\User\` (Windows) or the equivalent user configuration directory on other platforms. This configuration applies to all VS Code workspaces. + +The generated `mcp.json` file includes the proper configuration for the Telerik Blazor MCP server with placeholder values for your Telerik license. You need to update the license path or key in the generated file. + +>caption Generated .vscode/mcp.json (Workspace Scope) + +```json +{ + "servers": { + "telerikBlazorAssistant": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@progress/telerik-blazor-mcp@latest"], + "env": { + "TELERIK_LICENSE_PATH": "C:\\Users\\___\\AppData\\Roaming\\Telerik\\telerik-license.txt" + } + } + } +} +``` + +> Make sure to update the `TELERIK_LICENSE_PATH` value with your actual [Telerik license file location](slug:installation-license-key), or replace it with a `TELERIK_LICENSE` key containing your license key directly. + +### Add GitHub Copilot Custom Instructions + +The **Telerik UI for Blazor: Add GitHub Copilot Custom Instructions** command generates a `copilot-instructions.md` file under the `.github` folder in your current workspace. This file contains custom instructions that help GitHub Copilot provide better assistance when working with Telerik UI for Blazor components. + +The generated file includes: +* Best practices for Razor component development +* Telerik UI for Blazor specific coding guidelines +* Component naming conventions +* Recommended code structure patterns + +### Install Telerik Blazor Copilot Extension + +The **Telerik UI for Blazor: Install Telerik Blazor Copilot Extension** command opens the GitHub App installation page in your default browser: + +`https://github.com/apps/telerikblazor/installations/select_target` + +This allows you to quickly install the [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) for your GitHub account or organization. + +## Prerequisites + +Before using these AI configuration commands, ensure you have: + +* A [Telerik user account](https://www.telerik.com/account/) +* An active [DevCraft or Telerik UI for Blazor license](https://www.telerik.com/purchase/blazor-ui) or [trial](https://www.telerik.com/blazor-ui) +* [Node.js](https://nodejs.org/en) 18 or newer (for MCP server functionality) +* The latest version of the Telerik UI for Blazor VS Code extension + +## Next Steps + +After configuring the AI tools: + +1. **For MCP Server**: Follow the [complete MCP server setup guide](slug:ai-mcp-server) to understand usage and troubleshooting. +2. **For GitHub Copilot**: Learn how to use the [Telerik Blazor Copilot Extension](slug:ai-copilot-extension) effectively. +3. **For both**: Review the [AI tooling overview](slug:ai-overview) to understand the capabilities and limitations of these tools. + +## See Also + +* [Telerik Blazor MCP Server](slug:ai-mcp-server) +* [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) +* [AI Tooling Overview](slug:ai-overview) +* [VS Code Integration Overview](slug:getting-started-vs-code-integration-overview) \ No newline at end of file diff --git a/getting-started/vs-code-integration/introduction.md b/getting-started/vs-code-integration/introduction.md index 67461494bb..faf3083f9f 100644 --- a/getting-started/vs-code-integration/introduction.md +++ b/getting-started/vs-code-integration/introduction.md @@ -20,6 +20,8 @@ The extension for Visual Studio Code provides the following advantages: * It allows you to [add the Telerik Components to an existing project](slug:getting-started-vs-code-integration-convert-project ) with a few clicks. +* It provides [automated AI configuration](slug:getting-started-vs-code-integration-ai-configuration) for MCP servers and GitHub Copilot to enhance your development experience with Telerik UI for Blazor. + ## Get the Extension @[template](/_contentTemplates/common/general-info.md#vs-code-x-download) @@ -30,4 +32,5 @@ To access the VS Code extension, press `Ctrl`+`Shift`+`P` on Windows/Linux or `C ## See Also +* [AI Configuration in VS Code](slug:getting-started-vs-code-integration-ai-configuration) * [Telerik GitHub Copilot extension for Blazor](slug:ai-copilot-extension) diff --git a/getting-started/vs-integration/ai-configuration.md b/getting-started/vs-integration/ai-configuration.md new file mode 100644 index 0000000000..b28ddb129e --- /dev/null +++ b/getting-started/vs-integration/ai-configuration.md @@ -0,0 +1,96 @@ +--- +title: AI Configuration +page_title: Visual Studio AI Configuration +description: Learn how to configure AI-powered tools like MCP servers and GitHub Copilot for Telerik UI for Blazor development in Visual Studio. +slug: getting-started-vs-integration-ai-configuration +position: 8 +--- + +# AI Configuration in Visual Studio + +The Telerik UI for Blazor Extension for Visual Studio provides automated configuration commands for AI-powered development tools. These commands help you quickly set up [MCP servers](slug:ai-mcp-server) and [GitHub Copilot](slug:ai-copilot-extension) for enhanced developer productivity with Telerik UI for Blazor components. + +## Available Commands + +To access these commands, go to **Extensions** > **Telerik** > **Telerik UI for Blazor** in the Visual Studio menu. + +### Configure MCP Server + +The Telerik UI for Blazor extension provides two MCP server configuration options: + +#### Configure MCP Server for Solution + +The **Configure MCP Server for Solution** command generates a `.mcp.json` file in the solution folder. This configuration applies only to the current solution and any projects within it. + +#### Configure MCP Server Globally + +The **Configure MCP Server Globally** command generates a `.mcp.json` file under the user profile directory (`%USERPROFILE%`, for example, `C:\Users\`). This configuration applies to all Visual Studio solutions and projects. + +Both commands create a properly configured `.mcp.json` file for the [Telerik Blazor MCP Server](slug:ai-mcp-server) with placeholder values for your Telerik license. + +>caption Generated .mcp.json + +```json +{ + "servers": { + "telerikBlazorAssistant": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@progress/telerik-blazor-mcp@latest"], + "env": { + "TELERIK_LICENSE_PATH": "C:\\Users\\___\\AppData\\Roaming\\Telerik\\telerik-license.txt" + } + } + } +} +``` + +> Make sure to update the `TELERIK_LICENSE_PATH` value with your actual [Telerik license file location](slug:installation-license-key), or replace it with a `TELERIK_LICENSE` key containing your license key directly. + +### Add/Update Copilot Instructions + +The **Add/Update Copilot Instructions** command generates a `copilot-instructions.md` file in the `.github` folder under the solution. This file contains custom instructions that help GitHub Copilot provide better assistance when working with Telerik UI for Blazor components. + +The generated file includes: +* Best practices for Razor component development +* Telerik UI for Blazor specific coding guidelines +* Component naming conventions +* Recommended code structure patterns + +### Install Telerik Blazor Copilot Extension + +The **Install Telerik Blazor Copilot Extension** command opens the GitHub App installation page in your default browser: + +`https://github.com/apps/telerikblazor/installations/select_target` + +This allows you to quickly install the [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) for your GitHub account or organization. + +## Prerequisites + +Before using these AI configuration commands, ensure you have: + +* A [Telerik user account](https://www.telerik.com/account/) +* An active [DevCraft or Telerik UI for Blazor license](https://www.telerik.com/purchase/blazor-ui) or [trial](https://www.telerik.com/blazor-ui) +* [Node.js](https://nodejs.org/en) 18 or newer (for MCP server functionality) +* Visual Studio 2022 or 2019 with the latest Telerik UI for Blazor extension + +## Important Notes for Visual Studio + +* Early Visual Studio 17.14 versions require the Copilot Chat window to be open and active when you open a solution for the MCP server to work properly. +* After configuring the MCP server, make sure that the `telerikBlazorAssistant` tool is [enabled (checked) in the Copilot Chat window's tool selection dropdown](https://learn.microsoft.com/en-us/visualstudio/ide/mcp-servers?view=vs-2022#configuration-example-with-github-mcp-server). +* The Telerik MCP server may get disabled and you may see "🔧10/11" in the selected tools dropdown when starting a new chat, changing threads, or relaunching Visual Studio. This is a known issue that is being investigated. + +## Next Steps + +After configuring the AI tools: + +1. **For MCP Server**: Follow the [complete MCP server setup guide](slug:ai-mcp-server) to understand usage and troubleshooting. +2. **For GitHub Copilot**: Learn how to use the [Telerik Blazor Copilot Extension](slug:ai-copilot-extension) effectively. +3. **For both**: Review the [AI tooling overview](slug:ai-overview) to understand the capabilities and limitations of these tools. + +## See Also + +* [Telerik Blazor MCP Server](slug:ai-mcp-server) +* [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) +* [AI Tooling Overview](slug:ai-overview) +* [Visual Studio Integration Overview](slug:getting-started-vs-integration-overview) \ No newline at end of file diff --git a/getting-started/vs-integration/introduction.md b/getting-started/vs-integration/introduction.md index 39eb903d54..785cbd1a5c 100644 --- a/getting-started/vs-integration/introduction.md +++ b/getting-started/vs-integration/introduction.md @@ -24,6 +24,8 @@ The Telerik UI for Blazor extension for Visual Studio provides the following adv * It enables you to easily install or update your [Telerik license key](slug:installation-license-key). +* It provides [automated AI configuration](slug:getting-started-vs-integration-ai-configuration) for MCP servers and GitHub Copilot to enhance your development experience with Telerik UI for Blazor. + The Telerik UI for Blazor VS extension supports Visual Studio 2022 and 2019. @[template](/_contentTemplates/common/general-info.md#vsx-download) To access the Telerik Visual Studio extension, go to the **Extensions** > **Telerik** > **Telerik UI for Blazor** menu. @@ -35,4 +37,5 @@ To access the Telerik Visual Studio extension, go to the **Extensions** > **Tele * [Creating New Projects with Visual Studio](slug:getting-started-vs-integration-new-project) * [Converting Existing Projects with Visual Studio](slug:getting-started-vs-integration-convert-project) * [Downloading the Latest Telerik UI for Blazor Versions](slug:getting-started-vs-integration-latest-version) +* [AI Configuration in Visual Studio](slug:getting-started-vs-integration-ai-configuration) * [Telerik GitHub Copilot extension for Blazor](slug:ai-copilot-extension) From bcce16a4a97fca421497a06316aa5976f2ebf4eb Mon Sep 17 00:00:00 2001 From: Dimo Dimov <961014+dimodi@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:15:56 +0300 Subject: [PATCH 3/8] Polish AI generated content --- .../common/ai-coding-assistant.md | 30 ++++++ ai/copilot-extension.md | 4 +- .../vs-code-integration/ai-configuration.md | 92 ++++++------------ .../vs-code-integration/troubleshooting.md | 2 +- .../vs-integration/ai-configuration.md | 96 +++++-------------- 5 files changed, 84 insertions(+), 140 deletions(-) diff --git a/_contentTemplates/common/ai-coding-assistant.md b/_contentTemplates/common/ai-coding-assistant.md index 3384d2abe2..3c8c0aa86e 100644 --- a/_contentTemplates/common/ai-coding-assistant.md +++ b/_contentTemplates/common/ai-coding-assistant.md @@ -1,3 +1,33 @@ #number-of-requests A Telerik [Subscription license](https://www.telerik.com/purchase/faq/licensing-purchasing) is recommended in order to use the Telerik Blazor AI Coding Assistant without restrictions. Perpetual license holders and trial users can make a [limited number of requests per year](slug:ai-overview#number-of-requests). #end + +#vs-intro +provides automated configuration commands for the Telerik AI-powered development tools. These commands help you quickly set up the [Telerik MCP server](slug:ai-mcp-server) and [GitHub Copilot extension](slug:ai-copilot-extension) for enhanced developer productivity with Telerik UI for Blazor components. +#end + +#prerequisites +* Check the tool-specific prerequisites for the [Telerik Blazor MCP Server](slug:ai-mcp-server#prerequisites) and the [Telerik Blazor extension for GitHub Copilot](slug:ai-copilot-extension#prerequisites). +#end + +#verify-license-key +file to verify that the `TELERIK_LICENSE_PATH` value matches your actual [Telerik license file location](slug:installation-license-key). Alternatively, replace `TELERIK_LICENSE_PATH` with `TELERIK_LICENSE` and set your license key directly. Using `TELERIK_LICENSE_PATH` is recommended. +#end + +#command-github-app +command opens the [TelerikBlazor GitHub App installation page](https://github.com/apps/telerikblazor/installations/select_target) in your default browser. Then, follow the [installation instructions for the Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension#installation). +#end + +#copilot-instructions +command generates a `copilot-instructions.md` file in the `.github` folder under the solution. This file contains custom instructions that help GitHub Copilot provide better assistance when working with Telerik UI for Blazor components. The generated file includes the following default instructions: + +* Guidance to use the Telerik MCP Server whenever applicable +* Guidance to prioritize the usage of Telerik UI components +* Guidance to use best coding practices related to Telerik UI for Blazor +#end + +#see-also +* [Telerik AI Tooling Overview](slug:ai-overview) +* [Telerik Blazor MCP Server](slug:ai-mcp-server) +* [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) +#end diff --git a/ai/copilot-extension.md b/ai/copilot-extension.md index bc0edd0a71..0b541a00c4 100644 --- a/ai/copilot-extension.md +++ b/ai/copilot-extension.md @@ -26,7 +26,7 @@ To use the Telerik GitHub Copilot extension for Blazor, you need to have: To install the Telerik Blazor Copilot extension: -1. Go to the [TelerikBlazor GitHub App](https://github.com/apps/telerikblazor) page and click the **Install** button. +1. Go to the [TelerikBlazor GitHub App](https://github.com/apps/telerikblazor) page and click the **Install** button. If you have already installed the extension,you will see a **Configure** button instead. 1. You will see a list that includes your GitHub account and all GitHub organizations that you are part of. Normally, select your GitHub account. 1. Click the **Install & Authorize** button. This will authorize the GitHub Copilot extension to integrate with your GitHub account. 1. Enter your GitHub password. @@ -35,7 +35,7 @@ To install the Telerik Blazor Copilot extension: 1. Restart your [Copilot-enabled apps](https://docs.github.com/en/copilot/building-copilot-extensions/about-building-copilot-extensions#supported-clients-and-ides) (for example, Visual Studio and VS Code). 1. Start a new chat session in Copilot. -> You can also use the automated installation commands provided by the Telerik extensions for [Visual Studio](slug:getting-started-vs-integration-ai-configuration) and [VS Code](slug:getting-started-vs-code-integration-ai-configuration) to quickly open the installation page. +You can also start the installation from the Telerik UI for Blazor extensions for [Visual Studio](slug:getting-started-vs-integration-ai-configuration#install-telerik-blazor-copilot-extension) and [VS Code](slug:getting-started-vs-code-integration-ai-configuration). Then, continue the installation from step 2. ## Usage diff --git a/getting-started/vs-code-integration/ai-configuration.md b/getting-started/vs-code-integration/ai-configuration.md index d6b3cd1bae..78073323cd 100644 --- a/getting-started/vs-code-integration/ai-configuration.md +++ b/getting-started/vs-code-integration/ai-configuration.md @@ -1,85 +1,51 @@ --- -title: AI Configuration -page_title: Visual Studio Code AI Configuration -description: Learn how to configure AI-powered tools like MCP servers and GitHub Copilot for Telerik UI for Blazor development in Visual Studio Code. +title: AI Tools Configuration +page_title: AI Tools Configuration in VS Code +description: Learn how to configure Telerik AI-powered tools like the MCP server and GitHub Copilot extension for Telerik UI for Blazor development in Visual Studio Code (VS Code). slug: getting-started-vs-code-integration-ai-configuration -position: 8 +position: 4 --- -# AI Configuration in Visual Studio Code +# AI Tools Configuration in VS Code -The Telerik UI for Blazor Extension for Visual Studio Code provides automated configuration commands for AI-powered development tools. These commands help you quickly set up [MCP servers](slug:ai-mcp-server) and [GitHub Copilot](slug:ai-copilot-extension) for enhanced developer productivity with Telerik UI for Blazor components. +The Telerik UI for Blazor Extension for VS Code @[template](/_contentTemplates/common/ai-coding-assistant.md#vs-intro) -## Available Commands - -To access these commands, press `Ctrl`+`Shift`+`P` on Windows/Linux or `Cmd`+`Shift`+`P` on Mac to open the VS Code command palette, then search for the following Telerik commands: - -### Configure MCP Server - -The **Telerik UI for Blazor: Configure MCP Server** command automatically creates the necessary configuration file for the [Telerik Blazor MCP Server](slug:ai-mcp-server). This command provides two configuration scopes: - -* **Workspace Scope** - Creates an `mcp.json` file under the `.vscode` folder in your current workspace. This configuration applies only to the current workspace. -* **Global Scope** - Creates an `mcp.json` file under `C:\Users\[username]\AppData\Roaming\Code\User\` (Windows) or the equivalent user configuration directory on other platforms. This configuration applies to all VS Code workspaces. - -The generated `mcp.json` file includes the proper configuration for the Telerik Blazor MCP server with placeholder values for your Telerik license. You need to update the license path or key in the generated file. - ->caption Generated .vscode/mcp.json (Workspace Scope) - -```json -{ - "servers": { - "telerikBlazorAssistant": { - "type": "stdio", - "command": "npx", - "args": ["-y", "@progress/telerik-blazor-mcp@latest"], - "env": { - "TELERIK_LICENSE_PATH": "C:\\Users\\___\\AppData\\Roaming\\Telerik\\telerik-license.txt" - } - } - } -} -``` - -> Make sure to update the `TELERIK_LICENSE_PATH` value with your actual [Telerik license file location](slug:installation-license-key), or replace it with a `TELERIK_LICENSE` key containing your license key directly. +## Prerequisites -### Add GitHub Copilot Custom Instructions +To set up the Telerik UI for Blazor AI tools automatically: -The **Telerik UI for Blazor: Add GitHub Copilot Custom Instructions** command generates a `copilot-instructions.md` file under the `.github` folder in your current workspace. This file contains custom instructions that help GitHub Copilot provide better assistance when working with Telerik UI for Blazor components. +* [Install the Telerik UI for Blazor extension for VS Code](slug:getting-started-vs-code-integration-overview). +@[template](/_contentTemplates/common/ai-coding-assistant.md#prerequisites) -The generated file includes: -* Best practices for Razor component development -* Telerik UI for Blazor specific coding guidelines -* Component naming conventions -* Recommended code structure patterns +To access the automated commands: -### Install Telerik Blazor Copilot Extension +1. Open the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) at the center top of the VS Code interface. +1. Select **Show and Run Commands**. +1. Search for the following Telerik commands: + * [Configure MCP Server](#configure-mcp-server) + * [Install Telerik Blazor Copilot Extension](#install-telerik-blazor-copilot-extension) + * [Add GitHub Copilot Custom Instructions](#add-github-copilot-custom-instructions) -The **Telerik UI for Blazor: Install Telerik Blazor Copilot Extension** command opens the GitHub App installation page in your default browser: +## Configure MCP Server -`https://github.com/apps/telerikblazor/installations/select_target` +The **Telerik UI for Blazor: Configure MCP Server** command provides two configuration scopes to set up the [Telerik Blazor MCP Server](slug:ai-mcp-server#vs-code): -This allows you to quickly install the [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) for your GitHub account or organization. +* **Workspace**—Creates an `mcp.json` file in a `.vscode` folder in your current workspace. This configuration applies only to the current workspace. +* **Global**—Creates an `mcp.json` file in your operating system user folder (for example, `C:\Users\_____\AppData\Roaming\Code\User\.mcp.json` on Windows or `/Users/_____/Library/Application Support/Code/User/mcp.json` on macOS). This configuration applies to all VS Code workspaces. -## Prerequisites +> Make sure to open the generated `mcp.json` @[template](/_contentTemplates/common/ai-coding-assistant.md#verify-license-key) -Before using these AI configuration commands, ensure you have: +Finally, check for any [usage notes about the Telerik Blazor MCP Server](slug:ai-mcp-server#vs-code). -* A [Telerik user account](https://www.telerik.com/account/) -* An active [DevCraft or Telerik UI for Blazor license](https://www.telerik.com/purchase/blazor-ui) or [trial](https://www.telerik.com/blazor-ui) -* [Node.js](https://nodejs.org/en) 18 or newer (for MCP server functionality) -* The latest version of the Telerik UI for Blazor VS Code extension +## Add GitHub Copilot Custom Instructions -## Next Steps +The **Telerik UI for Blazor: Add GitHub Copilot Custom Instructions** @[template](/_contentTemplates/common/ai-coding-assistant.md#copilot-instructions) -After configuring the AI tools: +## Install Telerik Blazor Copilot Extension -1. **For MCP Server**: Follow the [complete MCP server setup guide](slug:ai-mcp-server) to understand usage and troubleshooting. -2. **For GitHub Copilot**: Learn how to use the [Telerik Blazor Copilot Extension](slug:ai-copilot-extension) effectively. -3. **For both**: Review the [AI tooling overview](slug:ai-overview) to understand the capabilities and limitations of these tools. +The **Telerik UI for Blazor: Install Telerik Blazor Copilot Extension** @[template](/_contentTemplates/common/ai-coding-assistant.md#command-github-app) ## See Also -* [Telerik Blazor MCP Server](slug:ai-mcp-server) -* [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) -* [AI Tooling Overview](slug:ai-overview) -* [VS Code Integration Overview](slug:getting-started-vs-code-integration-overview) \ No newline at end of file +@[template](/_contentTemplates/common/ai-coding-assistant.md#see-also) +* [VS Code Integration Overview](slug:getting-started-vs-code-integration-overview) diff --git a/getting-started/vs-code-integration/troubleshooting.md b/getting-started/vs-code-integration/troubleshooting.md index a9220296fc..51a424b0a8 100644 --- a/getting-started/vs-code-integration/troubleshooting.md +++ b/getting-started/vs-code-integration/troubleshooting.md @@ -3,7 +3,7 @@ title: Тroubleshooting page_title: Visual Studio Code Integration Overview description: Learn how to enhance your experience in developing web applications with Progress Telerik UI for Blazor. slug: getting-started-vs-code-integration-troubleshooting -position: 4 +position: 10 --- # Troubleshooting diff --git a/getting-started/vs-integration/ai-configuration.md b/getting-started/vs-integration/ai-configuration.md index b28ddb129e..3ab9114411 100644 --- a/getting-started/vs-integration/ai-configuration.md +++ b/getting-started/vs-integration/ai-configuration.md @@ -1,96 +1,44 @@ --- -title: AI Configuration -page_title: Visual Studio AI Configuration -description: Learn how to configure AI-powered tools like MCP servers and GitHub Copilot for Telerik UI for Blazor development in Visual Studio. +title: AI Tools Configuration +page_title: AI Tools Configuration in Visual Studio +description: Learn how to configure Telerik AI-powered tools like the MCP server and GitHub Copilot extension for Telerik UI for Blazor development in Visual Studio. slug: getting-started-vs-integration-ai-configuration position: 8 --- -# AI Configuration in Visual Studio +# AI Tools Configuration in Visual Studio -The Telerik UI for Blazor Extension for Visual Studio provides automated configuration commands for AI-powered development tools. These commands help you quickly set up [MCP servers](slug:ai-mcp-server) and [GitHub Copilot](slug:ai-copilot-extension) for enhanced developer productivity with Telerik UI for Blazor components. +The Telerik UI for Blazor Extension for Visual Studio @[template](/_contentTemplates/common/ai-coding-assistant.md#vs-intro) -## Available Commands - -To access these commands, go to **Extensions** > **Telerik** > **Telerik UI for Blazor** in the Visual Studio menu. - -### Configure MCP Server - -The Telerik UI for Blazor extension provides two MCP server configuration options: - -#### Configure MCP Server for Solution - -The **Configure MCP Server for Solution** command generates a `.mcp.json` file in the solution folder. This configuration applies only to the current solution and any projects within it. - -#### Configure MCP Server Globally - -The **Configure MCP Server Globally** command generates a `.mcp.json` file under the user profile directory (`%USERPROFILE%`, for example, `C:\Users\`). This configuration applies to all Visual Studio solutions and projects. - -Both commands create a properly configured `.mcp.json` file for the [Telerik Blazor MCP Server](slug:ai-mcp-server) with placeholder values for your Telerik license. - ->caption Generated .mcp.json - -```json -{ - "servers": { - "telerikBlazorAssistant": { - "type": "stdio", - "command": "npx", - "args": ["-y", "@progress/telerik-blazor-mcp@latest"], - "env": { - "TELERIK_LICENSE_PATH": "C:\\Users\\___\\AppData\\Roaming\\Telerik\\telerik-license.txt" - } - } - } -} -``` - -> Make sure to update the `TELERIK_LICENSE_PATH` value with your actual [Telerik license file location](slug:installation-license-key), or replace it with a `TELERIK_LICENSE` key containing your license key directly. - -### Add/Update Copilot Instructions - -The **Add/Update Copilot Instructions** command generates a `copilot-instructions.md` file in the `.github` folder under the solution. This file contains custom instructions that help GitHub Copilot provide better assistance when working with Telerik UI for Blazor components. - -The generated file includes: -* Best practices for Razor component development -* Telerik UI for Blazor specific coding guidelines -* Component naming conventions -* Recommended code structure patterns +## Prerequisites -### Install Telerik Blazor Copilot Extension +To set up the Telerik UI for Blazor AI tools automatically: -The **Install Telerik Blazor Copilot Extension** command opens the GitHub App installation page in your default browser: +* [Install the Telerik UI for Blazor extension for Visual Studio](slug:getting-started-vs-integration-overview). +@[template](/_contentTemplates/common/ai-coding-assistant.md#prerequisites) -`https://github.com/apps/telerikblazor/installations/select_target` +To access the automated commands, open **Extensions** > **Telerik** > **Telerik UI for Blazor** in the Visual Studio menu. -This allows you to quickly install the [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) for your GitHub account or organization. +## Configure Telerik MCP Server -## Prerequisites +The Telerik UI for Blazor extension provides two menu options to [set up the Telerik Blazor MCP server](slug:ai-mcp-server#visual-studio): -Before using these AI configuration commands, ensure you have: +* **Configure MCP Server for Solution**—this command creates an `.mcp.json` file in the solution folder. The configuration applies only to the projects in that application. +* **Configure MCP Server Globally**—this command creates an `.mcp.json` file in your operating system user folder (`%USERPROFILE%`, for example, `C:\Users\_____\.mcp.json`). This configuration applies to all Visual Studio solutions and projects. -* A [Telerik user account](https://www.telerik.com/account/) -* An active [DevCraft or Telerik UI for Blazor license](https://www.telerik.com/purchase/blazor-ui) or [trial](https://www.telerik.com/blazor-ui) -* [Node.js](https://nodejs.org/en) 18 or newer (for MCP server functionality) -* Visual Studio 2022 or 2019 with the latest Telerik UI for Blazor extension +> Make sure to open the generated `.mcp.json` @[template](/_contentTemplates/common/ai-coding-assistant.md#verify-license-key) -## Important Notes for Visual Studio +Finally, check for any [usage notes about the Telerik Blazor MCP Server](slug:ai-mcp-server#visual-studio). -* Early Visual Studio 17.14 versions require the Copilot Chat window to be open and active when you open a solution for the MCP server to work properly. -* After configuring the MCP server, make sure that the `telerikBlazorAssistant` tool is [enabled (checked) in the Copilot Chat window's tool selection dropdown](https://learn.microsoft.com/en-us/visualstudio/ide/mcp-servers?view=vs-2022#configuration-example-with-github-mcp-server). -* The Telerik MCP server may get disabled and you may see "🔧10/11" in the selected tools dropdown when starting a new chat, changing threads, or relaunching Visual Studio. This is a known issue that is being investigated. +## Add/Update Copilot Instructions -## Next Steps +The **Add/Update Copilot Instructions** @[template](/_contentTemplates/common/ai-coding-assistant.md#copilot-instructions) -After configuring the AI tools: +## Install Telerik Blazor Copilot Extension -1. **For MCP Server**: Follow the [complete MCP server setup guide](slug:ai-mcp-server) to understand usage and troubleshooting. -2. **For GitHub Copilot**: Learn how to use the [Telerik Blazor Copilot Extension](slug:ai-copilot-extension) effectively. -3. **For both**: Review the [AI tooling overview](slug:ai-overview) to understand the capabilities and limitations of these tools. +The **Install Telerik Blazor Copilot Extension** @[template](/_contentTemplates/common/ai-coding-assistant.md#command-github-app) ## See Also -* [Telerik Blazor MCP Server](slug:ai-mcp-server) -* [Telerik Blazor GitHub Copilot Extension](slug:ai-copilot-extension) -* [AI Tooling Overview](slug:ai-overview) -* [Visual Studio Integration Overview](slug:getting-started-vs-integration-overview) \ No newline at end of file +@[template](/_contentTemplates/common/ai-coding-assistant.md#see-also) +* [Visual Studio Integration Overview](slug:getting-started-vs-integration-overview) From 50b45256cc3ca1f258ad79a8edcf5b234e47da7c Mon Sep 17 00:00:00 2001 From: Dimo Dimov <961014+dimodi@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:33:02 +0300 Subject: [PATCH 4/8] continued --- ai/mcp-server.md | 23 ++++++++----------- .../vs-code-integration/ai-configuration.md | 2 +- .../vs-integration/ai-configuration.md | 2 +- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/ai/mcp-server.md b/ai/mcp-server.md index abc6a744aa..97be23af25 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -24,37 +24,34 @@ To use the Telerik Blazor MCP server, you need: ## Installation -You can install the Telerik Blazor MCP server manually or use automated configuration commands provided by the Telerik extensions for [Visual Studio](slug:getting-started-vs-integration-ai-configuration) and [VS Code](slug:getting-started-vs-code-integration-ai-configuration). +There are two ways to install the Telerik Blazor MCP server: -### Automated Installation +* Use a manual approach, which is described below. +* Use an automated process provided by the Telerik extensions for [Visual Studio](slug:getting-started-vs-integration-ai-configuration) and [VS Code](slug:getting-started-vs-code-integration-ai-configuration). -The easiest way to configure the Telerik Blazor MCP server is through the automated commands in the Telerik extensions: - -* **Visual Studio**: Use the "Configure MCP Server for Solution" or "Configure MCP Server Globally" commands. For details, see [AI Configuration in Visual Studio](slug:getting-started-vs-integration-ai-configuration). -* **VS Code**: Use the "Telerik UI for Blazor: Configure MCP Server" command. For details, see [AI Configuration in VS Code](slug:getting-started-vs-code-integration-ai-configuration). - -### Manual Installation - -For manual installation or when using other MCP clients, use the documentation of your AI-powered MCP client to add the Telerik MCP server to a specific workspace or globally. The sections below provide installation tips and examples for some popular MCP clients like [Visual Studio](#visual-studio), [VS Code](#vs-code), and [Cursor](#cursor). The generic settings of the Telerik Blazor MCP server are: +To install the Telerik MCP server manually, use the documentation of your AI-powered MCP client. You can enable the MCP server for specific workspaces or globally. The sections below provide installation tips and examples for some popular MCP clients like [Visual Studio](#visual-studio), [VS Code](#vs-code), and [Cursor](#cursor). The generic settings of the Telerik Blazor MCP server are: * npm package name: `@progress/telerik-blazor-mcp` * Type: `stdio` (standard input/output transport) * Command: `npx` * Arguments: `-y` * Server name: `telerikBlazorAssistant` (depends on your preferences) +* Your [Telerik license key](#license-key) as an `env` parameter > * Do not use hyphens (`-`) or underscores (`_`) in the MCP server name in the MCP `.json` file, due to potential compatibility issues with some MCP clients such as Visual Studio or Windsurf. > * Some MCP clients expect the MCP servers to be listed under a `servers` JSON key, while others expect `mcpServers`. > * Some MCP clients expect an `mcp.json` file, while others like Visual Studio 2022 expect an `.mcp.json` file. -You also need to add your [Telerik licence key](slug:installation-license-key) as an `env` parameter in the `mcp.json` file. There are two options: +### License Key + +To use the Telerik MCP Server, your configuration must provide your [Telerik licence key](slug:installation-license-key) as an `env` parameter in the MCP `.json` file. There are two options: * Use a `TELERIK_LICENSE_PATH` argument and point to your Telerik license file location. This approach is recommended, unless you are sharing your VS Code settings across different computers with different operating systems or user names. * Use a `TELERIK_LICENSE` argument and paste your Telerik license key. Make sure to [update the license key](slug:installation-license-key#license-key-updates) when necessary. ### Visual Studio -For detailed instructions, refer to [Use MCP servers in Visual Studio](https://learn.microsoft.com/en-us/visualstudio/ide/mcp-servers). +For detailed instructions, refer to [Use MCP servers in Visual Studio](https://learn.microsoft.com/en-us/visualstudio/ide/mcp-servers). You can also install the Telerik Blazor MCP server through the [Telerik UI for Blazor Visual Studio extension](slug:getting-started-vs-integration-ai-configuration). > Early Visual Studio 17.14 versions require the Copilot Chat window to be open and active when you open a solution. Otherwise the Telerik MCP server is not used. @@ -83,7 +80,7 @@ To enable global automatic discovery of the Telerik MCP Server in Visual Studio, ### VS Code -For detailed instructions, refer to [Use MCP servers in VS Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers). +For detailed instructions, refer to [Use MCP servers in VS Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers). You can also install the Telerik Blazor MCP server through the [Telerik UI for Blazor VS Code extension](slug:getting-started-vs-code-integration-ai-configuration). > This section applies to VS Code 1.102.1 and newer versions. diff --git a/getting-started/vs-code-integration/ai-configuration.md b/getting-started/vs-code-integration/ai-configuration.md index 78073323cd..a8dfcbcb2e 100644 --- a/getting-started/vs-code-integration/ai-configuration.md +++ b/getting-started/vs-code-integration/ai-configuration.md @@ -31,7 +31,7 @@ To access the automated commands: The **Telerik UI for Blazor: Configure MCP Server** command provides two configuration scopes to set up the [Telerik Blazor MCP Server](slug:ai-mcp-server#vs-code): * **Workspace**—Creates an `mcp.json` file in a `.vscode` folder in your current workspace. This configuration applies only to the current workspace. -* **Global**—Creates an `mcp.json` file in your operating system user folder (for example, `C:\Users\_____\AppData\Roaming\Code\User\.mcp.json` on Windows or `/Users/_____/Library/Application Support/Code/User/mcp.json` on macOS). This configuration applies to all VS Code workspaces. +* **Global**—Creates an `mcp.json` file in your operating system user folder (for example, `C:\Users\___\AppData\Roaming\Code\User\.mcp.json` on Windows or `/Users/___/Library/Application Support/Code/User/mcp.json` on macOS). This configuration applies to all VS Code workspaces. > Make sure to open the generated `mcp.json` @[template](/_contentTemplates/common/ai-coding-assistant.md#verify-license-key) diff --git a/getting-started/vs-integration/ai-configuration.md b/getting-started/vs-integration/ai-configuration.md index 3ab9114411..bc6cc6f752 100644 --- a/getting-started/vs-integration/ai-configuration.md +++ b/getting-started/vs-integration/ai-configuration.md @@ -24,7 +24,7 @@ To access the automated commands, open **Extensions** > **Telerik** > **Telerik The Telerik UI for Blazor extension provides two menu options to [set up the Telerik Blazor MCP server](slug:ai-mcp-server#visual-studio): * **Configure MCP Server for Solution**—this command creates an `.mcp.json` file in the solution folder. The configuration applies only to the projects in that application. -* **Configure MCP Server Globally**—this command creates an `.mcp.json` file in your operating system user folder (`%USERPROFILE%`, for example, `C:\Users\_____\.mcp.json`). This configuration applies to all Visual Studio solutions and projects. +* **Configure MCP Server Globally**—this command creates an `.mcp.json` file in your operating system user folder (`%USERPROFILE%`, for example, `C:\Users\___\.mcp.json`). This configuration applies to all Visual Studio solutions and projects. > Make sure to open the generated `.mcp.json` @[template](/_contentTemplates/common/ai-coding-assistant.md#verify-license-key) From 6e3fb760c5da4588bc008496f594cab4b9ee4742 Mon Sep 17 00:00:00 2001 From: Dimo Dimov <961014+dimodi@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:33:35 +0300 Subject: [PATCH 5/8] Update .spelling --- .spelling | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.spelling b/.spelling index b25f0a7e5b..fea808d43e 100644 --- a/.spelling +++ b/.spelling @@ -6915,7 +6915,8 @@ k-rpanel-toggle - api/javascript/ui/scheduler.md workweek - third-party/using-kendo-with-data-access.md -v3MCP +v3 +MCP mcp mcp.json .mcp.json From 97fc342315a4a0ceef0141fcf61ce8567c16ff7b Mon Sep 17 00:00:00 2001 From: Dimo Dimov <961014+dimodi@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:35:17 +0300 Subject: [PATCH 6/8] Update ai/copilot-extension.md --- ai/copilot-extension.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ai/copilot-extension.md b/ai/copilot-extension.md index 0b541a00c4..1eda87f211 100644 --- a/ai/copilot-extension.md +++ b/ai/copilot-extension.md @@ -26,7 +26,7 @@ To use the Telerik GitHub Copilot extension for Blazor, you need to have: To install the Telerik Blazor Copilot extension: -1. Go to the [TelerikBlazor GitHub App](https://github.com/apps/telerikblazor) page and click the **Install** button. If you have already installed the extension,you will see a **Configure** button instead. +1. Go to the [TelerikBlazor GitHub App](https://github.com/apps/telerikblazor) page and click the **Install** button. If you have already installed the extension, you will see a **Configure** button instead. 1. You will see a list that includes your GitHub account and all GitHub organizations that you are part of. Normally, select your GitHub account. 1. Click the **Install & Authorize** button. This will authorize the GitHub Copilot extension to integrate with your GitHub account. 1. Enter your GitHub password. From c47d52134fed0b43688612ca36824dbb4e98dda6 Mon Sep 17 00:00:00 2001 From: Dimo Dimov <961014+dimodi@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:36:38 +0300 Subject: [PATCH 7/8] Update getting-started/vs-code-integration/introduction.md --- getting-started/vs-code-integration/introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/vs-code-integration/introduction.md b/getting-started/vs-code-integration/introduction.md index faf3083f9f..a0b98bcaa1 100644 --- a/getting-started/vs-code-integration/introduction.md +++ b/getting-started/vs-code-integration/introduction.md @@ -20,7 +20,7 @@ The extension for Visual Studio Code provides the following advantages: * It allows you to [add the Telerik Components to an existing project](slug:getting-started-vs-code-integration-convert-project ) with a few clicks. -* It provides [automated AI configuration](slug:getting-started-vs-code-integration-ai-configuration) for MCP servers and GitHub Copilot to enhance your development experience with Telerik UI for Blazor. +* It provides [automated AI tools configuration](slug:getting-started-vs-code-integration-ai-configuration) for MCP servers and GitHub Copilot to enhance your development experience with Telerik UI for Blazor. ## Get the Extension From 1cf0ff02397122e746de97571a72074c912e68d3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 5 Aug 2025 08:40:54 +0000 Subject: [PATCH 8/8] Fix terminology: change 'extension' to 'GitHub App' in installation instructions Co-authored-by: dimodi <961014+dimodi@users.noreply.github.com> --- ai/copilot-extension.md | 2 +- package-lock.json | 1301 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 1302 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/ai/copilot-extension.md b/ai/copilot-extension.md index 1eda87f211..41a8f40540 100644 --- a/ai/copilot-extension.md +++ b/ai/copilot-extension.md @@ -26,7 +26,7 @@ To use the Telerik GitHub Copilot extension for Blazor, you need to have: To install the Telerik Blazor Copilot extension: -1. Go to the [TelerikBlazor GitHub App](https://github.com/apps/telerikblazor) page and click the **Install** button. If you have already installed the extension, you will see a **Configure** button instead. +1. Go to the [TelerikBlazor GitHub App](https://github.com/apps/telerikblazor) page and click the **Install** button. If you have already installed the GitHub App, you will see a **Configure** button instead. 1. You will see a list that includes your GitHub account and all GitHub organizations that you are part of. Normally, select your GitHub account. 1. Click the **Install & Authorize** button. This will authorize the GitHub Copilot extension to integrate with your GitHub account. 1. Enter your GitHub password. diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000..bbcba90251 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1301 @@ +{ + "name": "docs", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docs", + "version": "1.0.0", + "license": "Apache-2.0", + "devDependencies": { + "markdown-spellcheck": "0.11.0" + } + }, + "node_modules/ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true, + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true, + "license": "ISC" + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-thenable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/create-thenable/-/create-thenable-1.0.3.tgz", + "integrity": "sha512-R1yGGApyq32WQXPK97z5u8VVfoPWLI7DoJeN9xaexEUk5FZrORNM2YxCuOBsp0cwG5tj9jRz4r0mCDcnPRftRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "object.omit": "~2.0.0", + "unique-concat": "~0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", + "integrity": "sha512-0XYlP43jzxMgJjugDJ85Z0UDPnowkUbfFztNvsSGC9sJVIk97MZbGEb9WAhIVH0UgNxoLj/9ZQgB4CHJyz2GGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "spawn-sync": "^1.0.15", + "tmp": "^0.0.29" + } + }, + "node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/formatio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", + "integrity": "sha512-cPh7is6k3d8tIUh+pnXXuAbD/uhSXGgqLPw0UrYpv5lfdJ+MMMSjx40JNpqP7Top9Nt25YomWEiRmkHbOvkCaA==", + "deprecated": "This package is unmaintained. Use @sinonjs/formatio instead", + "dev": true, + "peer": true, + "dependencies": { + "samsam": "~1.1" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "peer": true, + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha512-JPDtMSr0bt25W64q792rvlrSwIaZwqUAhqdYKSr57Wh/xBcQ5JDWLM85ndn+Q1WdBQXLb9YGCl0QN/T0HpqU0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hunspell-spellchecker": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hunspell-spellchecker/-/hunspell-spellchecker-1.0.2.tgz", + "integrity": "sha512-4DwmFAvlz+ChsqLDsZT2cwBsYNXh+oWboemxXtafwKIyItq52xfR4e4kr017sLAoPaSYVofSOvPUfmOAhXyYvw==", + "dev": true, + "license": "Apache 2", + "bin": { + "hunspell-tojson": "bin/hunspell-tojson.js" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", + "integrity": "sha512-diSnpgfv/Ozq6QKuV2mUcwZ+D24b03J3W6EVxzvtkCWJTPrH2gKLsqgSW0vzRMZZFhFdhnvzka0RUJxIm7AOxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^1.1.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "external-editor": "^1.1.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "mute-stream": "0.0.6", + "pinkie-promise": "^2.0.0", + "run-async": "^2.2.0", + "rx": "^4.1.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lolex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "integrity": "sha512-YYp8cqz7/8eruZ15L1mzcPkvLYxipfdsWIDESvNdNmQP9o7TsDitRhNuV2xb7aFu2ofZngao1jiVrVZ842x4BQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/markdown-spellcheck": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/markdown-spellcheck/-/markdown-spellcheck-0.11.0.tgz", + "integrity": "sha512-Tr06t39Aal5rNUP2e5+WT5NkyPL/0WU+wAeBfZ91CqOIiVJLhfe2xAYlyTjdjbE0O6MeGQSCQ6vm6QHXuXxBjg==", + "dev": true, + "license": "ISC", + "dependencies": { + "async": "^1.4.2", + "chalk": "^1.1.2", + "commander": "^2.8.1", + "globby": "^4.0.0", + "hunspell-spellchecker": "^1.0.2", + "inquirer": "^1.0.0", + "marked": "^0.3.5", + "sinon-as-promised": "^4.0.0" + }, + "bin": { + "mdspell": "bin/mdspell" + }, + "engines": { + "iojs": ">= 1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mute-stream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", + "integrity": "sha512-m0kBTDLF/0lgzCsPVmJSKM5xkLNX7ZAB0Q+n2DP37JMIRPVC2R4c3BdO6x++bXFKftbhvSfKgwxAexME+BRDRw==", + "dev": true, + "license": "ISC" + }, + "node_modules/native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", + "dev": true, + "license": "MIT", + "dependencies": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/samsam": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "integrity": "sha512-iVL7LibpM3tl4rQPweOXXrmjGegxx27flTOjQEZD3PXe4oZNFzuz6Si4mgleK/JWU/hyCvtV01RUovjvBEpDmw==", + "deprecated": "This package has been deprecated in favour of @sinonjs/samsam", + "dev": true, + "peer": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sinon": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", + "integrity": "sha512-M9rtyQxKfcTTdB64rpPSRaTzOvunb+HHPv/3PxvNPrEDnFSny95Pi6/3VoD471ody0ay0IHyzT3BErfcLXj6NA==", + "deprecated": "16.1.1", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "util": ">=0.10.3 <1" + }, + "engines": { + "node": ">=0.1.103" + } + }, + "node_modules/sinon-as-promised": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/sinon-as-promised/-/sinon-as-promised-4.0.3.tgz", + "integrity": "sha512-9vApOPQydJD7ZFRGZGD4+6Am5NU3QqlFdpbbZbnvdOoZte8cp4dOb0ej8CHfMlyfJtbweXOnmj/TimBkfcB/GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "create-thenable": "~1.0.0", + "native-promise-only": "~0.8.1" + }, + "peerDependencies": { + "sinon": "1" + } + }, + "node_modules/spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^1.4.7", + "os-shim": "^0.1.2" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", + "integrity": "sha512-89PTqMWGDva+GqClOqBV9s3SMh7MA3Mq0pJUdAoHuF65YoE7O0LermaZkVfT5/Ngfo18H4eYiyG7zKOtnEbxsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unique-concat": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/unique-concat/-/unique-concat-0.2.2.tgz", + "integrity": "sha512-nFT3frbsvTa9rrc71FJApPqXF8oIhVHbX3IWgObQi1mF7WrW48Ys70daL7o4evZUtmUf6Qn6WK0LbHhyO0hpXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + } + } +}