diff --git a/.github/workflows/ci-sample-validation.yml b/.github/workflows/ci-sample-validation.yml index 57c52dce6..a96eb6c5c 100644 --- a/.github/workflows/ci-sample-validation.yml +++ b/.github/workflows/ci-sample-validation.yml @@ -49,15 +49,21 @@ jobs: exceptions=("incoming-webhook-notification" "hello-world-office-addin") samples=`jq -r ".samples | .[] | select(has(\"downloadUrlInfo\") | not) | .id" .config/samples-config-v3.json` validationFailed="validation failed" + validationWarning="warning" validationResult=true while IFS= read -r line; do if [[ ! ${exceptions[@]} =~ $line ]] then result=`node ./validation-tool/validator.cjs -p $line` if grep -q "$validationFailed" <<< "$result"; then - printf "\nSample '$line' validation failed.\n" + printf "\n❌ Sample '$line' validation failed.\n" echo "$result" validationResult=false + elif grep -q "$validationWarning" <<< "$result"; then + printf "\n⚠️ Sample '$line' validation passed with warnings.\n" + echo "$result" + else + printf "\n✅ Sample '$line' validation passed.\n" fi fi done <<< "$samples" @@ -80,6 +86,7 @@ jobs: run: | # This script runs the validation tool against changed samples in the pull request. # External samples are excluded from the validation. + # Deleted folders are skipped (they no longer exist). exceptions=(".config" ".devcontainer" "assets" "templates" "validation-tool" "basic-blazor-tab-app" "incoming-webhook-notification" "stocks-update-notification-bot-dotnet" "whos-next-meeting-app") samples=`jq -r ".[]" <<< '${{ steps.get_changed_folders.outputs.changed }}'` validationFailed="validation failed" @@ -87,6 +94,11 @@ jobs: while IFS= read -r line; do if [[ ! ${exceptions[@]} =~ $line ]] then + # Skip deleted folders - they no longer exist so cannot be validated + if [ ! -d "$line" ]; then + printf "\nSkipping deleted folder: '$line'\n" + continue + fi result=`node ./validation-tool/validator.cjs -p $line` if grep -q "$validationFailed" <<< "$result"; then printf "\nSample '$line' validation failed.\n" diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 8cfbb8a2b..917662b5c 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -32,7 +32,18 @@ jobs: strategy: fail-fast: false matrix: - language: ["csharp", "javascript"] + include: + # C# uses 'none' build mode to skip building .atkproj files (Teams Toolkit projects) + # which require the Teams Toolkit extension that isn't available in CI environments. + # The 'none' mode creates a CodeQL database directly from source without requiring a build. + - language: csharp + build-mode: none + # JavaScript/TypeScript only supports 'none' build mode (interpreted language) + - language: javascript + build-mode: none + # Python only supports 'none' build mode (interpreted language) + - language: python + build-mode: none # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Learn more about CodeQL language support at https://git.io/codeql-language-support @@ -45,27 +56,16 @@ jobs: uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} config-file: .github/codeql/codeql-config.yml # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release + # No autobuild needed when using 'none' build mode + # The 'none' mode analyzes source code directly without compilation, + # which avoids issues with .atkproj files that require Teams Toolkit SDK - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 diff --git a/ProxyAgent-CSharp/M365Agent/m365agents.yml b/ProxyAgent-CSharp/M365Agent/m365agents.yml index 4906eca18..62c1442f4 100644 --- a/ProxyAgent-CSharp/M365Agent/m365agents.yml +++ b/ProxyAgent-CSharp/M365Agent/m365agents.yml @@ -7,6 +7,9 @@ version: v1.8 +additionalMetadata: + sampleTag: TeamsFx-Samples:ProxyAgent-CSharp + environmentFolderPath: ./env # Triggered when 'atk provision' is executed @@ -96,4 +99,3 @@ deploy: # or add it to your environment variable file. resourceId: ${{WEBAPPID}} workingDirectory: ../AzureAgentToM365ATK -projectId: a5ce45d0-c7f9-4964-828d-957cfa33b952 diff --git a/ProxyAgent-CSharp/images/screen009.jpg b/ProxyAgent-CSharp/images/screen009.jpg index c1b5ed614..ef04e5e52 100644 Binary files a/ProxyAgent-CSharp/images/screen009.jpg and b/ProxyAgent-CSharp/images/screen009.jpg differ diff --git a/coffee-agent/assets/coffee-agent-sample-response.png b/coffee-agent/assets/coffee-agent-sample-response.png index 53e371abd..eb7ac56d2 100644 Binary files a/coffee-agent/assets/coffee-agent-sample-response.png and b/coffee-agent/assets/coffee-agent-sample-response.png differ diff --git a/collaborator-agent/.gitignore b/collaborator-agent/.gitignore deleted file mode 100644 index 6b468b8a6..000000000 --- a/collaborator-agent/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -# Ignore environment files -.env -.env.* -env/ - -# Ignore node_modules -node_modules/ - -# Ignore database files -src/storage/conversations.db - -.localConfigs -.localConfigs.playground -dist diff --git a/collaborator-agent/.vscode/launch.json b/collaborator-agent/.vscode/launch.json deleted file mode 100644 index 2999c0d42..000000000 --- a/collaborator-agent/.vscode/launch.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Remote (Edge)", - "type": "msedge", - "request": "launch", - "url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", - "presentation": { - "group": "remote", - "order": 1 - }, - "internalConsoleOptions": "neverOpen" - }, - { - "name": "Launch Remote (Chrome)", - "type": "chrome", - "request": "launch", - "url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", - "presentation": { - "group": "remote", - "order": 2 - }, - "internalConsoleOptions": "neverOpen" - }, - { - "name": "Launch App (Edge)", - "type": "msedge", - "request": "launch", - "url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", - "cascadeTerminateToConfigurations": ["Attach to Local Service"], - "presentation": { - "group": "all", - "hidden": true - }, - "internalConsoleOptions": "neverOpen" - }, - { - "name": "Launch App (Chrome)", - "type": "chrome", - "request": "launch", - "url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", - "cascadeTerminateToConfigurations": ["Attach to Local Service"], - "presentation": { - "group": "all", - "hidden": true - }, - "internalConsoleOptions": "neverOpen" - }, - { - "name": "Attach to Local Service", - "type": "node", - "request": "attach", - "port": 9239, - "restart": true, - "presentation": { - "group": "all", - "hidden": true - }, - "internalConsoleOptions": "neverOpen" - } - ], - "compounds": [ - { - "name": "Debug (Edge)", - "configurations": ["Launch App (Edge)", "Attach to Local Service"], - "preLaunchTask": "Start App Locally", - "presentation": { - "group": "all", - "order": 1 - }, - "stopAll": true - }, - { - "name": "Debug (Chrome)", - "configurations": ["Launch App (Chrome)", "Attach to Local Service"], - "preLaunchTask": "Start App Locally", - "presentation": { - "group": "all", - "order": 2 - }, - "stopAll": true - }, - { - "name": "Debug in Microsoft 365 Agents Playground", - "configurations": ["Attach to Local Service"], - "preLaunchTask": "Start App in Microsoft 365 Agents Playground", - "presentation": { - "group": "local", - "order": 1 - }, - "stopAll": true - } - ] -} diff --git a/collaborator-agent/.vscode/tasks.json b/collaborator-agent/.vscode/tasks.json deleted file mode 100644 index 4b44feec7..000000000 --- a/collaborator-agent/.vscode/tasks.json +++ /dev/null @@ -1,204 +0,0 @@ -// This file is automatically generated by M365 Agents Toolkit. -// The teamsfx tasks defined in this file require M365 Agents Toolkit version >= 5.0.0. -// See https://aka.ms/teamsfx-tasks for details on how to customize each task. -{ - "version": "2.0.0", - "tasks": [ - { - "label": "Start App Locally", - "dependsOn": [ - "Validate prerequisites", - "Start local tunnel", - "Provision", - "Deploy", - "Start application" - ], - "dependsOrder": "sequence" - }, - { - // Check all required prerequisites. - // See https://aka.ms/teamsfx-tasks/check-prerequisites to know the details and how to customize the args. - "label": "Validate prerequisites", - "type": "teamsfx", - "command": "debug-check-prerequisites", - "args": { - "prerequisites": [ - "nodejs", // Validate if Node.js is installed. - "m365Account", // Sign-in prompt for Microsoft 365 account, then validate if the account enables the sideloading permission. - "portOccupancy" // Validate available ports to ensure those debug ones are not occupied. - ], - "portOccupancy": [ - 3978, // app service port - 9239 // app inspector port for Node.js debugger - ] - } - }, - { - // Start the local tunnel service to forward public URL to local port and inspect traffic. - // See https://aka.ms/teamsfx-tasks/local-tunnel for the detailed args definitions. - "label": "Start local tunnel", - "type": "teamsfx", - "command": "debug-start-local-tunnel", - "args": { - "type": "dev-tunnel", - "ports": [ - { - "portNumber": 3978, - "protocol": "http", - "access": "public", - "writeToEnvironmentFile": { - "endpoint": "BOT_ENDPOINT", // output tunnel endpoint as BOT_ENDPOINT - "domain": "BOT_DOMAIN" // output tunnel domain as BOT_DOMAIN - } - } - ], - "env": "local" - }, - "isBackground": true, - "problemMatcher": "$teamsfx-local-tunnel-watch" - }, - { - // Create the debug resources. - // See https://aka.ms/teamsfx-tasks/provision to know the details and how to customize the args. - "label": "Provision", - "type": "teamsfx", - "command": "provision", - "args": { - "env": "local" - } - }, - { - // Build project. - // See https://aka.ms/teamsfx-tasks/deploy to know the details and how to customize the args. - "label": "Deploy", - "type": "teamsfx", - "command": "deploy", - "args": { - "env": "local" - } - }, - { - "label": "Start application", - "type": "shell", - "command": "npm run dev:teamsfx", - "isBackground": true, - "options": { - "cwd": "${workspaceFolder}" - }, - "problemMatcher": { - "pattern": [ - { - "regexp": "^.*$", - "file": 0, - "location": 1, - "message": 2 - } - ], - "background": { - "activeOnStart": true, - "beginsPattern": "[nodemon] starting", - "endsPattern": "listening|[nodemon] app crashed" - } - } - }, - { - "label": "Start App in Microsoft 365 Agents Playground", - "dependsOn": [ - "Validate prerequisites (Microsoft 365 Agents Playground)", - "Deploy (Microsoft 365 Agents Playground)", - "Start application (Microsoft 365 Agents Playground)", - "Start Microsoft 365 Agents Playground" - ], - "dependsOrder": "sequence" - }, - { - // Check all required prerequisites. - // See https://aka.ms/teamsfx-tasks/check-prerequisites to know the details and how to customize the args. - "label": "Validate prerequisites (Microsoft 365 Agents Playground)", - "type": "teamsfx", - "command": "debug-check-prerequisites", - "args": { - "prerequisites": [ - "nodejs", // Validate if Node.js is installed. - "portOccupancy" // Validate available ports to ensure those debug ones are not occupied. - ], - "portOccupancy": [ - 3978, // app service port - 9239, // app inspector port for Node.js debugger - 56150 // Microsoft 365 Agents Playground port - ] - } - }, - { - // Build project. - // See https://aka.ms/teamsfx-tasks/deploy to know the details and how to customize the args. - "label": "Deploy (Microsoft 365 Agents Playground)", - "type": "teamsfx", - "command": "deploy", - "args": { - "env": "playground" - } - }, - { - "label": "Start application (Microsoft 365 Agents Playground)", - "type": "shell", - "command": "npm run dev:teamsfx:playground", - "isBackground": true, - "options": { - "cwd": "${workspaceFolder}" - }, - "problemMatcher": { - "pattern": [ - { - "regexp": "^.*$", - "file": 0, - "location": 1, - "message": 2 - } - ], - "background": { - "activeOnStart": true, - "beginsPattern": "[nodemon] starting", - "endsPattern": "listening|[nodemon] app crashed" - } - } - }, - { - "label": "Start Microsoft 365 Agents Playground", - "type": "shell", - "command": "npm run dev:teamsfx:launch-playground", - "isBackground": true, - "options": { - "env": { - "PATH": "${workspaceFolder}/devTools/teamsapptester/node_modules/.bin:${env:PATH}" - } - }, - "windows": { - "options": { - "env": { - "PATH": "${workspaceFolder}/devTools/teamsapptester/node_modules/.bin;${env:PATH}" - } - } - }, - "problemMatcher": { - "pattern": [ - { - "regexp": "^.*$", - "file": 0, - "location": 1, - "message": 2 - } - ], - "background": { - "activeOnStart": true, - "beginsPattern": ".*", - "endsPattern": "Listening on" - } - }, - "presentation": { - "panel": "dedicated", - "reveal": "silent" - } - } - ] -} diff --git a/collaborator-agent/.webappignore b/collaborator-agent/.webappignore deleted file mode 100644 index 2a59f5879..000000000 --- a/collaborator-agent/.webappignore +++ /dev/null @@ -1,28 +0,0 @@ -.webappignore -.fx -.deployment -.localConfigs.playground -.localConfigs -.notification.localstore.json -.notification.playgroundstore.json -.vscode -*.js.map -*.ts.map -*.ts -.git* -.tsbuildinfo -CHANGELOG.md -readme.md -local.settings.json -test -tsconfig.json -.DS_Store -m365agents.yml -m365agents.*.yml -/env/ -/node_modules/.bin -/node_modules/ts-node -/node_modules/typescript -/appPackage/ -/infra/ -/devTools/ \ No newline at end of file diff --git a/collaborator-agent/README.md b/collaborator-agent/README.md deleted file mode 100644 index f3a476446..000000000 --- a/collaborator-agent/README.md +++ /dev/null @@ -1,183 +0,0 @@ -# Getting Started with Collaborator Agent - -This intelligent collaboration assistant is built with the [Microsoft Teams SDK](https://aka.ms/teamsai-v2), and showcases how to create a sophisticated bot that can analyze conversations, manage tasks, and search through chat history using advanced AI capabilities and natural language processing. - -The Collaborator Agent enhances team productivity by providing intelligent conversation analysis, automatic task management, and powerful search capabilities. It can listen to all messages in a group chat (even without being @mentioned) using RSC (Resource Specific Control) permissions, making it a seamless addition to any team workflow. - -**[Watch the Collaborator Agent Demo](https://www.youtube.com/watch?v=RuIfcNcBB_8)** - -## This sample illustrates -- Use Microsoft 365 Agents Toolkit to create an AI-powered collaboration assistant -- Implement RSC (Resource Specific Control) permissions for group chat monitoring -- Use Microsoft Teams SDK for advanced conversation analysis and task management -- Build multi-capability architecture with specialized AI functions -- Create natural language search and time-based query processing -- Implement SQLite database integration for conversation history storage - -## Key Features - -- 📋 **Intelligent Summarization** - Analyze conversations and provide structured summaries with proper participant attribution and topic identification -- ✅ **Action Items** - Automatically identify and create action items from team discussions with smart assignment -- 🔍 **Conversation Search** - Search through chat history using natural language queries with time-based filtering and deep linking to original messages - -## Adding Custom Capabilities - -Adding your own capabilities only requires a few steps: - -1. Copy the template folder under capabilities [template](src\capabilities\template\template.ts) -2. Customize your capability to do what you want (helpful to look at existing capabilities) -3. Make sure to create a CapabilityDefinition at the bottom of your main file -4. Register your capability by importing the CapabilityDefinition and adding to the definition list in [registry](src\capabilities\registry.ts) -5. The manager will automatically be instantiated with the capability you defined! - -## Agent Architecture - -```mermaid -flowchart TD - A[Manager] - - A --> B(Summarizer) - A --> C(Action Items Creation) - A --> D(Search) - A --> E(Add your own capabilities!) -``` - -## Flow of the Agent - -```mermaid -flowchart TD - A{Incoming User Message} - - A -->|Groupchat & Bot mentioned OR 1:1| M[Manager receives message] - A -->|Groupchat & Bot not mentioned| C[User message added to DB] - - M --> Q{Requires capability?} - Q -->|Yes| D[Capability runs its own functions] - Q -->|No| E[Manager generates response] - - D -->|Results to manager| E - - E --> F[Add user and model messages to DB] - E -->|Return response to user| A -``` - -If Collab Agent is added to a groupchat or private message, it will always listen and log each message to its database. The messages are stored in an SQLite DB by the conversation ID of the given conversation. -The agent will respond whenever @mentioned in groupchats and will always respond in 1-on-1 messages. When the agent responds, the request is first passed through a manger prompt. -This manager may route to a capability based on the request--this capability returns its result back to the manager where it will be passed back to the user. - - -## Prerequisite to use this sample -- [Node.js](https://nodejs.org/) version 18.x or higher -- A Microsoft 365 tenant in which you have permission to upload Teams apps. You can get a free Microsoft 365 developer tenant by joining the [Microsoft 365 developer program](https://developer.microsoft.com/en-us/microsoft-365/dev-program). -- [Microsoft 365 Agents Toolkit for VS Code](https://aka.ms/teams-toolkit) or [Microsoft 365 Agents Toolkit CLI](https://aka.ms/teams-toolkit-cli) -- Azure OpenAI resource with GPT-4 deployment - -## Minimal path to awesome - -### Run the app locally - -1. Install dependencies: - ```bash - npm install - ``` - -2. Configure environment variables: - - Open the project in Visual Studio Code - - The Microsoft 365 Agents Toolkit will automatically generate the required environment files - - Update the `.localConfigs` file (or `.localConfigs.playground` if debug with playground) with your Azure OpenAI configuration: - - `SECRET_AZURE_OPENAI_API_KEY`: Your Azure OpenAI API key - - `AZURE_OPENAI_ENDPOINT`: Your Azure OpenAI endpoint URL - - `AZURE_OPENAI_DEPLOYMENT_NAME`: Your GPT-4 model deployment name - -3. Open the project in Visual Studio Code -4. Press F5 to start the debug session (Debug Edge) -5. Microsoft 365 Agents Toolkit will handle: - - Starting the local bot server - - Tunneling for external access - - Opening Teams with your bot loaded -6. @mention the bot in any conversation to start using its capabilities! - -### Deploy the app to Azure -1. Open the project in Visual Studio Code -2. Use Microsoft 365 Agents Toolkit to provision and deploy to Azure -3. Follow the deployment prompts to configure your Azure resources - -### Preview the app in Teams -1. Launch remote debugging or use the deployed version -2. Install the app in Microsoft Teams -3. @mention the bot in conversations to activate its capabilities - -## Sample Questions - -You can ask the Collaborator agent questions like: - -**Summarization:** -- "@Collaborator summarize yesterday's discussion" -- "@Collaborator what were the main topics from last week?" -- "@Collaborator give me an overview of recent messages" - -**Action Items:** -- "@Collaborator find action items from the past 3 days" -- "@Collaborator create a task to review the proposal by Friday" -- "@Collaborator what tasks are assigned to me?" - -**Search:** -- "@Collaborator find messages about the project deadline" -- "@Collaborator search for conversations between Alice and Bob" -- "@Collaborator locate discussions from this morning about the budget" - -## Advanced usage of this sample - -### Adding Custom Capabilities - -Adding your own capabilities only requires a few steps: - -1. Copy the template folder under capabilities [template](src\capabilities\template\template.ts) -2. Customize your capability to do what you want (helpful to look at existing capabilities) -3. Make sure to create a CapabilityDefinition at the bottom of your main file -4. Register your capability by importing the CapabilityDefinition and adding to the definition list in [registry](src\capabilities\registry.ts) -5. The manager will automatically be instantiated with the capability you defined! - -### Agent Architecture - -```mermaid -flowchart TD - A[Manager] - - A --> B(Summarizer) - A --> C(Action Items Creation) - A --> D(Search) - A --> E(Add your own capabilities!) -``` - -### Flow of the Agent - -```mermaid -flowchart TD - A{Incoming User Message} - - A -->|Groupchat & Bot mentioned OR 1:1| M[Manager receives message] - A -->|Groupchat & Bot not mentioned| C[User message added to DB] - - M --> Q{Requires capability?} - Q -->|Yes| D[Capability runs its own functions] - Q -->|No| E[Manager generates response] - - D -->|Results to manager| E - - E --> F[Add user and model messages to DB] - E -->|Return response to user| A -``` - -If Collab Agent is added to a groupchat or private message, it will always listen and log each message to its database. The messages are stored in an SQLite DB by the conversation ID of the given conversation. -The agent will respond whenever @mentioned in groupchats and will always respond in 1-on-1 messages. When the agent responds, the request is first passed through a manger prompt. -This manager may route to a capability based on the request--this capability returns its result back to the manager where it will be passed back to the user. - -## Version History - -| Date | Author | Comments | -| ------------ | ---------- | -------------------------------------- | -| Oct 31, 2025 | qinzhouxu | Onboard sample with Microsoft Teams SDK | - -## Feedback -We really appreciate your feedback! If you encounter any issue or error, please report issues to us following the [Supporting Guide](https://github.com/OfficeDev/TeamsFx-Samples/blob/dev/SUPPORT.md). Meanwhile you can make [recording](https://aka.ms/teamsfx-record) of your journey with our product, they really make the product better. Thank you! diff --git a/collaborator-agent/appPackage/color.png b/collaborator-agent/appPackage/color.png deleted file mode 100644 index 9707a244e..000000000 Binary files a/collaborator-agent/appPackage/color.png and /dev/null differ diff --git a/collaborator-agent/appPackage/manifest.json b/collaborator-agent/appPackage/manifest.json deleted file mode 100644 index b9d65505f..000000000 --- a/collaborator-agent/appPackage/manifest.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.20/MicrosoftTeams.schema.json", - "version": "1.0.0", - "manifestVersion": "1.20", - "id": "${{TEAMS_APP_ID}}", - "name": { - "short": "Collab Agent", - "full": "Collab Agent" - }, - "developer": { - "name": "Microsoft", - "mpnId": "", - "websiteUrl": "https://microsoft.com", - "privacyUrl": "https://privacy.microsoft.com/privacystatement", - "termsOfUseUrl": "https://www.microsoft.com/legal/terms-of-use" - }, - "description": { - "short": "Agent with collaborative capabilites to optimize your work", - "full": "Agent with collaborative capabilites to optimize your work" - }, - "icons": { - "outline": "outline.png", - "color": "color.png" - }, - "accentColor": "#FFFFFF", - "staticTabs": [ - { - "entityId": "conversations", - "scopes": [ - "personal" - ] - }, - { - "entityId": "about", - "scopes": [ - "personal" - ] - } - ], - "bots": [ - { - "botId": "${{BOT_ID}}", - "scopes": [ - "personal", - "team", - "groupChat" - ], - "isNotificationOnly": false, - "supportsCalling": false, - "supportsVideo": false, - "supportsFiles": false - } - ], - "validDomains": [ - "${{BOT_DOMAIN}}", - "*.botframework.com" - ], - "webApplicationInfo": { - "id": "${{BOT_ID}}", - "resource": "api://botid-${{BOT_ID}}" - }, - "authorization": { - "permissions": { - "resourceSpecific": [ - { - "name": "ChatMessage.Read.Chat", - "type": "Application" - } - ] - } - } -} \ No newline at end of file diff --git a/collaborator-agent/appPackage/outline.png b/collaborator-agent/appPackage/outline.png deleted file mode 100644 index e8cb4b6ba..000000000 Binary files a/collaborator-agent/appPackage/outline.png and /dev/null differ diff --git a/collaborator-agent/assets/collaborator-agent-thumbnail.png b/collaborator-agent/assets/collaborator-agent-thumbnail.png deleted file mode 100644 index 275611a2e..000000000 Binary files a/collaborator-agent/assets/collaborator-agent-thumbnail.png and /dev/null differ diff --git a/collaborator-agent/env/.env.dev b/collaborator-agent/env/.env.dev deleted file mode 100644 index 5b144a42d..000000000 --- a/collaborator-agent/env/.env.dev +++ /dev/null @@ -1,19 +0,0 @@ -# This file includes environment variables that will be committed to git by default. - -# Built-in environment variables -TEAMSFX_ENV=dev -APP_NAME_SUFFIX=dev - -# Updating AZURE_SUBSCRIPTION_ID or AZURE_RESOURCE_GROUP_NAME after provision may also require an update to RESOURCE_SUFFIX, because some services require a globally unique name across subscriptions/resource groups. -AZURE_SUBSCRIPTION_ID= -AZURE_RESOURCE_GROUP_NAME= -RESOURCE_SUFFIX= - -# Generated during provision, you can also add your own variables. -BOT_ID= -TEAMS_APP_ID= -BOT_AZURE_APP_SERVICE_RESOURCE_ID= -BOT_DOMAIN= - -# e.g. ./src/storage/conversations.db -CONVERSATIONS_DB_PATH= \ No newline at end of file diff --git a/collaborator-agent/env/.env.dev.user b/collaborator-agent/env/.env.dev.user deleted file mode 100644 index 6e3a844ee..000000000 --- a/collaborator-agent/env/.env.dev.user +++ /dev/null @@ -1,6 +0,0 @@ -# This file includes environment variables that will not be committed to git by default. You can set these environment variables in your CI/CD system for your project. - -# Secrets. Keys prefixed with `SECRET_` will be masked in Microsoft 365 Agents Toolkit logs. -SECRET_AZURE_OPENAI_API_KEY= -AZURE_OPENAI_ENDPOINT= -AZURE_OPENAI_DEPLOYMENT_NAME= diff --git a/collaborator-agent/env/.env.local b/collaborator-agent/env/.env.local deleted file mode 100644 index 62e5e8586..000000000 --- a/collaborator-agent/env/.env.local +++ /dev/null @@ -1,14 +0,0 @@ -# This file includes environment variables that can be committed to git. It's gitignored by default because it represents your local development environment. - -# Built-in environment variables -TEAMSFX_ENV=local -APP_NAME_SUFFIX=local - -# Generated during provision, you can also add your own variables. -BOT_ID= -TEAMS_APP_ID= -BOT_DOMAIN= -BOT_ENDPOINT= - -# e.g. ./src/storage/conversations.db -CONVERSATIONS_DB_PATH= \ No newline at end of file diff --git a/collaborator-agent/env/.env.local.user b/collaborator-agent/env/.env.local.user deleted file mode 100644 index 4cf7a1fb3..000000000 --- a/collaborator-agent/env/.env.local.user +++ /dev/null @@ -1,8 +0,0 @@ -# This file includes environment variables that will not be committed to git by default. You can set these environment variables in your CI/CD system for your project. - -# If you're adding a secret value, add SECRET_ prefix to the name so Microsoft 365 Agents Toolkit can handle them properly -# Secrets. Keys prefixed with `SECRET_` will be masked in Microsoft 365 Agents Toolkit logs. -SECRET_BOT_PASSWORD= -SECRET_AZURE_OPENAI_API_KEY= -AZURE_OPENAI_ENDPOINT= -AZURE_OPENAI_DEPLOYMENT_NAME= diff --git a/collaborator-agent/env/.env.playground b/collaborator-agent/env/.env.playground deleted file mode 100644 index a98038cb8..000000000 --- a/collaborator-agent/env/.env.playground +++ /dev/null @@ -1,8 +0,0 @@ -TEAMSFX_ENV=playground - -# Environment variables used by test tool -TEAMSAPPTESTER_PORT=56150 -TEAMSFX_NOTIFICATION_STORE_FILENAME=.notification.testtoolstore.json - -# e.g. ./src/storage/conversations.db -CONVERSATIONS_DB_PATH= \ No newline at end of file diff --git a/collaborator-agent/env/.env.playground.user b/collaborator-agent/env/.env.playground.user deleted file mode 100644 index 69055cf2f..000000000 --- a/collaborator-agent/env/.env.playground.user +++ /dev/null @@ -1,7 +0,0 @@ -# This file includes environment variables that will not be committed to git by default. You can set these environment variables in your CI/CD system for your project. - -# If you're adding a secret value, add SECRET_ prefix to the name so Microsoft 365 Agents Toolkit can handle them properly -# Secrets. Keys prefixed with `SECRET_` will be masked in Microsoft 365 Agents Toolkit logs. -SECRET_AZURE_OPENAI_API_KEY= -AZURE_OPENAI_ENDPOINT= -AZURE_OPENAI_DEPLOYMENT_NAME= \ No newline at end of file diff --git a/collaborator-agent/infra/azure.bicep b/collaborator-agent/infra/azure.bicep deleted file mode 100644 index f80f392a8..000000000 --- a/collaborator-agent/infra/azure.bicep +++ /dev/null @@ -1,116 +0,0 @@ -@maxLength(20) -@minLength(4) -@description('Used to generate names for all resources in this file') -param resourceBaseName string - -@secure() -param azureOpenAIKey string - -@secure() -param azureOpenAIEndpoint string - -@secure() -param azureOpenAIDeploymentName string - -param webAppSKU string - -@maxLength(42) -param botDisplayName string - -param serverfarmsName string = resourceBaseName -param webAppName string = resourceBaseName -param identityName string = resourceBaseName -param location string = resourceGroup().location - -resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { - location: location - name: identityName -} - -// Compute resources for your Web App -resource serverfarm 'Microsoft.Web/serverfarms@2021-02-01' = { - kind: 'app' - location: location - name: serverfarmsName - sku: { - name: webAppSKU - } -} - -// Web App that hosts your agent -resource webApp 'Microsoft.Web/sites@2021-02-01' = { - kind: 'app' - location: location - name: webAppName - properties: { - serverFarmId: serverfarm.id - httpsOnly: true - siteConfig: { - alwaysOn: true - appSettings: [ - { - name: 'WEBSITE_RUN_FROM_PACKAGE' - value: '1' // Run Azure App Service from a package file - } - { - name: 'WEBSITE_NODE_DEFAULT_VERSION' - value: '~22' // Set NodeJS version to 22.x for your site - } - { - name: 'RUNNING_ON_AZURE' - value: '1' - } - { - name: 'CLIENT_ID' - value: identity.properties.clientId - } - { - name: 'TENANT_ID' - value: identity.properties.tenantId - } - { - name: 'BOT_TYPE' - value: 'UserAssignedMsi' - } - { - name: 'AZURE_OPENAI_API_KEY' - value: azureOpenAIKey - } - { - name: 'AZURE_OPENAI_ENDPOINT' - value: azureOpenAIEndpoint - } - { - name: 'AZURE_OPENAI_DEPLOYMENT_NAME' - value: azureOpenAIDeploymentName - } - ] - ftpsState: 'FtpsOnly' - } - } - identity: { - type: 'UserAssigned' - userAssignedIdentities: { - '${identity.id}': {} - } - } -} - -// Register your web service as a bot with the Bot Framework -module azureBotRegistration './botRegistration/azurebot.bicep' = { - name: 'Azure-Bot-registration' - params: { - resourceBaseName: resourceBaseName - identityClientId: identity.properties.clientId - identityResourceId: identity.id - identityTenantId: identity.properties.tenantId - botAppDomain: webApp.properties.defaultHostName - botDisplayName: botDisplayName - } -} - -// The output will be persisted in .env.{envName}. Visit https://aka.ms/teamsfx-actions/arm-deploy for more details. -output BOT_AZURE_APP_SERVICE_RESOURCE_ID string = webApp.id -output BOT_DOMAIN string = webApp.properties.defaultHostName -output BOT_ID string = identity.properties.clientId -output BOT_TENANT_ID string = identity.properties.tenantId diff --git a/collaborator-agent/infra/azure.parameters.json b/collaborator-agent/infra/azure.parameters.json deleted file mode 100644 index 5776fd129..000000000 --- a/collaborator-agent/infra/azure.parameters.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "resourceBaseName": { - "value": "bot${{RESOURCE_SUFFIX}}" - }, - "azureOpenAIKey": { - "value": "${{SECRET_AZURE_OPENAI_API_KEY}}" - }, - "azureOpenAIEndpoint": { - "value": "${{AZURE_OPENAI_ENDPOINT}}" - }, - "azureOpenAIDeploymentName": { - "value": "${{AZURE_OPENAI_DEPLOYMENT_NAME}}" - }, - "webAppSKU": { - "value": "B1" - }, - "botDisplayName": { - "value": "CollaboratorAgentInfra" - } - } -} \ No newline at end of file diff --git a/collaborator-agent/infra/botRegistration/azurebot.bicep b/collaborator-agent/infra/botRegistration/azurebot.bicep deleted file mode 100644 index a5a27b8fe..000000000 --- a/collaborator-agent/infra/botRegistration/azurebot.bicep +++ /dev/null @@ -1,42 +0,0 @@ -@maxLength(20) -@minLength(4) -@description('Used to generate names for all resources in this file') -param resourceBaseName string - -@maxLength(42) -param botDisplayName string - -param botServiceName string = resourceBaseName -param botServiceSku string = 'F0' -param identityResourceId string -param identityClientId string -param identityTenantId string -param botAppDomain string - -// Register your web service as a bot with the Bot Framework -resource botService 'Microsoft.BotService/botServices@2021-03-01' = { - kind: 'azurebot' - location: 'global' - name: botServiceName - properties: { - displayName: botDisplayName - endpoint: 'https://${botAppDomain}/api/messages' - msaAppId: identityClientId - msaAppMSIResourceId: identityResourceId - msaAppTenantId:identityTenantId - msaAppType:'UserAssignedMSI' - } - sku: { - name: botServiceSku - } -} - -// Connect the bot service to Microsoft Teams -resource botServiceMsTeamsChannel 'Microsoft.BotService/botServices/channels@2021-03-01' = { - parent: botService - location: 'global' - name: 'MsTeamsChannel' - properties: { - channelName: 'MsTeamsChannel' - } -} diff --git a/collaborator-agent/infra/botRegistration/readme.md b/collaborator-agent/infra/botRegistration/readme.md deleted file mode 100644 index d5416243c..000000000 --- a/collaborator-agent/infra/botRegistration/readme.md +++ /dev/null @@ -1 +0,0 @@ -The `azurebot.bicep` module is provided to help you create Azure Bot service when you don't use Azure to host your app. If you use Azure as infrastrcture for your app, `azure.bicep` under infra folder already leverages this module to create Azure Bot service for you. You don't need to deploy `azurebot.bicep` again. \ No newline at end of file diff --git a/collaborator-agent/m365agents.local.yml b/collaborator-agent/m365agents.local.yml deleted file mode 100644 index 652f68b3f..000000000 --- a/collaborator-agent/m365agents.local.yml +++ /dev/null @@ -1,84 +0,0 @@ -# yaml-language-server: $schema=https://aka.ms/m365-agents-toolkits/v1.11/yaml.schema.json -# Visit https://aka.ms/teamsfx-v5.0-guide for details on this file -# Visit https://aka.ms/teamsfx-actions for details on actions -version: v1.11 - -environmentFolderPath: ./env - -# Defines what the `provision` lifecycle step does with M365 Agents Toolkit. -# Runs first during Start Debugging (F5) or run manually using `teamsfx provision --env local`. -provision: - # Automates the creation of a Teams app registration and saves the App ID to an environment file. - - uses: teamsApp/create - with: - name: CollaboratorAgent${{APP_NAME_SUFFIX}} - writeToEnvironmentFile: - teamsAppId: TEAMS_APP_ID - - # Create or reuse an existing Microsoft Entra application for bot. - - uses: aadApp/create - with: - # The Microsoft Entra application's display name - name: CollaboratorAgent${{APP_NAME_SUFFIX}} - generateClientSecret: true - generateServicePrincipal: true - signInAudience: AzureADMultipleOrgs - writeToEnvironmentFile: - # The Microsoft Entra application's client id created for bot. - clientId: BOT_ID - # The Microsoft Entra application's client secret created for bot. - clientSecret: SECRET_BOT_PASSWORD - # The Microsoft Entra application's object id created for bot. - objectId: BOT_OBJECT_ID - - # Automates the creation and configuration of a Bot Framework registration which is required for a bot. - # This configures the bot to use the Azure AD app registration created in the previous step. - # M365 Agents Toolkit automatically creates a local Dev Tunnel URL and updates BOT_ENDPOINT when debugging (F5). - - uses: botFramework/create - with: - botId: ${{BOT_ID}} - name: CollaboratorAgent - messagingEndpoint: ${{BOT_ENDPOINT}}/api/messages - description: '' - channels: - - name: msteams - - # Optional: Automates schema and error checking of the Teams app manifest and outputs the results in the console. - - uses: teamsApp/validateManifest - with: - manifestPath: ./appPackage/manifest.json - - # Automates the creation of a Teams app package (.zip). - - uses: teamsApp/zipAppPackage - with: - manifestPath: ./appPackage/manifest.json - outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - outputFolder: ./appPackage/build - - # Automates updating the Teams app manifest in Teams Developer Portal using the App ID from the manifest file. - # This action ensures that any manifest changes are reflected when launching the app again in Teams. - - uses: teamsApp/update - with: - # Relative path to this file. This is the path for built zip file. - appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - -# Defines what the `deploy` lifecycle step does with M365 Agents Toolkit. -# Runs after `provision` during Start Debugging (F5) or run manually using `teamsfx deploy --env local`. -deploy: - # Install any dependencies and build the web app using NPM - - uses: cli/runNpmCommand - name: install dependencies - with: - args: install --no-audit --workspaces=false - # Provides the M365 Agents Toolkit .env file values to the apps runtime so they can be accessed with `process.env`. - - uses: file/createOrUpdateEnvironmentFile - with: - target: ./.localConfigs - envs: - PORT: 3978 - CLIENT_ID: ${{BOT_ID}} - CLIENT_SECRET: ${{SECRET_BOT_PASSWORD}} - TENANT_ID: ${{TEAMS_APP_TENANT_ID}} - AZURE_OPENAI_API_KEY: ${{SECRET_AZURE_OPENAI_API_KEY}} - AZURE_OPENAI_ENDPOINT: ${{AZURE_OPENAI_ENDPOINT}} - AZURE_OPENAI_DEPLOYMENT_NAME: ${{AZURE_OPENAI_DEPLOYMENT_NAME}} diff --git a/collaborator-agent/m365agents.playground.yml b/collaborator-agent/m365agents.playground.yml deleted file mode 100644 index 30e862b13..000000000 --- a/collaborator-agent/m365agents.playground.yml +++ /dev/null @@ -1,29 +0,0 @@ -# yaml-language-server: $schema=https://aka.ms/m365-agents-toolkits/v1.11/yaml.schema.json -# Visit https://aka.ms/teamsfx-v5.0-guide for details on this file -# Visit https://aka.ms/teamsfx-actions for details on actions -version: v1.11 - -deploy: - # Install development tool(s) - - uses: devTool/install - with: - testTool: - version: ~0.2.1 - symlinkDir: ./devTools/playground - - # Run npm command - - uses: cli/runNpmCommand - with: - args: install --no-audit --workspaces=false - - # Generate runtime environment variables - - uses: file/createOrUpdateEnvironmentFile - with: - target: ./.localConfigs.playground - envs: - NODE_ENV: local - PORT: 3978 - TEAMSFX_NOTIFICATION_STORE_FILENAME: ${{TEAMSFX_NOTIFICATION_STORE_FILENAME}} - AZURE_OPENAI_API_KEY: ${{SECRET_AZURE_OPENAI_API_KEY}} - AZURE_OPENAI_ENDPOINT: ${{AZURE_OPENAI_ENDPOINT}} - AZURE_OPENAI_DEPLOYMENT_NAME: ${{AZURE_OPENAI_DEPLOYMENT_NAME}} diff --git a/collaborator-agent/m365agents.yml b/collaborator-agent/m365agents.yml deleted file mode 100644 index 6c8353e44..000000000 --- a/collaborator-agent/m365agents.yml +++ /dev/null @@ -1,142 +0,0 @@ -# yaml-language-server: $schema=https://aka.ms/m365-agents-toolkits/v1.11/yaml.schema.json -# Visit https://aka.ms/teamsfx-v5.0-guide for details on this file -# Visit https://aka.ms/teamsfx-actions for details on actions -version: v1.11 - -additionalMetadata: - sampleTag: TeamsFx-Samples:collaborator-agent - -environmentFolderPath: ./env - -# Triggered when 'teamsapp provision' is executed -provision: - # Creates an app - - uses: teamsApp/create - with: - # app name - name: CollaboratorAgent${{APP_NAME_SUFFIX}} - # Write the information of created resources into environment file for - # the specified environment variable(s). - writeToEnvironmentFile: - teamsAppId: TEAMS_APP_ID - - - uses: arm/deploy # Deploy given ARM templates parallelly. - with: - # AZURE_SUBSCRIPTION_ID is a built-in environment variable, - # if its value is empty, TeamsFx will prompt you to select a subscription. - # Referencing other environment variables with empty values - # will skip the subscription selection prompt. - subscriptionId: ${{AZURE_SUBSCRIPTION_ID}} - # AZURE_RESOURCE_GROUP_NAME is a built-in environment variable, - # if its value is empty, TeamsFx will prompt you to select or create one - # resource group. - # Referencing other environment variables with empty values - # will skip the resource group selection prompt. - resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}} - templates: - - path: ./infra/azure.bicep # Relative path to this file - # Relative path to this yaml file. - # Placeholders will be replaced with corresponding environment - # variable before ARM deployment. - parameters: ./infra/azure.parameters.json - # Required when deploying ARM template - deploymentName: Create-resources-for-bot - # Microsoft 365 Agents Toolkit will download this bicep CLI version from github for you, - # will use bicep CLI in PATH if you remove this config. - bicepCliVersion: v0.9.1 - - # Validate using manifest schema - - uses: teamsApp/validateManifest - with: - # Path to manifest template - manifestPath: ./appPackage/manifest.json - # Build app package with latest env value - - uses: teamsApp/zipAppPackage - with: - # Path to manifest template - manifestPath: ./appPackage/manifest.json - outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - outputFolder: ./appPackage/build - # Validate app package using validation rules - - uses: teamsApp/validateAppPackage - with: - # Relative path to this file. This is the path for built zip file. - appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - # Apply the app manifest to an existing app in - # Developer Portal. - # Will use the app id in manifest file to determine which app to update. - - uses: teamsApp/update - with: - # Relative path to this file. This is the path for built zip file. - appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - - uses: teamsApp/extendToM365 - with: - # Relative path to the build app package. - appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - # Write the information of created resources into environment file for - # the specified environment variable(s). - writeToEnvironmentFile: - titleId: M365_TITLE_ID - appId: M365_APP_ID - -# Triggered when 'teamsapp deploy' is executed -deploy: - # Run npm command - - uses: cli/runNpmCommand - name: install dependencies - with: - args: install - - uses: cli/runNpmCommand - name: build app - with: - args: run build --if-present - # Deploy your application to Azure App Service using the zip deploy feature. - # For additional details, refer to https://aka.ms/zip-deploy-to-app-services. - - uses: azureAppService/zipDeploy - with: - # Deploy base folder - artifactFolder: . - # Ignore file location, leave blank will ignore nothing - ignoreFile: .webappignore - # The resource id of the cloud resource to be deployed to. - # This key will be generated by arm/deploy action automatically. - # You can replace it with your existing Azure Resource id - # or add it to your environment variable file. - resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}} - -# Triggered when 'teamsapp publish' is executed -publish: - # Validate using manifest schema - - uses: teamsApp/validateManifest - with: - # Path to manifest template - manifestPath: ./appPackage/manifest.json - # Build app package with latest env value - - uses: teamsApp/zipAppPackage - with: - # Path to manifest template - manifestPath: ./appPackage/manifest.json - outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - outputFolder: ./appPackage/build - # Validate app package using validation rules - - uses: teamsApp/validateAppPackage - with: - # Relative path to this file. This is the path for built zip file. - appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - # Apply the app manifest to an existing app in - # Developer Portal. - # Will use the app id in manifest file to determine which app to update. - - uses: teamsApp/update - with: - # Relative path to this file. This is the path for built zip file. - appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - # Publish the app to - # Teams Admin Center (https://admin.teams.microsoft.com/policies/manage-apps) - # for review and approval - - uses: teamsApp/publishAppPackage - with: - appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip - # Write the information of created resources into environment file for - # the specified environment variable(s). - writeToEnvironmentFile: - publishedAppId: TEAMS_APP_PUBLISHED_APP_ID diff --git a/collaborator-agent/package-lock.json b/collaborator-agent/package-lock.json deleted file mode 100644 index d3c80c5a6..000000000 --- a/collaborator-agent/package-lock.json +++ /dev/null @@ -1,5796 +0,0 @@ -{ - "name": "collab-ts", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "collab-ts", - "version": "0.0.0", - "license": "MIT", - "dependencies": { - "@azure/identity": "^4.13.0", - "@microsoft/teams.ai": "^2.0.0", - "@microsoft/teams.api": "^2.0.0", - "@microsoft/teams.apps": "^2.0.0", - "@microsoft/teams.cards": "^2.0.0", - "@microsoft/teams.common": "^2.0.0", - "@microsoft/teams.graph": "^2.0.0", - "@microsoft/teams.openai": "^2.0.0", - "@types/better-sqlite3": "^7.6.12", - "better-sqlite3": "^11.9.0", - "chrono-node": "^2.7.0", - "node-html-markdown": "^1.3.0", - "winston": "^3.17.0" - }, - "devDependencies": { - "@types/node": "^22.5.4", - "@types/ws": "^8.18.1", - "dotenv": "^16.4.5", - "env-cmd": "latest", - "nodemon": "^3.1.4", - "rimraf": "^6.0.1", - "ts-morph": "^26.0.0", - "ts-node": "^10.9.2", - "tsup": "^8.4.0", - "typescript": "^5.8.3" - } - }, - "node_modules/@azure-rest/core-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-2.4.0.tgz", - "integrity": "sha512-CjMFBcmnt0YNdRcxSSoZbtZNXudLlicdml7UrPsV03nHiWB+Bq5cu5ctieyaCuRtU7jm7+SOFtiE/g4pBFPKKA==", - "license": "MIT", - "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-rest-pipeline": "^1.5.0", - "@azure/core-tracing": "^1.0.1", - "@typespec/ts-http-runtime": "^0.2.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/abort-controller": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", - "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-auth": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz", - "integrity": "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==", - "license": "MIT", - "dependencies": { - "@azure/abort-controller": "^2.1.2", - "@azure/core-util": "^1.13.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/core-client": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.10.1.tgz", - "integrity": "sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==", - "license": "MIT", - "dependencies": { - "@azure/abort-controller": "^2.1.2", - "@azure/core-auth": "^1.10.0", - "@azure/core-rest-pipeline": "^1.22.0", - "@azure/core-tracing": "^1.3.0", - "@azure/core-util": "^1.13.0", - "@azure/logger": "^1.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/core-rest-pipeline": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.22.2.tgz", - "integrity": "sha512-MzHym+wOi8CLUlKCQu12de0nwcq9k9Kuv43j4Wa++CsCpJwps2eeBQwD2Bu8snkxTtDKDx4GwjuR9E8yC8LNrg==", - "license": "MIT", - "dependencies": { - "@azure/abort-controller": "^2.1.2", - "@azure/core-auth": "^1.10.0", - "@azure/core-tracing": "^1.3.0", - "@azure/core-util": "^1.13.0", - "@azure/logger": "^1.3.0", - "@typespec/ts-http-runtime": "^0.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/core-rest-pipeline/node_modules/@typespec/ts-http-runtime": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.2.tgz", - "integrity": "sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==", - "license": "MIT", - "dependencies": { - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/core-tracing": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.1.tgz", - "integrity": "sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/core-util": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz", - "integrity": "sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==", - "license": "MIT", - "dependencies": { - "@azure/abort-controller": "^2.1.2", - "@typespec/ts-http-runtime": "^0.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/core-util/node_modules/@typespec/ts-http-runtime": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.2.tgz", - "integrity": "sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==", - "license": "MIT", - "dependencies": { - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/identity": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.0.tgz", - "integrity": "sha512-uWC0fssc+hs1TGGVkkghiaFkkS7NkTxfnCH+Hdg+yTehTpMcehpok4PgUKKdyCH+9ldu6FhiHRv84Ntqj1vVcw==", - "license": "MIT", - "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.9.0", - "@azure/core-client": "^1.9.2", - "@azure/core-rest-pipeline": "^1.17.0", - "@azure/core-tracing": "^1.0.0", - "@azure/core-util": "^1.11.0", - "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^4.2.0", - "@azure/msal-node": "^3.5.0", - "open": "^10.1.0", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz", - "integrity": "sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==", - "license": "MIT", - "dependencies": { - "@typespec/ts-http-runtime": "^0.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/logger/node_modules/@typespec/ts-http-runtime": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.2.tgz", - "integrity": "sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==", - "license": "MIT", - "dependencies": { - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@azure/msal-browser": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.26.1.tgz", - "integrity": "sha512-GGCIsZXxyNm5QcQZ4maA9q+9UWmM+/87G+ybvPkrE32el1URSa9WYt0t67ks3/P0gspZX9RoEqyLqJ/X/JDnBQ==", - "license": "MIT", - "dependencies": { - "@azure/msal-common": "15.13.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@azure/msal-common": { - "version": "15.13.1", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.13.1.tgz", - "integrity": "sha512-vQYQcG4J43UWgo1lj7LcmdsGUKWYo28RfEvDQAEMmQIMjSFufvb+pS0FJ3KXmrPmnWlt1vHDl3oip6mIDUQ4uA==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@azure/msal-node": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-3.8.1.tgz", - "integrity": "sha512-HszfqoC+i2C9+BRDQfuNUGp15Re7menIhCEbFCQ49D3KaqEDrgZIgQ8zSct4T59jWeUIL9N/Dwiv4o2VueTdqQ==", - "license": "MIT", - "dependencies": { - "@azure/msal-common": "15.13.1", - "jsonwebtoken": "^9.0.0", - "uuid": "^8.3.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@azure/msal-node/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@azure/openai": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@azure/openai/-/openai-2.0.0.tgz", - "integrity": "sha512-zSNhwarYbqg3P048uKMjEjbge41OnAgmiiE1elCHVsuCCXRyz2BXnHMJkW6WR6ZKQy5NHswJNUNSWsuqancqFA==", - "license": "MIT", - "dependencies": { - "@azure-rest/core-client": "^2.2.0", - "tslib": "^2.6.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz", - "integrity": "sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz", - "integrity": "sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz", - "integrity": "sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz", - "integrity": "sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz", - "integrity": "sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz", - "integrity": "sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz", - "integrity": "sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz", - "integrity": "sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz", - "integrity": "sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz", - "integrity": "sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz", - "integrity": "sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz", - "integrity": "sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz", - "integrity": "sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz", - "integrity": "sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz", - "integrity": "sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz", - "integrity": "sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz", - "integrity": "sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz", - "integrity": "sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz", - "integrity": "sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz", - "integrity": "sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz", - "integrity": "sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz", - "integrity": "sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz", - "integrity": "sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz", - "integrity": "sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz", - "integrity": "sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz", - "integrity": "sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@microsoft/teams.ai": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/teams.ai/-/teams.ai-2.0.2.tgz", - "integrity": "sha512-Qrz8R+6M1w1o4P14G/CiTk/CFA0P0SpTDqsmK5FPd0qu4jDTi8EG+2z7nzsl55+fdAL+idr3J9Diit7Bler0qA==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "@microsoft/teams.common": "2.0.2" - } - }, - "node_modules/@microsoft/teams.api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/teams.api/-/teams.api-2.0.2.tgz", - "integrity": "sha512-TAczlRa02N8VoSkl/XyAdMY82B4MnBwk6XZzmAy7tJWZAudrfNRWJ4qDra9XtJ/eoGF1kKgzGBPTBT8cmH8nzw==", - "license": "MIT", - "dependencies": { - "jwt-decode": "^4.0.0", - "qs": "^6.13.0" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "@microsoft/teams.cards": "2.0.2", - "@microsoft/teams.common": "2.0.2" - } - }, - "node_modules/@microsoft/teams.apps": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/teams.apps/-/teams.apps-2.0.2.tgz", - "integrity": "sha512-IDr7mNJQhOFPAWKaSFMFRhscMapV+b9T+Kq9zfyUdSzPyDG9ayubikC+3na4SRCrRuVqkceUP9VV5c6ZMTagQw==", - "license": "MIT", - "dependencies": { - "axios": "^1.12.0", - "cors": "^2.8.5", - "express": "^4.21.0", - "jsonwebtoken": "^9.0.2", - "jwks-rsa": "^3.2.0", - "reflect-metadata": "^0.2.2" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "@microsoft/teams.api": "2.0.2", - "@microsoft/teams.common": "2.0.2", - "@microsoft/teams.graph": "2.0.2" - } - }, - "node_modules/@microsoft/teams.cards": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/teams.cards/-/teams.cards-2.0.2.tgz", - "integrity": "sha512-E/QLeeb3owS3oyRKFw7Pvcoo2qrnAI6+kv0/t4Ed0XM9jyKi+bc1ro/JhwxtgiLyodNoThQVu8f/7TYihvRI4w==", - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "node_modules/@microsoft/teams.common": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/teams.common/-/teams.common-2.0.2.tgz", - "integrity": "sha512-IFQJ7KOADspZL2sIWR+n7LnS3prYulB7IXmn62YcxDLsuq9UZsGxLERM3CeagiCh8Thb5OxERxyCwzhuS9Fx6w==", - "license": "MIT", - "dependencies": { - "axios": "^1.12.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@microsoft/teams.graph": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/teams.graph/-/teams.graph-2.0.2.tgz", - "integrity": "sha512-JbmdnMPKmayTtamiDY24IgLwzrJvZPN0FBYA3DsMdlDgJrPAWRx+JXdBn39offGcVIoQed6SYlsay6EiTE9Hig==", - "license": "MIT", - "dependencies": { - "@microsoft/teams.common": "2.0.2", - "qs": "^6.13.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@microsoft/teams.openai": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/teams.openai/-/teams.openai-2.0.2.tgz", - "integrity": "sha512-e2yp+fcFnmfWisxvMe9yuyUlAPC7/xQq5669QDpSQQtuUU8Lr105s4ZP62TcYH2qfC74iE8WcfSSJFzJNfU4mg==", - "license": "MIT", - "dependencies": { - "@azure/openai": "^2.0.0" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "@microsoft/teams.ai": "2.0.2", - "@microsoft/teams.common": "2.0.2", - "openai": "^4.55.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", - "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz", - "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz", - "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz", - "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz", - "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz", - "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz", - "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz", - "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz", - "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz", - "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz", - "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz", - "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz", - "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz", - "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz", - "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz", - "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz", - "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz", - "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz", - "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz", - "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@ts-morph/common": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.27.0.tgz", - "integrity": "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "^3.3.3", - "minimatch": "^10.0.1", - "path-browserify": "^1.0.1" - } - }, - "node_modules/@ts-morph/common/node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/better-sqlite3": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.13.tgz", - "integrity": "sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", - "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "license": "MIT" - }, - "node_modules/@types/jsonwebtoken": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.9.tgz", - "integrity": "sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*", - "@types/node": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.15.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.31.tgz", - "integrity": "sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/triple-beam": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", - "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typespec/ts-http-runtime": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.3.tgz", - "integrity": "sha512-oRhjSzcVjX8ExyaF8hC0zzTqxlVuRlgMHL/Bh4w3xB9+wjbm0FpXylVU/lBrn+kgphwYTrOk3tp+AVShGmlYCg==", - "license": "MIT", - "dependencies": { - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "peer": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", - "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "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/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/better-sqlite3": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.10.0.tgz", - "integrity": "sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "bindings": "^1.5.0", - "prebuild-install": "^7.1.1" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "license": "MIT", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/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/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", - "license": "MIT", - "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bundle-require": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", - "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "load-tsconfig": "^0.2.3" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "esbuild": ">=0.18" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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==", - "license": "MIT", - "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==", - "license": "MIT", - "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/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "license": "ISC" - }, - "node_modules/chrono-node": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-2.8.3.tgz", - "integrity": "sha512-YukiXak31pshonVWaeJ9cZ4xxWIlbsyn5qYUkG5pQ+usZ6l22ASXDIk0kHUQkIBNOCLRevFkHJjnGKXwZNtyZw==", - "license": "MIT", - "dependencies": { - "dayjs": "^1.10.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/code-block-writer": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", - "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", - "dev": true, - "license": "MIT" - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "license": "MIT", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "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/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/consola": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", - "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", - "license": "MIT", - "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-cmd": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", - "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^4.0.0", - "cross-spawn": "^7.0.0" - }, - "bin": { - "env-cmd": "bin/env-cmd.js" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "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==", - "license": "MIT", - "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==", - "license": "MIT", - "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==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz", - "integrity": "sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.6", - "@esbuild/android-arm": "0.25.6", - "@esbuild/android-arm64": "0.25.6", - "@esbuild/android-x64": "0.25.6", - "@esbuild/darwin-arm64": "0.25.6", - "@esbuild/darwin-x64": "0.25.6", - "@esbuild/freebsd-arm64": "0.25.6", - "@esbuild/freebsd-x64": "0.25.6", - "@esbuild/linux-arm": "0.25.6", - "@esbuild/linux-arm64": "0.25.6", - "@esbuild/linux-ia32": "0.25.6", - "@esbuild/linux-loong64": "0.25.6", - "@esbuild/linux-mips64el": "0.25.6", - "@esbuild/linux-ppc64": "0.25.6", - "@esbuild/linux-riscv64": "0.25.6", - "@esbuild/linux-s390x": "0.25.6", - "@esbuild/linux-x64": "0.25.6", - "@esbuild/netbsd-arm64": "0.25.6", - "@esbuild/netbsd-x64": "0.25.6", - "@esbuild/openbsd-arm64": "0.25.6", - "@esbuild/openbsd-x64": "0.25.6", - "@esbuild/openharmony-arm64": "0.25.6", - "@esbuild/sunos-x64": "0.25.6", - "@esbuild/win32-arm64": "0.25.6", - "@esbuild/win32-ia32": "0.25.6", - "@esbuild/win32-x64": "0.25.6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "license": "(MIT OR WTFPL)", - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "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" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "license": "MIT" - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/fix-dts-default-cjs-exports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz", - "integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "magic-string": "^0.30.17", - "mlly": "^1.7.4", - "rollup": "^4.34.8" - } - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "license": "MIT" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "license": "MIT", - "peer": true - }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "license": "MIT" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "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==", - "license": "MIT", - "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==", - "license": "MIT", - "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==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "license": "MIT" - }, - "node_modules/glob": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", - "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/node_modules/balanced-match": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-3.0.1.tgz", - "integrity": "sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-4.0.1.tgz", - "integrity": "sha512-YClrbvTCXGe70pU2JiEiPLYXO9gQkyxYeKpJIQHVS/gOs6EWMQP2RYBwjFLNT322Ji8TOC3IMPfsYCedNpzKfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^3.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.2.tgz", - "integrity": "sha512-+9TJCIYXgZ2Dm5LxVCFsa8jOm+evMwXHFI0JM1XROmkfkpz8/iLLDh+TwSmyIBrs6C6Xu9294/fq8cBA+P6AqA==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "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==", - "license": "MIT", - "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==", - "license": "MIT", - "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==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true, - "license": "ISC" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jose": { - "version": "4.15.9", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", - "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/jwa": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", - "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jwks-rsa": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.2.0.tgz", - "integrity": "sha512-PwchfHcQK/5PSydeKCs1ylNym0w/SSv8a62DgHJ//7x2ZclCoinlsjAfDxAAbpoTPybOum/Jgy+vkvMmKz89Ww==", - "license": "MIT", - "dependencies": { - "@types/express": "^4.17.20", - "@types/jsonwebtoken": "^9.0.4", - "debug": "^4.3.4", - "jose": "^4.15.4", - "limiter": "^1.1.5", - "lru-memoizer": "^2.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/jwks-rsa/node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/jwks-rsa/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jwt-decode": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", - "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "license": "MIT" - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/limiter": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", - "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/load-tsconfig": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", - "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "license": "MIT" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "license": "MIT" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true, - "license": "MIT" - }, - "node_modules/logform": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", - "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", - "license": "MIT", - "dependencies": { - "@colors/colors": "1.6.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/logform/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-memoizer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", - "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", - "license": "MIT", - "dependencies": { - "lodash.clonedeep": "^4.5.0", - "lru-cache": "6.0.0" - } - }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "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==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "license": "MIT" - }, - "node_modules/mlly": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", - "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.14.0", - "pathe": "^2.0.1", - "pkg-types": "^1.3.0", - "ufo": "^1.5.4" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/napi-build-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", - "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-abi": { - "version": "3.75.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", - "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "deprecated": "Use your platform's native DOMException instead", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-html-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.3.0.tgz", - "integrity": "sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g==", - "license": "MIT", - "dependencies": { - "node-html-parser": "^6.1.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/node-html-parser": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz", - "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==", - "license": "MIT", - "dependencies": { - "css-select": "^5.1.0", - "he": "1.2.0" - } - }, - "node_modules/nodemon": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", - "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/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==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "license": "MIT", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/open": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", - "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", - "license": "MIT", - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "wsl-utils": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openai": { - "version": "4.104.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.104.0.tgz", - "integrity": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@types/node": "^18.11.18", - "@types/node-fetch": "^2.6.4", - "abort-controller": "^3.0.0", - "agentkeepalive": "^4.2.1", - "form-data-encoder": "1.7.2", - "formdata-node": "^4.3.2", - "node-fetch": "^2.6.7" - }, - "bin": { - "openai": "bin/cli" - }, - "peerDependencies": { - "ws": "^8.18.0", - "zod": "^3.23.8" - }, - "peerDependenciesMeta": { - "ws": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "node_modules/openai/node_modules/@types/node": { - "version": "18.19.111", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.111.tgz", - "integrity": "sha512-90sGdgA+QLJr1F9X79tQuEut0gEYIfkX9pydI4XGRgvFo9g2JWswefI+WUSUHPYVBHYSEfTEqBxA5hQvAZB3Mw==", - "license": "MIT", - "peer": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/openai/node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "license": "MIT", - "peer": true - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", - "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-types": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.4", - "pathe": "^2.0.1" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/prebuild-install": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", - "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^2.0.0", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "license": "Apache-2.0" - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^11.0.0", - "package-json-from-dist": "^1.0.0" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.45.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz", - "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.45.1", - "@rollup/rollup-android-arm64": "4.45.1", - "@rollup/rollup-darwin-arm64": "4.45.1", - "@rollup/rollup-darwin-x64": "4.45.1", - "@rollup/rollup-freebsd-arm64": "4.45.1", - "@rollup/rollup-freebsd-x64": "4.45.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", - "@rollup/rollup-linux-arm-musleabihf": "4.45.1", - "@rollup/rollup-linux-arm64-gnu": "4.45.1", - "@rollup/rollup-linux-arm64-musl": "4.45.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", - "@rollup/rollup-linux-riscv64-gnu": "4.45.1", - "@rollup/rollup-linux-riscv64-musl": "4.45.1", - "@rollup/rollup-linux-s390x-gnu": "4.45.1", - "@rollup/rollup-linux-x64-gnu": "4.45.1", - "@rollup/rollup-linux-x64-musl": "4.45.1", - "@rollup/rollup-win32-arm64-msvc": "4.45.1", - "@rollup/rollup-win32-ia32-msvc": "4.45.1", - "@rollup/rollup-win32-x64-msvc": "4.45.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-applescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", - "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/source-map/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/source-map/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/sucrase/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tar-fs": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", - "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", - "license": "MIT", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "license": "MIT" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "dev": true, - "license": "ISC", - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT", - "peer": true - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/triple-beam": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", - "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/ts-morph": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-26.0.0.tgz", - "integrity": "sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ts-morph/common": "~0.27.0", - "code-block-writer": "^13.0.3" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "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" - }, - "bin": { - "ts-node": "dist/bin.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", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tsup": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.0.tgz", - "integrity": "sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-require": "^5.1.0", - "cac": "^6.7.14", - "chokidar": "^4.0.3", - "consola": "^3.4.0", - "debug": "^4.4.0", - "esbuild": "^0.25.0", - "fix-dts-default-cjs-exports": "^1.0.0", - "joycon": "^3.1.1", - "picocolors": "^1.1.1", - "postcss-load-config": "^6.0.1", - "resolve-from": "^5.0.0", - "rollup": "^4.34.8", - "source-map": "0.8.0-beta.0", - "sucrase": "^3.35.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.11", - "tree-kill": "^1.2.2" - }, - "bin": { - "tsup": "dist/cli-default.js", - "tsup-node": "dist/cli-node.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@microsoft/api-extractor": "^7.36.0", - "@swc/core": "^1", - "postcss": "^8.4.12", - "typescript": ">=4.5.0" - }, - "peerDependenciesMeta": { - "@microsoft/api-extractor": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "postcss": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/tsup/node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tsup/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ufo": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "license": "MIT" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause", - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/winston": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", - "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", - "license": "MIT", - "dependencies": { - "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.7.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.9.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", - "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", - "license": "MIT", - "dependencies": { - "logform": "^2.7.0", - "readable-stream": "^3.6.2", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/wsl-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", - "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", - "license": "MIT", - "dependencies": { - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - } - } -} diff --git a/collaborator-agent/package.json b/collaborator-agent/package.json deleted file mode 100644 index 6f5a20d5c..000000000 --- a/collaborator-agent/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "collab-ts", - "version": "0.0.0", - "license": "MIT", - "private": true, - "main": "dist/index", - "types": "dist/index", - "files": [ - "dist", - "README.md" - ], - "scripts": { - "clean": "npx rimraf ./dist", - "build": "npx tsup", - "start": "node ./dist/index.js", - "dev": "npx nodemon -w \"./src/**\" -e ts --exec \"node -r ts-node/register -r dotenv/config ./src/index.ts\"", - "dev:teamsfx": "npx cross-env NODE_OPTIONS='--inspect=9239' env-cmd --silent -f .localConfigs npm run dev", - "dev:teamsfx:playground": "npx cross-env NODE_OPTIONS='--inspect=9239' env-cmd --silent -f .localConfigs.playground npm run dev", - "dev:teamsfx:launch-playground": "env-cmd --silent -f env/.env.playground teamsapptester start", - "generate-mock": "npx ts-node src/mock/processMessageContent.ts" - }, - "dependencies": { - "@azure/identity": "^4.13.0", - "@microsoft/teams.ai": "^2.0.0", - "@microsoft/teams.api": "^2.0.0", - "@microsoft/teams.apps": "^2.0.0", - "@microsoft/teams.cards": "^2.0.0", - "@microsoft/teams.common": "^2.0.0", - "@microsoft/teams.graph": "^2.0.0", - "@microsoft/teams.openai": "^2.0.0", - "@types/better-sqlite3": "^7.6.12", - "better-sqlite3": "^11.9.0", - "node-html-markdown": "^1.3.0", - "winston": "^3.17.0", - "chrono-node": "^2.7.0" - }, - "devDependencies": { - "@types/node": "^22.5.4", - "@types/ws": "^8.18.1", - "dotenv": "^16.4.5", - "env-cmd": "latest", - "nodemon": "^3.1.4", - "rimraf": "^6.0.1", - "ts-morph": "^26.0.0", - "ts-node": "^10.9.2", - "tsup": "^8.4.0", - "typescript": "^5.8.3" - } -} diff --git a/collaborator-agent/src/agent/manager.ts b/collaborator-agent/src/agent/manager.ts deleted file mode 100644 index 6447cd6ae..000000000 --- a/collaborator-agent/src/agent/manager.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { ChatPrompt } from '@microsoft/teams.ai'; -import { OpenAIChatModel } from '@microsoft/teams.openai'; -import { generateManagerPrompt } from './prompt'; -import { getModelConfig } from '../utils/config'; -import { MessageContext } from '../utils/messageContext'; -import { extractTimeRange } from '../utils/utils'; -import { CAPABILITY_DEFINITIONS } from '../capabilities/registry'; -import { ILogger } from '@microsoft/teams.common'; - -export interface ManagerResult { - response: string; -} - -// Manager prompt that coordinates all sub-tasks -// ChatPrompt with a couple of utility functions and delegation functions for each capability -export class ManagerPrompt { - private prompt: ChatPrompt; - - constructor(private context: MessageContext, private logger: ILogger) { - this.prompt = this.createManagerPrompt(); - this.addCapabilities(); - } - - private createManagerPrompt(): ChatPrompt { - const managerModelConfig = getModelConfig('manager'); - let prompt = new ChatPrompt({ - instructions: generateManagerPrompt(CAPABILITY_DEFINITIONS), - model: new OpenAIChatModel({ - model: managerModelConfig.model, - apiKey: managerModelConfig.apiKey, - endpoint: managerModelConfig.endpoint, - apiVersion: managerModelConfig.apiVersion, - }), - messages: this.context.memory.values() - }).function('calculate_time_range', 'Parse natural language time expressions and calculate exact start/end times for time-based queries', { - type: 'object', - properties: { - time_phrase: { - type: 'string', - description: 'Natural language time expression extracted from the user request (e.g., "yesterday", "last week", "2 days ago", "past 3 hours")' - } - }, - required: ['time_phrase'] - }, async (time_phrase : string) => { - this.logger.debug(`🕒 FUNCTION CALL: calculate_time_range - parsing "${time_phrase}"`); - - const timeRange = extractTimeRange(time_phrase); - - this.context.startTime = timeRange ? timeRange?.from.toISOString() : this.context.endTime; - this.context.endTime = timeRange ? timeRange?.to.toISOString() : this.context.endTime; - - this.logger.debug(this.context.startTime); - this.logger.debug(this.context.endTime); - }).function('clear_conversation_history', 'Clear conversation history in the database for the current conversation', - async () => { - this.context.memory.clear(); - this.logger.debug('The conversation history has been cleared!'); - } - ); - - return prompt; - } - - private addCapabilities() { - for (const capability of CAPABILITY_DEFINITIONS) { - this.prompt.function( - `delegate_to_${capability.name}`, - `Delegate to ${capability.name} capability`, - async () => { - return capability.handler(this.context, this.logger.child(capability.name)); - } - ); - } - } - - async processRequest(): Promise { - try { - const response = await this.prompt.send(this.context.text); - return { - response: response.content || 'No response generated' - }; - - } catch (error) { - this.logger.error('❌ Error in Manager:', error); - return { - response: `Sorry, I encountered an error processing your request: ${error instanceof Error ? error.message : 'Unknown error'}` - }; - } - } -} diff --git a/collaborator-agent/src/agent/prompt.ts b/collaborator-agent/src/agent/prompt.ts deleted file mode 100644 index 2432cdeda..000000000 --- a/collaborator-agent/src/agent/prompt.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CapabilityDefinition } from "../capabilities/capability"; - -// Mapping capability names and descriptions to feed into manager prompt -// These fields are defined in CapabilityDefinition -export function generateManagerPrompt(capabilities: CapabilityDefinition[]): string { - const namesList = capabilities.map((cap, i) => `${i + 1}. **${cap.name}**`).join('\n'); - const capabilityDescriptions = capabilities.map((cap) => `${cap.manager_desc}`).join('\n'); - - return ` -You are the Manager for the Collaborator — a Microsoft Teams bot. You coordinate requests by deciding which specialized capability should handle each @mention. - - -${namesList} - - -1. Analyze the request’s intent and route it to the best-matching capability. -2. **If the request includes a time expression**, call calculate_time_range first using the exact phrase (e.g., "last week", "past 2 days"). -3. If no capability applies, respond conversationally and describe what Collaborator *can* help with. - - -Use the following descriptions to determine routing logic. Match based on intent, not just keywords. - -${capabilityDescriptions} - - -When using a function call to delegate, return the capability’s response **as-is**, with no added commentary or explanation. MAKE SURE TO NOT WRAP THE RESPONSE IN QUOTES. - -✅ GOOD: [capability response] -❌ BAD: Here’s what the Summarizer found: [capability response] - - -Be warm and helpful when the request is casual or unclear. Mention your abilities naturally. - -✅ Hi there! I can help with summaries, task tracking, or finding specific messages. -✅ Interesting! I specialize in conversation analysis and action items. Want help with that? -`; -} diff --git a/collaborator-agent/src/capabilities/actionItems/actionItems.ts b/collaborator-agent/src/capabilities/actionItems/actionItems.ts deleted file mode 100644 index 3f37d7fb5..000000000 --- a/collaborator-agent/src/capabilities/actionItems/actionItems.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { ChatPrompt } from '@microsoft/teams.ai'; -import { OpenAIChatModel } from '@microsoft/teams.openai'; -import { ACTION_ITEMS_PROMPT } from './prompt'; -import { BaseCapability, CapabilityDefinition } from '../capability'; -import { MessageContext } from '../../utils/messageContext'; -import { ILogger } from '@microsoft/teams.common'; - -export class ActionItemsCapability extends BaseCapability { - readonly name = 'action_items'; - - createPrompt(context: MessageContext): ChatPrompt { - const actionItemsModelConfig = this.getModelConfig('actionItems'); - - const prompt = new ChatPrompt({ - instructions: ACTION_ITEMS_PROMPT, - model: new OpenAIChatModel({ - model: actionItemsModelConfig.model, - apiKey: actionItemsModelConfig.apiKey, - endpoint: actionItemsModelConfig.endpoint, - apiVersion: actionItemsModelConfig.apiVersion, - }), - }).function( - 'generate_action_items', - 'Generate a list of action items based on the conversation', - async () => { - const allMessages = context.memory.getMessagesByTimeRange(context.startTime, context.endTime); - return JSON.stringify({ - messages: allMessages.map((msg: any) => ({ - timestamp: msg.timestamp, - name: msg.name, - content: msg.content - })) - }); - } - ); - - this.logger.debug(`Initialized Action Items Capability using ${context.members.length} members from context`); - return prompt; - } -} - -// Capability definition for manager registration -export const ACTION_ITEMS_CAPABILITY_DEFINITION: CapabilityDefinition = { - name: 'action_items', - manager_desc: `**Action Items**: Use for requests like: -- "next steps", "to-do", "assign task", "my tasks", "what needs to be done"`, - handler: async (context: MessageContext, logger: ILogger) => { - const actionItemsCapability = new ActionItemsCapability(logger); - const result = await actionItemsCapability.processRequest(context); - if (result.error) { - logger.error(`Error in Action Items Capability: ${result.error}`); - return `Error in Action Items Capability: ${result.error}`; - } - return result.response || 'No response from Action Items Capability'; - } -}; diff --git a/collaborator-agent/src/capabilities/actionItems/prompt.ts b/collaborator-agent/src/capabilities/actionItems/prompt.ts deleted file mode 100644 index afca6b92f..000000000 --- a/collaborator-agent/src/capabilities/actionItems/prompt.ts +++ /dev/null @@ -1,34 +0,0 @@ -export const ACTION_ITEMS_PROMPT = ` -You are the Action Items capability of the Collaborator bot. Your role is to analyze team conversations and extract a list of clear action items based on what people said. - - -Your job is to generate a concise, readable list of action items mentioned in the conversation. Focus on identifying: -- What needs to be done -- Who will do it (if mentioned) - - -- "I'll take care of this" -- "Can you follow up on..." -- "Let's finish this by tomorrow" -- "We still need to decide..." -- "Assign this to Alex" -- "We should check with finance" - - -- Return a plain text list of bullet points -- Each item should include a clear task and a person (if known) - - -- ✅ Sarah will create the draft proposal by Friday -- ✅ Alex will check budget numbers before the meeting -- ✅ Follow up with IT on access issues -- ✅ Decide final presenters by end of week - - -- If no one is assigned, just describe the task -- Skip greetings or summary text — just the action items -- Do not assign tasks unless the conversation suggests it - -Be clear, helpful, and concise. -`; - diff --git a/collaborator-agent/src/capabilities/actionItems/schema.ts b/collaborator-agent/src/capabilities/actionItems/schema.ts deleted file mode 100644 index d3bc0ef91..000000000 --- a/collaborator-agent/src/capabilities/actionItems/schema.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Function schemas for the action items capability - -// Not needed for this capability because it has no custom functions \ No newline at end of file diff --git a/collaborator-agent/src/capabilities/capability.ts b/collaborator-agent/src/capabilities/capability.ts deleted file mode 100644 index 94d158891..000000000 --- a/collaborator-agent/src/capabilities/capability.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { ChatPrompt } from '@microsoft/teams.ai'; -import { MessageContext } from '../utils/messageContext'; -import { getModelConfig } from '../utils/config'; -import { ILogger } from '@microsoft/teams.common'; - -/** - * Interface for capability definition used by the manager - */ -export interface CapabilityDefinition { - name: string; - manager_desc: string; - handler: (context: MessageContext, logger: ILogger) => Promise; -} - -/** - * Result interface for capability responses - */ -export interface CapabilityResult { - response: string; - error?: string; -} - -/** - * Base interface that all capabilities must implement - */ -export interface Capability { - /** - * The name/type of this capability - */ - readonly name: string; - - /** - * Create a ChatPrompt instance for this capability - */ - createPrompt(context: MessageContext): ChatPrompt; - - /** - * Process a user request using this capability - */ - processRequest(context: MessageContext): Promise; - -} - -/** - * Abstract base class that provides common functionality for all capabilities - */ -export abstract class BaseCapability implements Capability { - abstract readonly name: string; - - constructor(public logger: ILogger) { } - - abstract createPrompt(context: MessageContext): ChatPrompt; - - /** - * Default implementation of processRequest that creates a prompt and sends the request - */ - async processRequest(context: MessageContext): Promise { - try { - const prompt = this.createPrompt(context); - - const response = await prompt.send(context.text); - - return { - response: response.content || 'No response generated' - }; - } catch (error) { - return { - response: '', - error: error instanceof Error ? error.message : 'Unknown error' - }; - } - } - - /** - * Helper method to get model configuration - */ - protected getModelConfig(configKey: string) { - return getModelConfig(configKey); - } -} \ No newline at end of file diff --git a/collaborator-agent/src/capabilities/registry.ts b/collaborator-agent/src/capabilities/registry.ts deleted file mode 100644 index 18695ecb2..000000000 --- a/collaborator-agent/src/capabilities/registry.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Capabilities registry - imports all capability definitions for the manager - -// TO ADD NEW CAPABILITIES -// import the capability definition you've defined in the main file of your capability and add to the list below -import { CapabilityDefinition } from './capability'; -import { SUMMARIZER_CAPABILITY_DEFINITION } from './summarizer/summarize'; -import { ACTION_ITEMS_CAPABILITY_DEFINITION } from './actionItems/actionItems'; -import { SEARCH_CAPABILITY_DEFINITION } from './search/search'; - -export const CAPABILITY_DEFINITIONS: CapabilityDefinition[] = [ - SUMMARIZER_CAPABILITY_DEFINITION, - ACTION_ITEMS_CAPABILITY_DEFINITION, - SEARCH_CAPABILITY_DEFINITION -]; diff --git a/collaborator-agent/src/capabilities/search/prompt.ts b/collaborator-agent/src/capabilities/search/prompt.ts deleted file mode 100644 index 3971ae258..000000000 --- a/collaborator-agent/src/capabilities/search/prompt.ts +++ /dev/null @@ -1,19 +0,0 @@ -export const SEARCH_PROMPT = ` -You are the Search capability of the Collaborator. Your role is to help users find specific conversations or messages from their chat history. - -You can search through message history to find: -- Conversations between specific people -- Messages about specific topics -- Messages from specific time periods (time ranges will be pre-calculated by the Manager) -- Messages containing specific keywords - -When a user asks you to find something, use the search_messages function to search the database. - -RESPONSE FORMAT: -- Your search_messages function returns just the text associated with the search results -- Focus on creating a helpful, conversational summary that complements the citations -- Be specific about what was found and provide context about timing and participants -- If no results are found, suggest alternative search terms or broader criteria - -Be helpful and conversational in your responses. The user will see both your text response and interactive cards that let them jump to the original messages. -`; diff --git a/collaborator-agent/src/capabilities/search/schema.ts b/collaborator-agent/src/capabilities/search/schema.ts deleted file mode 100644 index 5bbefbf41..000000000 --- a/collaborator-agent/src/capabilities/search/schema.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ObjectSchema } from "@microsoft/teams.ai"; - -export interface SearchMessagesArgs { - keywords: string[]; - participants?: string[]; - max_results?: number; -} - -export const SEARCH_MESSAGES_SCHEMA : ObjectSchema = { - type: 'object', - properties: { - keywords: { - type: 'array', - items: { type: 'string' }, - description: 'Keywords to search for in the message content' - }, - participants: { - type: 'array', - items: { type: 'string' }, - description: 'Optional: list of participant names to filter messages by who said them' - }, - max_results: { - type: 'number', - description: 'Optional: maximum number of results to return (default is 5)' - } - }, - required: ['keywords'] -}; diff --git a/collaborator-agent/src/capabilities/search/search.ts b/collaborator-agent/src/capabilities/search/search.ts deleted file mode 100644 index 2a71b5f1e..000000000 --- a/collaborator-agent/src/capabilities/search/search.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ChatPrompt } from '@microsoft/teams.ai'; -import { OpenAIChatModel } from '@microsoft/teams.openai'; -import { CitationAppearance } from '@microsoft/teams.api'; -import { BaseCapability, CapabilityDefinition } from '../capability'; -import { MessageContext } from '../../utils/messageContext'; -import { MessageRecord } from '../../storage/storage'; -import { SEARCH_PROMPT } from './prompt'; -import { SEARCH_MESSAGES_SCHEMA, SearchMessagesArgs } from './schema'; -import { ILogger } from '@microsoft/teams.common'; - -const dateFormat = new Intl.DateTimeFormat("en-US"); - -export class SearchCapability extends BaseCapability { - readonly name = 'search'; - - createPrompt(context: MessageContext): ChatPrompt { - const searchModelConfig = this.getModelConfig('search'); - - const prompt = new ChatPrompt({ - instructions: SEARCH_PROMPT, - model: new OpenAIChatModel({ - model: searchModelConfig.model, - apiKey: searchModelConfig.apiKey, - endpoint: searchModelConfig.endpoint, - apiVersion: searchModelConfig.apiVersion, - }), - }).function('search_messages', 'Search the conversation for relevant messages', SEARCH_MESSAGES_SCHEMA, - async ({ keywords, participants, max_results }: SearchMessagesArgs) => { - - const selected = context.memory.getFilteredMessages(context.conversationId, keywords, context.startTime, context.endTime, participants, max_results); - this.logger.debug(selected); - - if (selected.length === 0) { - return 'No matching messages found.'; - } - - // Create and store citations - const citations = selected.map(msg => createCitationFromRecord(msg, context.conversationId)); - context.citations.push(...citations); - - // Return formatted message list with links - return selected.map(msg => { - const date = new Date(msg.timestamp).toLocaleString(); - const preview = msg.content.slice(0, 100); - const citation = citations.find(c => c.keywords?.includes(msg.name)); - const link = citation?.url || '#'; - return `• [${msg.name}](${link}) at ${date}: "${preview}"`; - }).join('\n'); - }); - - this.logger.debug('Initialized Search Capability!'); - return prompt; - } -} - -function createDeepLink(activityId: string, conversationId: string): string { - const contextParam = encodeURIComponent(JSON.stringify({ contextType: 'chat' })); - return `https://teams.microsoft.com/l/message/${encodeURIComponent(conversationId)}/${activityId}?context=${contextParam}`; -} - -function createCitationFromRecord(message: MessageRecord, conversationId: string): CitationAppearance { - const date = new Date(message.timestamp); - const formatted = dateFormat.format(date); - const preview = message.content.length > 120 ? message.content.slice(0, 120) + '...' : message.content; - const deepLink = createDeepLink(message.activity_id!, conversationId); - - return { - name: `Message from ${message.name}`, - url: deepLink, - abstract: `${formatted}: "${preview}"`, - keywords: [message.name] - }; -} - -// Capability definition for manager registration -export const SEARCH_CAPABILITY_DEFINITION: CapabilityDefinition = { - name: 'search', - manager_desc: `**Search**: Use for: -- "find", "search", "show me", "conversation with", "where did [person] say", "messages from last week"`, - handler: async (context: MessageContext, logger: ILogger) => { - const searchCapability = new SearchCapability(logger); - const result = await searchCapability.processRequest(context); - if (result.error) { - logger.error(`❌ Error in Search Capability: ${result.error}`); - return `Error in Search Capability: ${result.error}`; - } - return result.response || 'No response from Search Capability'; - } -}; \ No newline at end of file diff --git a/collaborator-agent/src/capabilities/summarizer/prompt.ts b/collaborator-agent/src/capabilities/summarizer/prompt.ts deleted file mode 100644 index 2d0bb80c6..000000000 --- a/collaborator-agent/src/capabilities/summarizer/prompt.ts +++ /dev/null @@ -1,22 +0,0 @@ -export const SUMMARY_PROMPT = ` -You are the Summarizer capability of the Collaborator that specializes in analyzing conversations between groups of people. -Your job is to retrieve and analyze conversation messages, then provide structured summaries with proper attribution. - - -The system uses the user's actual timezone from Microsoft Teams for all time calculations. -Time ranges will be pre-calculated by the Manager and passed to you as ISO timestamps when needed. - - -1. Use the appropriate function to retrieve the messages you need based on the user's request -2. If time ranges are specified in the request, they will be pre-calculated and provided as ISO timestamps -3. If no specific timespan is mentioned, default to the last 24 hours using get_messages_by_time_range -4. Analyze the retrieved messages and identify participants and topics -5. Return a BRIEF summary with proper participant attribution -6. Include participant names in your analysis and summary points -7. Be concise and focus on the key topics discussed - - -- Use bullet points for main topics -- Include participant names when attributing ideas or statements -- Provide a brief overview if requested -`; diff --git a/collaborator-agent/src/capabilities/summarizer/schema.ts b/collaborator-agent/src/capabilities/summarizer/schema.ts deleted file mode 100644 index 3c6ce0ade..000000000 --- a/collaborator-agent/src/capabilities/summarizer/schema.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Function schemas for the summarizer - -// Not needed for this capability because it has no custom functions diff --git a/collaborator-agent/src/capabilities/summarizer/summarize.ts b/collaborator-agent/src/capabilities/summarizer/summarize.ts deleted file mode 100644 index 1cfdaa262..000000000 --- a/collaborator-agent/src/capabilities/summarizer/summarize.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { ChatPrompt } from '@microsoft/teams.ai'; -import { OpenAIChatModel } from '@microsoft/teams.openai'; -import { SUMMARY_PROMPT } from './prompt'; -import { BaseCapability, CapabilityDefinition } from '../capability'; -import { MessageContext } from '../../utils/messageContext'; -import { ILogger } from '@microsoft/teams.common'; - -export class SummarizerCapability extends BaseCapability { - readonly name = 'summarizer'; - - createPrompt(context: MessageContext): ChatPrompt { - - const summarizerModelConfig = this.getModelConfig('summarizer'); - - const prompt = new ChatPrompt({ - instructions: SUMMARY_PROMPT, - model: new OpenAIChatModel({ - model: summarizerModelConfig.model, - apiKey: summarizerModelConfig.apiKey, - endpoint: summarizerModelConfig.endpoint, - apiVersion: summarizerModelConfig.apiVersion, - }), - }) - .function('summarize_conversation', 'Summarize the conversation history', - async () => { - const allMessages = context.memory.getMessagesByTimeRange(context.startTime, context.endTime); - return JSON.stringify({ - messages: allMessages.map((msg: any) => ({ - timestamp: msg.timestamp, - name: msg.name, - content: msg.content - })) - }); - } - ); - - this.logger.debug('Initialized Summarizer Capability!'); - return prompt; - } -} - -// Capability definition for manager registration -export const SUMMARIZER_CAPABILITY_DEFINITION: CapabilityDefinition = { - name: 'summarizer', - manager_desc: `**Summarizer**: Use for keywords like: -- "summarize", "overview", "recap", "conversation history" -- "what did we discuss", "catch me up", "who said what", "recent messages"`, - handler: async (context: MessageContext, logger: ILogger) => { - const summarizerCapability = new SummarizerCapability(logger); - const result = await summarizerCapability.processRequest(context); - if (result.error) { - logger.error(`Error in Summarizer Capability: ${result.error}`); - return `Error in Summarizer Capability: ${result.error}`; - } - return result.response || 'No response from Summarizer Capability'; - } -}; diff --git a/collaborator-agent/src/capabilities/template/prompt.ts b/collaborator-agent/src/capabilities/template/prompt.ts deleted file mode 100644 index 529f72a70..000000000 --- a/collaborator-agent/src/capabilities/template/prompt.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Template Capability Prompt - * - * This prompt defines how your capability should behave and respond to user requests. - * Customize this prompt to match your capability's specific domain and functionality. - */ - -export const TEMPLATE_PROMPT = `You are a specialized Template Capability within a Microsoft Teams collaboration agent. - -## Your Role and Responsibilities: -- TODO: Define your capability's specific purpose (e.g., "You handle document analysis tasks", "You manage calendar operations", etc.) -- TODO: Describe what types of user requests you should handle -- TODO: Explain your domain expertise - -## Core Functions: -- TODO: List the main functions your capability provides -- Example: "Analyze user requests for [specific domain]" -- Example: "Process [specific type of data]" -- Example: "Generate [specific type of output]" - -## Behavior Guidelines: -1. **Focus and Scope**: Only handle requests within your defined domain -2. **User Context**: Always consider the user's role, conversation context, and chat type (personal vs group) -3. **Time Awareness**: When time ranges are provided, use them to filter or scope your operations -4. **Error Handling**: If you cannot fulfill a request, explain why clearly and suggest alternatives -5. **Citations**: When referencing conversation content, provide proper citations - -## Response Format: -- Provide clear, actionable responses -- Use appropriate formatting (markdown, lists, etc.) for readability -- Include relevant context when helpful -- Be concise but comprehensive - -## Available Context: -- User information (name, ID, role) -- Conversation details (personal/group chat, participants) -- Time ranges (when specified by user) -- Conversation history access -- Storage capabilities for persistent data - -## TODO: Customize Instructions -Replace this section with specific instructions for your capability: - -Example for a Calendar Capability: -"When handling calendar requests: -- Check for scheduling conflicts -- Consider time zones -- Suggest optimal meeting times -- Format dates clearly -- Respect privacy in group chats" - -Example for a Document Capability: -"When handling document requests: -- Identify document types mentioned -- Suggest appropriate templates -- Provide formatting guidelines -- Respect access permissions -- Offer collaboration features" - -Remember: You are part of a larger agent system. Focus on your specialty and provide the best possible assistance within your domain.`; diff --git a/collaborator-agent/src/capabilities/template/schema.ts b/collaborator-agent/src/capabilities/template/schema.ts deleted file mode 100644 index ae07fff8f..000000000 --- a/collaborator-agent/src/capabilities/template/schema.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { ObjectSchema } from "@microsoft/teams.ai"; - -/** - * Template Function Arguments Interface - * Define the shape of arguments that your capability expects - */ -export interface TemplateFunctionArgs { - // TODO: Add your capability-specific parameters here - // Examples: - - // For a document capability: - // document_type: string; - // format_preference?: string; - - // For a calendar capability: - // meeting_duration?: number; - // preferred_time?: string; - - // For now, using a generic message parameter - message?: string; - action?: string; -} - -/** - * Template Function Schema - * This schema defines the function parameters that will be available to the AI model - */ -export const TEMPLATE_FUNCTION_SCHEMA: ObjectSchema = { - type: 'object', - properties: { - - // TODO: Add your capability-specific parameters here - // Examples: - - // For a document capability: - // document_type: { - // type: 'string', - // description: 'Type of document to work with (e.g., "report", "meeting-notes", "proposal")', - // enum: ['report', 'meeting-notes', 'proposal', 'other'] - // }, - // format_preference: { - // type: 'string', - // description: 'Preferred output format (e.g., "markdown", "json", "plain-text")' - // }, - - // For a calendar capability: - // meeting_duration: { - // type: 'number', - // description: 'Duration of the meeting in minutes' - // }, - // preferred_time: { - // type: 'string', - // description: 'Preferred time for the meeting (e.g., "morning", "afternoon", "evening")' - // }, - - // Generic parameters for now - message: { - type: 'string', - description: 'Optional message or additional context for the template capability' - }, - action: { - type: 'string', - description: 'Optional action to perform with the template capability' - } - }, - required: [] // TODO: Specify which parameters are required -}; diff --git a/collaborator-agent/src/capabilities/template/template.ts b/collaborator-agent/src/capabilities/template/template.ts deleted file mode 100644 index 638badb3c..000000000 --- a/collaborator-agent/src/capabilities/template/template.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { ChatPrompt } from '@microsoft/teams.ai'; -import { OpenAIChatModel } from '@microsoft/teams.openai'; -import { BaseCapability, CapabilityDefinition } from '../capability'; -import { MessageContext } from '../../utils/messageContext'; -import { TEMPLATE_PROMPT } from './prompt'; -import { TEMPLATE_FUNCTION_SCHEMA, TemplateFunctionArgs } from './schema'; -import { ILogger } from '@microsoft/teams.common'; - -/** - * Template Capability - Replace this description with your capability's purpose - * - * This template provides the basic structure for creating a new capability. - * Replace "Template" with your capability name throughout this file. - * - * Your capability should: - * 1. Have a clear, single responsibility - * 2. Process the user's request within its domain - * 3. Return structured results - * 4. Handle errors gracefully - */ -export class TemplateCapability extends BaseCapability { - readonly name = 'template'; - - createPrompt(context: MessageContext): ChatPrompt { - const templateModelConfig = this.getModelConfig('template'); - - const prompt = new ChatPrompt({ - instructions: TEMPLATE_PROMPT, - model: new OpenAIChatModel({ - model: templateModelConfig.model, - apiKey: templateModelConfig.apiKey, - endpoint: templateModelConfig.endpoint, - apiVersion: templateModelConfig.apiVersion, - }), - }).function('process_template_request', 'Process a template-specific request', TEMPLATE_FUNCTION_SCHEMA, - async (args: TemplateFunctionArgs) => { - - this.logger.debug(`🔧 Template Capability processing request with args:`, args); - - // TODO: Implement your capability's core logic here - - // Example: Basic request processing - const userRequest = context.text; - const userName = context.userName; - const isPersonalChat = context.isPersonalChat; - - // TODO: Replace this with your actual processing logic - const response = `Template capability received: "${userRequest}" from user ${userName} in ${isPersonalChat ? 'personal' : 'group'} chat. Args: ${JSON.stringify(args)}`; - - this.logger.debug(`✅ Template Capability completed successfully`); - - return response; - }); - - this.logger.debug('Initialized Template Capability!'); - return prompt; - } -} - -// Capability definition for manager registration -export const TEMPLATE_CAPABILITY_DEFINITION: CapabilityDefinition = { - name: 'template', - manager_desc: `**Template**: Use for: -- TODO: Add description of when to use this capability -- Example: "template requests", "custom processing", etc.`, - handler: async (context: MessageContext, logger: ILogger) => { - const templateCapability = new TemplateCapability(logger); - const result = await templateCapability.processRequest(context); - if (result.error) { - logger.error(`❌ Error in Template Capability: ${result.error}`); - return `Error in Template Capability: ${result.error}`; - } - return result.response || 'No response from Template Capability'; - } -}; diff --git a/collaborator-agent/src/index.ts b/collaborator-agent/src/index.ts deleted file mode 100644 index 1facbb23e..000000000 --- a/collaborator-agent/src/index.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { ManagedIdentityCredential } from '@azure/identity'; -import { TokenCredentials } from '@microsoft/teams.api'; -import { App } from '@microsoft/teams.apps'; -import { ConsoleLogger } from '@microsoft/teams.common'; -import { ManagerPrompt } from './agent/manager'; -import { SqliteKVStore } from './storage/storage'; -import { logModelConfigs, validateEnvironment } from './utils/config'; -import { createMessageContext } from './utils/messageContext'; -import { createMessageRecords, finalizePromptResponse } from './utils/utils'; - -const logger = new ConsoleLogger('collaborator', { level: 'debug' }); - -const createTokenFactory = () => { - return async (scope: string | string[], tenantId?: string): Promise => { - const managedIdentityCredential = new ManagedIdentityCredential({ - clientId: process.env.CLIENT_ID - }); - const scopes = Array.isArray(scope) ? scope : [scope]; - const tokenResponse = await managedIdentityCredential.getToken(scopes, { - tenantId: tenantId - }); - - return tokenResponse.token; - }; -}; - -// Configure authentication using TokenCredentials -const tokenCredentials: TokenCredentials = { - clientId: process.env.CLIENT_ID || '', - token: createTokenFactory() -}; - -const credentialOptions = process.env.BOT_TYPE === "UserAssignedMsi" ? { ...tokenCredentials } : undefined; - -const app = new App({ - ...credentialOptions, - logger -}); - -// Initialize storage -const storage = new SqliteKVStore(logger.child('storage')); - -// Initialize feedback storage -const feedbackStorage = storage; - -app.on('message.submit.feedback', async ({ activity }) => { - try { - const { reaction, feedback: feedbackJson } = activity.value.actionValue; - - if (!activity.replyToId) { - logger.warn(`No replyToId found for messageId ${activity.id}`); - return; - } - - const success = feedbackStorage.recordFeedback(activity.replyToId, reaction, feedbackJson); - - if (success) { - logger.debug(`✅ Successfully recorded feedback for message ${activity.replyToId}`); - } else { - logger.warn(`Failed to record feedback for message ${activity.replyToId}`); - } - } catch (error) { - logger.error(`Error processing feedback: ${error instanceof Error ? error.message : 'Unknown error'}`); - } -}); - -app.on('message', async ({ send, activity, api }) => { - - const botMentioned = activity.entities?.some((e) => e.type === 'mention'); - const context = botMentioned ? await createMessageContext(storage, activity, api) : await createMessageContext(storage, activity); - - let trackedMessages; - - if (!activity.conversation.isGroup || botMentioned) { // process request if One-on-One chat or if @mentioned in Groupchat - await send({ type: 'typing' }); - - const manager = new ManagerPrompt(context, logger.child('manager')); - const result = await manager.processRequest(); - const formattedResult = finalizePromptResponse(result.response, context, logger); - - const sent = await send(formattedResult); - formattedResult.id = sent.id; - - trackedMessages = createMessageRecords([activity, formattedResult]); - } else { - trackedMessages = createMessageRecords([activity]); - } - - logger.debug(trackedMessages); - await context.memory.addMessages(trackedMessages); -}); - -app.on('install.add', async ({ send }) => { - await send( - "👋 Hi! I'm the Collab Agent 🚀. I'll listen to the conversation and can provide summaries, action items, or search for a message when asked!" - ); -}); - -(async ( ) => { - try { - validateEnvironment(logger); - logModelConfigs(logger); - } catch (error) { - logger.error('❌ Configuration error:', error); - process.exit(1); - } - - await app.start(process.env.PORT || process.env.port || 3978); - logger.debug(`🚀 Collab Agent started on port ${process.env.PORT || process.env.port || 3978}`); -})(); - -export default app; diff --git a/collaborator-agent/src/storage/conversationMemory.ts b/collaborator-agent/src/storage/conversationMemory.ts deleted file mode 100644 index a01904226..000000000 --- a/collaborator-agent/src/storage/conversationMemory.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { SqliteKVStore } from './storage'; -import { MessageRecord } from './storage'; - -export class ConversationMemory { - - constructor(private store: SqliteKVStore, private conversationId: string) { - } - - async addMessages(messages: MessageRecord[]): Promise { - await this.store.addMessages(messages); - } - - values(): MessageRecord[] { - return this.store.get(this.conversationId) || []; - } - - length(): number { - return this.store.countMessages(this.conversationId); - } - - clear() { - this.store.clearConversation(this.conversationId); - } - - getMessagesByTimeRange(startTime: string, endTime: string): MessageRecord[] { - return this.store.getMessagesByTimeRange(this.conversationId, startTime, endTime); - } - - getRecentMessages(limit: number): MessageRecord[] { - return this.store.getRecentMessages(this.conversationId, limit); - } - - getFilteredMessages(conversationId: string, keywords: string[], startTime: string, endTime: string, participants?: string[], maxResults?: number): MessageRecord[] { - return this.store.getFilteredMessages(conversationId, keywords, startTime, endTime, participants, maxResults); - } -} \ No newline at end of file diff --git a/collaborator-agent/src/storage/storage.ts b/collaborator-agent/src/storage/storage.ts deleted file mode 100644 index 1e2a4c6b3..000000000 --- a/collaborator-agent/src/storage/storage.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { Message } from '@microsoft/teams.ai'; -import { ILogger } from '@microsoft/teams.common'; -import Database from 'better-sqlite3'; -import path from 'node:path'; - -interface MessageRecordExtension { - id?: number; - conversation_id?: string; - content: string; - name: string; - timestamp: string; - activity_id?: string; // used to create deeplink for Search Capability -} - -export type MessageRecord = Message & MessageRecordExtension; - -export interface FeedbackRecord { - id: number; - reply_to_id: string; - reaction: 'like' | 'dislike' | string; - feedback: string | null; - created_at: string; -} - -export class SqliteKVStore { - private db: Database.Database; - - constructor(private logger: ILogger, dbPath?: string) { - // Use environment variable if set, otherwise use provided dbPath, otherwise use default relative to project root - const resolvedDbPath = process.env.CONVERSATIONS_DB_PATH - ? path.resolve(process.env.CONVERSATIONS_DB_PATH) - : dbPath - ? dbPath - : path.resolve(__dirname, '../../src/storage/conversations.db'); - this.db = new Database(resolvedDbPath); - this.initializeDatabase(); - } - private initializeDatabase(): void { - this.db.exec(` - CREATE TABLE IF NOT EXISTS conversations ( - conversation_id TEXT NOT NULL, - role TEXT NOT NULL, - name TEXT NOT NULL, - content TEXT NOT NULL, - activity_id TEXT NOT NULL, - timestamp TEXT NOT NULL, - blob TEXT NOT NULL - ) - `); - this.db.exec(` - CREATE INDEX IF NOT EXISTS idx_conversation_id ON conversations(conversation_id); - `); - this.db.exec(` - CREATE TABLE IF NOT EXISTS feedback ( - reply_to_id TEXT NOT NULL, -- the Teams message ID you replied to - reaction TEXT NOT NULL CHECK (reaction IN ('like','dislike')), - feedback TEXT, -- JSON or plain text - created_at TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP) - ); - `); - } - - clearAll(): void { - this.db.exec('DELETE FROM conversations; VACUUM;'); - this.logger.debug('🧹 Cleared all conversations from SQLite store.'); - } - - get(conversationId: string): MessageRecord[] { - const stmt = this.db.prepare<{}, { blob: string }>( - 'SELECT blob FROM conversations WHERE conversation_id = ? ORDER BY timestamp ASC' - ); - return stmt.all(conversationId).map((row) => JSON.parse(row.blob) as MessageRecord); - } - - getMessagesByTimeRange(conversationId: string, startTime: string, endTime: string): MessageRecord[] { - const stmt = this.db.prepare<{}, { blob: string }>( - 'SELECT blob FROM conversations WHERE conversation_id = ? AND timestamp >= ? AND timestamp <= ? ORDER BY timestamp ASC' - ); - return stmt.all([conversationId, startTime, endTime]).map(row => JSON.parse(row.blob) as MessageRecord); - } - - getRecentMessages(conversationId: string, limit: number = 10): MessageRecord[] { - const messages = this.get(conversationId); - return messages.slice(-limit); - } - - clearConversation(conversationId: string): void { - const stmt = this.db.prepare('DELETE FROM conversations WHERE conversation_id = ?'); - stmt.run(conversationId); - } - - addMessages(messages: MessageRecord[]): void { - const stmt = this.db.prepare( - 'INSERT INTO conversations (conversation_id, role, name, content, activity_id, timestamp, blob) VALUES (?, ?, ?, ?, ?, ?, ?)' - ); - for (const message of messages) { - stmt.run(message.conversation_id, message.role, message.name, message.content, message.activity_id, message.timestamp, JSON.stringify(message)); - } - } - - countMessages(conversationId: string): number { - const stmt = this.db.prepare('SELECT COUNT(*) as count FROM conversations WHERE conversation_id = ?'); - const result = stmt.get(conversationId) as { count: number }; - return result.count; - } - - // Clear all messages for debugging (optional utility method) - clearAllMessages(): void { - try { - const stmt = this.db.prepare('DELETE FROM conversations'); - const result = stmt.run(); - this.logger.debug(`🧹 Cleared all conversations from database. Deleted ${result.changes} records.`); - } catch (error) { - this.logger.error('❌ Error clearing all conversations:', error); - } - } - - getFilteredMessages( - conversationId: string, - keywords: string[], - startTime: string, - endTime: string, - participants?: string[], - maxResults?: number, - ): MessageRecord[] { - const keywordClauses = keywords.map(() => `content LIKE ?`).join(' OR '); - const participantClauses = participants?.map(() => `name LIKE ?`).join(' OR '); - - // Base where clauses - const whereClauses = [ - `conversation_id = ?`, - `timestamp >= ?`, - `timestamp <= ?`, - `(${keywordClauses})` - ]; - - // Values for the prepared statement - const values: (string | number)[] = [ - conversationId, - startTime, - endTime, - ...keywords.map(k => `%${k.toLowerCase()}%`) - ]; - - // Add participant filters if present - if (participants && participants.length > 0) { - whereClauses.push(`(${participantClauses})`); - values.push(...participants.map(p => `%${p.toLowerCase()}%`)); - } - - const limit = maxResults && typeof maxResults === 'number' ? maxResults : 5; - values.push(limit); - - const query = ` - SELECT blob FROM conversations - WHERE ${whereClauses.join(' AND ')} - ORDER BY timestamp DESC - LIMIT ? -`; - - const stmt = this.db.prepare(query); - const rows = stmt.all(...values) as Array<{ blob: string }>; - return rows.map(row => JSON.parse(row.blob) as MessageRecord); - } - // ===== FEEDBACK MANAGEMENT ===== - - // Initialize feedback record for a message with optional delegated capability - // Insert one row per submission - recordFeedback(replyToId: string, reaction: 'like' | 'dislike' | string, feedbackJson?: unknown): boolean { - try { - const stmt = this.db.prepare(` - INSERT INTO feedback (reply_to_id, reaction, feedback) - VALUES (?, ?, ?) - `); - const result = stmt.run(replyToId, reaction, feedbackJson ? JSON.stringify(feedbackJson) : null); - return result.changes > 0; - } catch (err) { - this.logger.error(`❌ recordFeedback error:`, err); - return false; - } - } -} diff --git a/collaborator-agent/src/utils/config.ts b/collaborator-agent/src/utils/config.ts deleted file mode 100644 index f5b56473d..000000000 --- a/collaborator-agent/src/utils/config.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ILogger } from "@microsoft/teams.common"; - -// Configuration for AI models used by different capabilities -export interface ModelConfig { - model: string; - apiKey: string; - endpoint: string; - apiVersion: string; -} - -// Model configurations for different capabilities -export const AI_MODELS = { - // Manager Capability - Uses lighter, faster model for routing decisions - MANAGER: { - model: 'gpt-4o-mini', - apiKey: process.env.SECRET_AZURE_OPENAI_API_KEY!, - endpoint: process.env.AZURE_OPENAI_ENDPOINT!, - apiVersion: '2025-04-01-preview', - } as ModelConfig, - - // Summarizer Capability - Uses more capable model for complex analysis - SUMMARIZER: { - model: process.env.AZURE_OPENAI_DEPLOYMENT_NAME || 'gpt-4o', - apiKey: process.env.SECRET_AZURE_OPENAI_API_KEY!, - endpoint: process.env.AZURE_OPENAI_ENDPOINT!, - apiVersion: '2025-04-01-preview', - } as ModelConfig, - - // Action Items Capability - Uses capable model for analysis and task management - ACTION_ITEMS: { - model: process.env.AZURE_OPENAI_DEPLOYMENT_NAME || 'gpt-4o', - apiKey: process.env.SECRET_AZURE_OPENAI_API_KEY!, - endpoint: process.env.AZURE_OPENAI_ENDPOINT!, - apiVersion: '2025-04-01-preview', - } as ModelConfig, - - // Search Capability - Uses capable model for semantic search and deep linking - SEARCH: { - model: process.env.AZURE_OPENAI_DEPLOYMENT_NAME || 'gpt-4o', - apiKey: process.env.SECRET_AZURE_OPENAI_API_KEY!, - endpoint: process.env.AZURE_OPENAI_ENDPOINT!, - apiVersion: '2025-04-01-preview', - } as ModelConfig, - - // Default model configuration (fallback) - DEFAULT: { - model: process.env.AZURE_OPENAI_DEPLOYMENT_NAME || 'gpt-4o', - apiKey: process.env.SECRET_AZURE_OPENAI_API_KEY!, - endpoint: process.env.AZURE_OPENAI_ENDPOINT!, - apiVersion: '2025-04-01-preview', - } as ModelConfig, -}; - -// Helper function to get model config for a specific capability -export function getModelConfig(capabilityType: string): ModelConfig { - switch (capabilityType.toLowerCase()) { - case 'manager': - return AI_MODELS.MANAGER; - case 'summarizer': - return AI_MODELS.SUMMARIZER; - case 'actionitems': - return AI_MODELS.ACTION_ITEMS; - case 'search': - return AI_MODELS.SEARCH; - default: - return AI_MODELS.DEFAULT; - } -} - -// Environment validation -export function validateEnvironment(logger: ILogger): void { - const requiredEnvVars = ['SECRET_AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_ENDPOINT']; - const missing = requiredEnvVars.filter(envVar => !process.env[envVar]); - - if (missing.length > 0) { - throw new Error(`Missing required environment variables: ${missing.join(', ')}`); - } - logger.debug('✅ Environment validation passed'); -} - -// Model configuration logging -export function logModelConfigs(logger: ILogger): void { - logger.debug('🔧 AI Model Configuration:'); - logger.debug(` Manager Capability: ${AI_MODELS.MANAGER.model}`); - logger.debug(` Summarizer Capability: ${AI_MODELS.SUMMARIZER.model}`); - logger.debug(` Action Items Capability: ${AI_MODELS.ACTION_ITEMS.model}`); - logger.debug(` Search Capability: ${AI_MODELS.SEARCH.model}`); - logger.debug(` Default Model: ${AI_MODELS.DEFAULT.model}`); -} diff --git a/collaborator-agent/src/utils/messageContext.ts b/collaborator-agent/src/utils/messageContext.ts deleted file mode 100644 index 0a12d10ba..000000000 --- a/collaborator-agent/src/utils/messageContext.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { IMessageActivity } from "@microsoft/teams.api"; -import { Client } from "@microsoft/teams.api"; -import { SqliteKVStore } from "../storage/storage"; -import { ConversationMemory } from '../storage/conversationMemory'; -import { CitationAppearance } from "@microsoft/teams.api"; - -/** - * Context object that stores all important information for processing a message - */ -export interface MessageContext { - text: string; - conversationId: string; - userId?: string; - userName: string; - timestamp: string; - isPersonalChat: boolean; - activityId: string; - members: Array<{ name: string, id: string }>; // Available conversation members - memory: ConversationMemory; // get convo memory by agent type - startTime: string; - endTime: string; - citations: CitationAppearance[] -} - -async function getConversationParticipantsFromAPI( - api: Client, - conversationId: string -): Promise> { - try { - const members = await api.conversations.members(conversationId).get(); - - if (Array.isArray(members)) { - const participants = members.map((member) => ({ - name: member.name || 'Unknown', - id: member.aadObjectId || member.id - })); - return participants; - } else { - return []; - } - } catch (error) { - return []; - } -} - -/** - * Factory function to create a MessageContext from a Teams activity - */ -export async function createMessageContext( - storage: SqliteKVStore, - activity: IMessageActivity, - api?: Client -): Promise { - - const text = activity.text || ''; - const conversationId = `${activity.conversation.id}`; - const userId = activity.from.id; - const userName = activity.from.name || 'User'; - const timestamp = activity.timestamp?.toString() || 'Unknown'; - const isPersonalChat = activity.conversation.conversationType === 'personal'; - const activityId = activity.id; - - // Fetch members for group conversations - let members: Array<{ name: string, id: string }> = []; - if (api) { - members = await getConversationParticipantsFromAPI(api, conversationId); - } - - const memory = new ConversationMemory(storage, conversationId); - - const now = new Date(); - - const startTime = new Date(now.getTime() - 24 * 60 * 60 * 1000).toISOString(); - const endTime = now.toISOString(); - const citations: CitationAppearance[] = []; - - const context: MessageContext = { - text, - conversationId, - userId, - userName, - timestamp, - isPersonalChat, - activityId, - members, - memory, - startTime, - endTime, - citations - }; - - return context; -} - diff --git a/collaborator-agent/src/utils/utils.ts b/collaborator-agent/src/utils/utils.ts deleted file mode 100644 index bf697a06d..000000000 --- a/collaborator-agent/src/utils/utils.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { IMessageActivity, MessageActivity } from '@microsoft/teams.api'; -import * as chrono from 'chrono-node'; -import { MessageRecord } from '../storage/storage'; -import { MessageContext } from './messageContext'; -import { ILogger } from '@microsoft/teams.common'; - -/** - * Helper function to finalize and send a prompt response with citations - */ -export function finalizePromptResponse(text: string, context: MessageContext, logger: ILogger): MessageActivity { - const messageActivity = new MessageActivity(text) - .addAiGenerated() - .addFeedback(); - - // Add context.citations if provided - if (context.citations && context.citations.length > 0) { - logger.debug(`Adding ${context.citations.length} context.citations to message activity`); - context.citations.forEach((citation, index) => { - const citationNumber = index + 1; - messageActivity.addCitation(citationNumber, citation); - logger.debug(`Citation number ${citationNumber}`); - logger.debug(citation); - // The corresponding citation needs to be added in the message content - messageActivity.text += ` [${citationNumber}]`; - }); - } - - return messageActivity; -} - -/** - * Calculate start and end times based on lookback period - */ -export function extractTimeRange( - phrase: string, - now: Date = new Date() -): { from: Date; to: Date } | null { - const results = chrono.parse(phrase, now); - if (!results.length || !results[0].start) { - return null; - } - - const { start, end } = results[0]; - const from = start.date(); - const to = end?.date() ?? new Date(from.getTime() + 24 * 60 * 60 * 1000); // +1 day - - return { from, to }; -} - -export function createMessageRecords(activities: IMessageActivity[]): MessageRecord[] { - const conversation_id = activities[0].conversation.id; // get conversation ID from user message no matter what - return activities.map(activity => ({ - conversation_id: conversation_id, - role: activity.entities?.some( - (e: any) => e.additionalType?.includes('AIGeneratedContent') - ) ? 'model' : 'user', - content: activity.text?.replace(/<\/?at>/g, '') || '', - timestamp: activity.timestamp?.toString() || new Date().toISOString(), - activity_id: activity.id, - name: activity.from?.name || 'Collaborator' - })); -} - diff --git a/collaborator-agent/tsconfig.json b/collaborator-agent/tsconfig.json deleted file mode 100644 index c4efba63c..000000000 --- a/collaborator-agent/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "module": "NodeNext", - "target": "ESNext", - "moduleResolution": "NodeNext", - "strict": true, - "noImplicitAny": true, - "declaration": true, - "inlineSourceMap": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": false, - "resolveJsonModule": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "pretty": true, - "outDir": "dist", - "rootDir": "src", - "types": ["node"] - }, - "ts-node": { - "transpileOnly": true - } -} diff --git a/collaborator-agent/tsup.config.js b/collaborator-agent/tsup.config.js deleted file mode 100644 index f1bc6df4c..000000000 --- a/collaborator-agent/tsup.config.js +++ /dev/null @@ -1,13 +0,0 @@ -/** @type {import('tsup').Options} */ -module.exports = { - dts: true, - minify: false, - bundle: true, - sourcemap: true, - treeshake: true, - splitting: false, - clean: true, - outDir: 'dist', - entry: ['src/index.ts'], - format: ['cjs'], -}; diff --git a/collaborator-agent/web.config b/collaborator-agent/web.config deleted file mode 100644 index 9a7f2fa9b..000000000 --- a/collaborator-agent/web.config +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/react-retail-dashboard/assets/screenshot.png b/react-retail-dashboard/assets/screenshot.png index 4a2746481..8022a0730 100644 Binary files a/react-retail-dashboard/assets/screenshot.png and b/react-retail-dashboard/assets/screenshot.png differ diff --git a/travel-agent/M365Agent/m365agents.yml b/travel-agent/M365Agent/m365agents.yml index e62e6f2c6..b8a73c2e7 100644 --- a/travel-agent/M365Agent/m365agents.yml +++ b/travel-agent/M365Agent/m365agents.yml @@ -119,4 +119,3 @@ deploy: # or add it to your environment variable file. resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}} workingDirectory: ../TravelAgent -projectId: 429ee1b6-2cef-4594-9f47-943f32cb4a8c diff --git a/travel-agent/assets/sampleResponse.png b/travel-agent/assets/sampleResponse.png index 79221ca9b..01f59cd4c 100644 Binary files a/travel-agent/assets/sampleResponse.png and b/travel-agent/assets/sampleResponse.png differ diff --git a/validation-tool/sample_validation.md b/validation-tool/sample_validation.md new file mode 100644 index 000000000..d671d21e8 --- /dev/null +++ b/validation-tool/sample_validation.md @@ -0,0 +1,292 @@ +# Sample Validation Guide + +This document describes the validation process and requirements for the Microsoft 365 Agents Toolkit Samples repository. + +## Table of Contents + +- [CI Pipeline Overview](#ci-pipeline-overview) +- [Sample Config Validation](#sample-config-validation) +- [Sample Project Validation](#sample-project-validation) +- [Running Validation Locally](#running-validation-locally) +- [FAQ](#faq) + +--- + +## CI Pipeline Overview + +The validation workflow is located at `.github/workflows/ci-sample-validation.yml` and triggers on: + +| Trigger | Description | +|---------|-------------| +| `workflow_dispatch` | Manual trigger | +| `pull_request` | PR to `dev` or `main` branch | +| `push` | Push to `dev` or `main` branch | + +### Pipeline Steps + +1. **Validate Sample Config** - Validates the `.config/samples-config-v3.json` configuration file +2. **Run Sample Validation Tool Based on Sample Config** - Validates all internal samples in the config file +3. **Run Sample Validation Tool on New Sample** (PR only) - Validates changed folders in the PR + +### Validation Exceptions + +The following samples are excluded from validation: + +**Config file validation exceptions**: +- `incoming-webhook-notification` +- `hello-world-office-addin` + +**PR change validation exceptions**: +- `.config` +- `.devcontainer` +- `assets` +- `templates` +- `validation-tool` +- `basic-blazor-tab-app` +- `incoming-webhook-notification` +- `stocks-update-notification-bot-dotnet` +- `whos-next-meeting-app` + +**Note**: Deleted folders in PRs are automatically skipped (they no longer exist). + +--- + +## Sample Config Validation + +**Validation script**: `validation-tool/validate-config.js` + +Validates `.config/samples-config-v3.json` to ensure each sample entry contains the following **required fields**: + +| Field | Type | Description | +|-------|------|-------------| +| `id` | string | Unique sample identifier | +| `onboardDate` | string | Onboarding date | +| `shortId` | string | Short identifier | +| `shortDescription` | string | Brief description | +| `fullDescription` | string | Full description | +| `types` | array | Type array | +| `tags` | array | Tag array | +| `time` | string | Estimated completion time | +| `configuration` | string | Configuration info | +| `thumbnailPath` | string | Thumbnail path | +| `suggested` | boolean | Whether recommended | + +--- + +## Sample Project Validation + +**Validation script**: `validation-tool/validator.cjs` + +**Source directory**: `validation-tool/src/validators/` + +### Project Type Detection + +The validator automatically detects project type based on `samples-config-v3.json` tags: + +| Project Type | Detection | Structure | +|--------------|-----------|-----------| +| TypeScript/JS | Tags contain `TS` or `JS` | Files in root directory | +| C# | Tags contain `C#` | Files in `M365Agent/` subdirectory | + +### 1. Folder Structure Validation + +**Validator**: `folderStructureValidator.ts` + +#### TypeScript Projects + +**Required folders**: +- `.vscode/` +- `appPackage/` +- `env/` + +**Required files**: +- `appPackage/manifest.json` +- `appPackage/color.png` +- `appPackage/outline.png` +- `env/.env.dev` +- `m365agents.yml` +- `m365agents.local.yml` +- `README.md` + +#### C# Projects + +**Required folders**: +- `M365Agent/appPackage/` +- `.vscode/` (optional) +- `M365Agent/env/` (optional) + +**Required files**: +- `M365Agent/appPackage/manifest.json` +- `M365Agent/appPackage/color.png` +- `M365Agent/appPackage/outline.png` +- `M365Agent/m365agents.yml` +- `M365Agent/m365agents.local.yml` +- `README.md` +- `.sln` or `.slnx` solution file +- `.csproj` project file +- `appsettings.json` + +### 2. Teams App YAML Validation + +**Validator**: `teamsAppYamlValidator.ts` + +Validates `m365agents.yml` file: + +| Rule | Requirement | Severity | +|------|-------------|----------| +| Rule 1 | Must **NOT** have `projectId` field | Error | +| Rule 2 | Must have `provision` stage with `teamsApp/create` action | Error | +| Rule 3 | Must have `deploy` stage | Error | +| Rule 4 | Should have `publish` stage with `teamsApp/publishAppPackage` action | Warning | +| Rule 5 | `teamsApp/create` must write `TEAMS_APP_ID` environment variable | Error | +| Rule 6 | Must have `sampleTag` in format `repo:name` (e.g., `TeamsFx-Samples:sample-name`) | Error | + +### 3. App Manifest Validation + +**Validator**: `teamsAppManifestValidator.ts` + +Validates `appPackage/manifest.json`: + +| Rule | Requirement | Severity | +|------|-------------|----------| +| Rule 1 | `id` must be `${{TEAMS_APP_ID}}` (placeholder reference) | Error | +| Rule 2 | `manifestVersion` should be `1.22.0` (aligned with Microsoft 365 Agents Toolkit) | Warning | + +### 4. Environment File Validation + +**Validator**: `envValidator.ts` + +Validates `env/.env.dev` and `env/.env.local`: + +- **Variables allowed to have values**: `TEAMSFX_ENV`, `APP_NAME_SUFFIX`, `TEAMS_APP_NAME` +- **Other variables**: Must not have actual values (should be empty or placeholders) + +**Note**: C# projects do not require env files. + +### 5. Image Validation + +**Validator**: `imageValidator.ts` + +Validates images based on paths specified in `samples-config-v3.json` (`thumbnailPath` and `gifPath`): + +| File | Requirement | Severity | +|------|-------------|----------| +| Thumbnail (from `thumbnailPath`) | File is required to display in sample gallery | **Error** | +| Thumbnail aspect ratio | Aspect ratio **40:23** (e.g., 1600×920 or 800×460) | **Error** | +| GIF (from `gifPath`) | File should exist (optional) | Warning | +| GIF aspect ratio | Aspect ratio **40:23** (optional) | Warning | + +**Note**: If `thumbnailPath` or `gifPath` is not specified in `samples-config-v3.json`, the validator falls back to checking `assets/thumbnail.png` and `assets/sampleDemo.gif`. + +### 6. Package.json Validation + +**Validator**: `packageJsonValidator.ts` + +| Rule | Requirement | Severity | +|------|-------------|----------| +| `engines.node` | Must be compatible with Node.js 22 | Warning | + +**Note**: C# projects do not require package.json. + +--- + +## Running Validation Locally + +### Prerequisites + +```bash +cd validation-tool +npm install +``` + +### Validate Sample Config + +```bash +node validate-config.js ../.config/samples-config-v3.json +``` + +### Validate a Single Sample + +```bash +# Validate a specific sample +node validator.cjs -p ../coffee-agent + +# Or validate from the sample directory +cd ../coffee-agent +node ../validation-tool/validator.cjs +``` + +### Command Options + +``` +-p, --path Specify the sample project path to validate +-V, --version Show version +-h, --help Show help +``` + +### Rebuild (Optional) + +If you modified the validator source code: + +```bash +npm run build +``` + +--- + +## FAQ + +### Q1: Will the pipeline succeed if a PR deletes a sample? + +**Yes**, as long as the folder no longer exists, it will be automatically skipped with the message: +``` +Skipping deleted folder: 'sample-name' +``` + +You should also remove the sample from `samples-config-v3.json` to avoid confusion. + +### Q2: How do I skip validation for a specific sample? + +Add the sample ID to the `exceptions` array in the workflow file: + +```yaml +exceptions=("incoming-webhook-notification" "hello-world-office-addin" "your-sample-id") +``` + +### Q3: Are external samples validated? + +No. Samples with a `downloadUrlInfo` field in the config file are considered external samples and are automatically skipped. + +### Q4: How do I debug validation failures? + +1. Run the validation script locally to see detailed output +2. Check the GitHub Actions logs for specific error messages +3. Compare against this document to ensure all requirements are met + +--- + +## Validation Checklist + +Before submitting a PR, ensure your sample meets the following requirements: + +### For TypeScript/JS Projects + +- [ ] Contains required folder structure (`.vscode/`, `appPackage/`, `env/`) +- [ ] Contains required files (manifest.json, icons, env files, YAML configs, README) +- [ ] `m365agents.yml` has no `projectId` and has correct `sampleTag` +- [ ] `manifest.json` has `id` set to `${{TEAMS_APP_ID}}` +- [ ] Environment files contain no sensitive information or actual values +- [ ] `assets/thumbnail.png` has correct aspect ratio (40:23), `sampleDemo.gif` is optional +- [ ] `package.json` has `engines.node` compatible with Node.js 22 +- [ ] Added/updated configuration in `samples-config-v3.json` + +### For C# Projects + +- [ ] Contains required folder structure (`M365Agent/appPackage/`) +- [ ] Contains required files (manifest.json, icons, YAML configs, README) +- [ ] Has `.sln` or `.slnx` solution file +- [ ] Has `.csproj` project file +- [ ] Has `appsettings.json` file +- [ ] `m365agents.yml` has no `projectId` and has correct `sampleTag` +- [ ] `manifest.json` has `id` set to `${{TEAMS_APP_ID}}` +- [ ] Added/updated configuration in `samples-config-v3.json` with `C#` tag diff --git a/validation-tool/src/projectDetector.ts b/validation-tool/src/projectDetector.ts new file mode 100644 index 000000000..328d7dca0 --- /dev/null +++ b/validation-tool/src/projectDetector.ts @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import fs from "fs-extra"; +import path from "path"; + +export type ProjectType = "typescript" | "csharp"; + +export interface ProjectPaths { + projectType: ProjectType; + rootDir: string; + // The directory containing m365agents.yml, appPackage, env, etc. + agentDir: string; + // Relative path prefix for display (empty for TS, "M365Agent/" for C#) + displayPrefix: string; +} + +interface SampleConfig { + id: string; + tags: string[]; + thumbnailPath?: string; + gifPath?: string; +} + +interface SamplesConfig { + samples: SampleConfig[]; +} + +export interface SampleImagePaths { + thumbnailPath?: string; + gifPath?: string; +} + +/** + * Get image paths (thumbnailPath and gifPath) from samples-config-v3.json + */ +export async function getSampleImagePaths(projectDir: string): Promise { + const sampleId = path.basename(projectDir); + + // Try to find samples-config-v3.json relative to the project + const configPaths = [ + path.join(projectDir, "..", ".config", "samples-config-v3.json"), + path.join(projectDir, ".config", "samples-config-v3.json"), + ]; + + for (const configPath of configPaths) { + if (await fs.exists(configPath)) { + try { + const config: SamplesConfig = await fs.readJson(configPath); + const sample = config.samples.find(s => s.id === sampleId); + if (sample) { + return { + thumbnailPath: sample.thumbnailPath, + gifPath: sample.gifPath, + }; + } + } catch { + // Ignore parse errors + } + } + } + + return {}; +} + +/** + * Check if a sample is a C# project by reading samples-config-v3.json + */ +async function isCSharpFromConfig(projectDir: string): Promise { + const sampleId = path.basename(projectDir); + + // Try to find samples-config-v3.json relative to the project + const configPaths = [ + path.join(projectDir, "..", ".config", "samples-config-v3.json"), + path.join(projectDir, ".config", "samples-config-v3.json"), + ]; + + for (const configPath of configPaths) { + if (await fs.exists(configPath)) { + try { + const config: SamplesConfig = await fs.readJson(configPath); + const sample = config.samples.find(s => s.id === sampleId); + if (sample && sample.tags) { + return sample.tags.includes("C#"); + } + } catch { + // Ignore parse errors, fall back to folder detection + } + } + } + + return false; +} + +/** + * Detects the project type and returns the correct paths for validation. + * + * First checks samples-config-v3.json for "C#" tag, then falls back to folder structure. + * + * TypeScript projects have files directly in the root: + * - m365agents.yml + * - appPackage/ + * - env/ + * + * C# projects have an M365Agent subfolder containing these files: + * - M365Agent/m365agents.yml + * - M365Agent/appPackage/ + * - M365Agent/env/ + */ +export async function detectProjectType(projectDir: string): Promise { + // First, check samples-config-v3.json for C# tag + const isCSharp = await isCSharpFromConfig(projectDir); + + // Check if M365Agent subfolder exists with m365agents.yml + const m365AgentDir = path.join(projectDir, "M365Agent"); + const m365AgentYaml = path.join(m365AgentDir, "m365agents.yml"); + const hasM365AgentFolder = await fs.exists(m365AgentYaml); + + // If config says C# or has M365Agent folder structure + if (isCSharp || hasM365AgentFolder) { + return { + projectType: "csharp", + rootDir: projectDir, + agentDir: hasM365AgentFolder ? m365AgentDir : projectDir, + displayPrefix: hasM365AgentFolder ? "M365Agent/" : "", + }; + } + + // Default to TypeScript project structure + return { + projectType: "typescript", + rootDir: projectDir, + agentDir: projectDir, + displayPrefix: "", + }; +} + +/** + * Check if the project has a package.json (TypeScript/Node.js project) + */ +export async function hasPackageJson(projectDir: string): Promise { + return fs.exists(path.join(projectDir, "package.json")); +} diff --git a/validation-tool/src/validators/envValidator.ts b/validation-tool/src/validators/envValidator.ts index e10e8b951..2c04174c0 100644 --- a/validation-tool/src/validators/envValidator.ts +++ b/validation-tool/src/validators/envValidator.ts @@ -5,9 +5,10 @@ import dotenv from "dotenv"; import fs from "fs-extra"; import path from "path"; import { Result } from "../resultType"; +import { detectProjectType } from "../projectDetector"; /** - * Rule 1: env files shouldn’t contain actual value for the environment variables except for TEAMSFX_ENV and TEAMS_APP_NAME + * Rule 1: env files shouldn't contain actual value for the environment variables except for TEAMSFX_ENV and TEAMS_APP_NAME * * @param projectDir root directory of the project * @returns validation result @@ -21,13 +22,24 @@ export default async function validateEnvFiles( failed: [], warning: [], }; + + const projectPaths = await detectProjectType(projectDir); + const { agentDir, displayPrefix, projectType } = projectPaths; + const files = [".env.dev", ".env.local"]; + let foundAnyEnvFile = false; + for (const envFile of files) { - const filePath = path.join(projectDir, "env", envFile); + const filePath = path.join(agentDir, "env", envFile); if (!(await fs.exists(filePath))) { - result.warning = [`${path.join("env", envFile)} does not exist.`]; + // For C# projects, env files are optional + if (projectType === "csharp") { + continue; + } + result.warning.push(`${displayPrefix}${path.join("env", envFile)} does not exist.`); continue; } + foundAnyEnvFile = true; const fileContent = await fs.readFile(filePath, "utf8"); const envData = dotenv.parse(fileContent); const mappings = Object.entries(envData).map(([key, value]) => ({ @@ -43,13 +55,19 @@ export default async function validateEnvFiles( ) { continue; } else if (kv.value !== "") { - result.failed.push(`${envFile}: ${kv.name} should NOT have value.`); + result.failed.push(`${displayPrefix}${envFile}: ${kv.name} should NOT have value.`); validEnv = false; } } if (validEnv) { - result.passed.push(`${envFile}: All environment variables are valid.`); + result.passed.push(`${displayPrefix}${envFile}: All environment variables are valid.`); } } + + // For C# projects without env files, that's okay + if (projectType === "csharp" && !foundAnyEnvFile) { + result.passed.push(`C# project does not require env files.`); + } + return result; } diff --git a/validation-tool/src/validators/folderStructureValidator.ts b/validation-tool/src/validators/folderStructureValidator.ts index aa5911182..bfd6444be 100644 --- a/validation-tool/src/validators/folderStructureValidator.ts +++ b/validation-tool/src/validators/folderStructureValidator.ts @@ -5,19 +5,62 @@ import fs from "fs-extra"; import path from "path"; import { Result } from "../resultType"; +import { detectProjectType, ProjectPaths } from "../projectDetector"; -const requiredFolders = [".vscode", "appPackage", "env"]; -const requiredFiles = [ +// Required folders relative to agentDir +const requiredAgentFolders = ["appPackage"]; + +// Required files relative to agentDir +const requiredAgentFiles = [ "appPackage/manifest.json", "appPackage/color.png", "appPackage/outline.png", - "env/.env.dev", - // "env/.env.local", "m365agents.yml", "m365agents.local.yml", - "README.md", ]; +// Required files relative to rootDir +const requiredRootFiles = ["README.md"]; + +// Files/folders that are required for TypeScript projects but optional for C# projects +const tsOnlyFiles = ["env/.env.dev"]; +const tsOnlyFolders = ["env", ".vscode"]; + +async function checkFolderExists( + dir: string, + folder: string +): Promise { + const folderPath = path.join(dir, folder); + if (!(await fs.exists(folderPath))) { + return false; + } + const stat = await fs.stat(folderPath); + return stat.isDirectory(); +} + +async function checkFileExists(dir: string, file: string): Promise { + const filePath = path.join(dir, file); + if (!(await fs.exists(filePath))) { + return false; + } + const stat = await fs.stat(filePath); + return stat.isFile(); +} + +/** + * Find files matching a glob pattern in a directory + */ +async function findFilesWithExtension( + dir: string, + extension: string +): Promise { + if (!(await fs.exists(dir))) { + return []; + } + const files = await fs.readdir(dir); + return files.filter((file) => file.endsWith(extension)); +} + export default async function validateFolderStructure( projectDir: string ): Promise { @@ -27,29 +70,125 @@ export default async function validateFolderStructure( failed: [], warning: [], }; - for (const folder of requiredFolders) { - if ( - !(await fs.exists(path.join(projectDir, folder))) || - !(await fs - .stat(path.join(projectDir, folder)) - .then((stat) => stat.isDirectory())) - ) { + + const projectPaths: ProjectPaths = await detectProjectType(projectDir); + const { agentDir, rootDir, displayPrefix, projectType } = projectPaths; + + // Check required folders in agentDir + for (const folder of requiredAgentFolders) { + const displayPath = displayPrefix + folder; + if (await checkFolderExists(agentDir, folder)) { + result.passed.push(`Project has "${displayPath}" folder.`); + } else { + result.failed.push(`Project should have "${displayPath}" folder.`); + } + } + + // Check TypeScript-only folders (optional for C# projects) + for (const folder of tsOnlyFolders) { + // Check both in agentDir and rootDir + const inAgent = await checkFolderExists(agentDir, folder); + const inRoot = await checkFolderExists(rootDir, folder); + if (inAgent || inRoot) { + const location = inAgent ? displayPrefix + folder : folder; + result.passed.push(`Project has "${location}" folder.`); + } else if (projectType === "typescript") { result.failed.push(`Project should have "${folder}" folder.`); + } + // For C# projects, these folders are optional - no warning needed + } + + // Check required files in agentDir + for (const file of requiredAgentFiles) { + const displayPath = displayPrefix + file; + if (await checkFileExists(agentDir, file)) { + result.passed.push(`Project has "${displayPath}" file.`); } else { - result.passed.push(`Project has "${folder}" folder.`); + result.failed.push(`Project should have "${displayPath}" file.`); } } - for (const file of requiredFiles) { - if ( - !(await fs.exists(path.join(projectDir, file))) || - !(await fs - .stat(path.join(projectDir, file)) - .then((stat) => stat.isFile())) - ) { + + // Check required files in rootDir + for (const file of requiredRootFiles) { + if (await checkFileExists(rootDir, file)) { + result.passed.push(`Project has "${file}" file.`); + } else { + result.failed.push(`Project should have "${file}" file.`); + } + } + + // Check TypeScript-only files (optional for C# projects) + for (const file of tsOnlyFiles) { + // Check both in agentDir and rootDir + const inAgent = await checkFileExists(agentDir, file); + const inRoot = await checkFileExists(rootDir, file); + if (inAgent || inRoot) { + const location = inAgent ? displayPrefix + file : file; + result.passed.push(`Project has "${location}" file.`); + } else if (projectType === "typescript") { result.failed.push(`Project should have "${file}" file.`); + } + // For C# projects, these files are optional - no warning needed + } + + // C# specific checks + if (projectType === "csharp") { + // Check for .sln or .slnx file in rootDir + const slnFiles = await findFilesWithExtension(rootDir, ".sln"); + const slnxFiles = await findFilesWithExtension(rootDir, ".slnx"); + if (slnFiles.length > 0 || slnxFiles.length > 0) { + const solutionFile = slnFiles.length > 0 ? slnFiles[0] : slnxFiles[0]; + result.passed.push(`Project has solution file "${solutionFile}".`); } else { - result.passed.push(`Project has "${file}" file.`); + result.failed.push(`C# project should have a .sln or .slnx solution file.`); + } + + // Check for .csproj file (can be in various subdirectories) + const csprojInRoot = await findFilesWithExtension(rootDir, ".csproj"); + let foundCsproj = csprojInRoot.length > 0; + let csprojLocation = csprojInRoot.length > 0 ? csprojInRoot[0] : ""; + + // Also check common C# project directories + const csharpProjectDirs = ["M365Agent", "TravelAgent", "AzureAgentToM365ATK"]; + for (const subdir of csharpProjectDirs) { + const subdirPath = path.join(rootDir, subdir); + if (await fs.exists(subdirPath)) { + const csprojFiles = await findFilesWithExtension(subdirPath, ".csproj"); + if (csprojFiles.length > 0) { + foundCsproj = true; + csprojLocation = `${subdir}/${csprojFiles[0]}`; + break; + } + } + } + + if (foundCsproj) { + result.passed.push(`Project has .csproj file "${csprojLocation}".`); + } else { + result.failed.push(`C# project should have a .csproj project file.`); + } + + // Check for appsettings.json (can be in various subdirectories) + let foundAppsettings = await checkFileExists(rootDir, "appsettings.json"); + let appsettingsLocation = "appsettings.json"; + + if (!foundAppsettings) { + for (const subdir of csharpProjectDirs) { + const subdirPath = path.join(rootDir, subdir); + if (await checkFileExists(subdirPath, "appsettings.json")) { + foundAppsettings = true; + appsettingsLocation = `${subdir}/appsettings.json`; + break; + } + } + } + + if (foundAppsettings) { + result.passed.push(`Project has "${appsettingsLocation}" file.`); + } else { + result.failed.push(`C# project should have an appsettings.json file.`); } } + return result; } diff --git a/validation-tool/src/validators/imageValidator.ts b/validation-tool/src/validators/imageValidator.ts index 210b055a1..aaaff9ac4 100644 --- a/validation-tool/src/validators/imageValidator.ts +++ b/validation-tool/src/validators/imageValidator.ts @@ -5,9 +5,12 @@ import fs from "fs-extra"; import path from "path"; import sizeOf from "image-size"; import { Result } from "../resultType"; +import { getSampleImagePaths } from "../projectDetector"; /** * Rule 1: Images should have 1600*920/800*460 resolution or same ratio. + * - Thumbnail is required to display in sample gallery (path from samples-config-v3.json). + * - GIF is fully optional - both existence and aspect ratio are warnings only. * * @param projectDir root directory of the project * @returns validation result @@ -19,20 +22,72 @@ export default async function validateImage(projectDir: string): Promise failed: [], warning: [], }; - const defaultImages = ["thumbnail.png", "sampleDemo.gif"]; - for (const image of defaultImages) { - const imageDefaultPath = path.join(projectDir, "assets", image); - const imageName = path.join("assets", image); - if (!await fs.exists(imageDefaultPath)) { - result.warning.push(`${imageName} does not exist.`); - continue; + + // Get image paths from samples-config-v3.json + const imagePaths = await getSampleImagePaths(projectDir); + + // Check thumbnail (required for sample gallery) + if (imagePaths.thumbnailPath) { + const thumbnailFullPath = path.join(projectDir, imagePaths.thumbnailPath); + if (await fs.exists(thumbnailFullPath)) { + const dimensions = sizeOf(thumbnailFullPath); + if (dimensions.width && dimensions.height && dimensions.width / dimensions.height === 40/23) { + result.passed.push(`${imagePaths.thumbnailPath} has 1600*920/800*460 resolution or same ratio.`); + } else { + result.failed.push(`${imagePaths.thumbnailPath} must have 1600*920/800*460 resolution or same ratio (40:23 aspect ratio). Current: ${dimensions.width}x${dimensions.height}.`); + } + } else { + result.failed.push(`${imagePaths.thumbnailPath} is required to display in sample gallery but does not exist.`); + } + } else { + // Fallback: check default paths if not specified in config + const thumbnailExtensions = ["png", "jpg", "jpeg"]; + let thumbnailFound = false; + for (const ext of thumbnailExtensions) { + const thumbnailPath = path.join(projectDir, "assets", `thumbnail.${ext}`); + if (await fs.exists(thumbnailPath)) { + thumbnailFound = true; + const dimensions = sizeOf(thumbnailPath); + if (dimensions.width && dimensions.height && dimensions.width / dimensions.height === 40/23) { + result.passed.push(`assets/thumbnail.${ext} has 1600*920/800*460 resolution or same ratio.`); + } else { + result.failed.push(`assets/thumbnail.${ext} must have 1600*920/800*460 resolution or same ratio (40:23 aspect ratio). Current: ${dimensions.width}x${dimensions.height}.`); + } + break; + } + } + if (!thumbnailFound) { + result.failed.push(`Thumbnail image is required to display in sample gallery. Please add thumbnailPath to samples-config-v3.json or add assets/thumbnail.png.`); + } + } + + // Check gif (optional - both existence and aspect ratio are optional) + if (imagePaths.gifPath) { + const gifFullPath = path.join(projectDir, imagePaths.gifPath); + if (await fs.exists(gifFullPath)) { + const dimensions = sizeOf(gifFullPath); + if (dimensions.width && dimensions.height && dimensions.width / dimensions.height === 40/23) { + result.passed.push(`${imagePaths.gifPath} has 1600*920/800*460 resolution or same ratio.`); + } else { + result.warning.push(`${imagePaths.gifPath} does not have 40:23 aspect ratio. Current: ${dimensions.width}x${dimensions.height}. (Optional)`); + } + } else { + result.warning.push(`${imagePaths.gifPath} does not exist. (Optional)`); } - const dimensions = sizeOf(imageDefaultPath); - if (dimensions.width && dimensions.height && dimensions.width / dimensions.height === 40/23) { - result.passed.push(`${imageName} has 1600*920/800*460 resolution or same ratio.`); + } else { + // Fallback: check default path if not specified in config (optional) + const sampleDemoPath = path.join(projectDir, "assets", "sampleDemo.gif"); + if (await fs.exists(sampleDemoPath)) { + const dimensions = sizeOf(sampleDemoPath); + if (dimensions.width && dimensions.height && dimensions.width / dimensions.height === 40/23) { + result.passed.push(`assets/sampleDemo.gif has 1600*920/800*460 resolution or same ratio.`); + } else { + result.warning.push(`assets/sampleDemo.gif does not have 40:23 aspect ratio. Current: ${dimensions.width}x${dimensions.height}. (Optional)`); + } } else { - result.failed.push(`${imageName} should have 1600*920/800*460 resolution or same ratio.`); + result.warning.push(`Sample demo gif does not exist. (Optional)`); } } + return result; } diff --git a/validation-tool/src/validators/packageJsonValidator.ts b/validation-tool/src/validators/packageJsonValidator.ts index 4fd75efa6..90144492d 100644 --- a/validation-tool/src/validators/packageJsonValidator.ts +++ b/validation-tool/src/validators/packageJsonValidator.ts @@ -6,9 +6,11 @@ import fs from "fs-extra"; import path from "path"; import { Result } from "../resultType"; +import { detectProjectType } from "../projectDetector"; /** * Rule 1: 'engines.node' field should be compatible with 22. + * Note: C# projects don't have package.json, so this validation is skipped for them. * * @param projectDir root directory of the project * @returns validation result @@ -22,8 +24,17 @@ export default async function validatePackageJson( failed: [], warning: [], }; + + const projectPaths = await detectProjectType(projectDir); + const { projectType } = projectPaths; + const filePath = path.join(projectDir, "package.json"); if (!(await fs.exists(filePath))) { + // C# projects don't have package.json + if (projectType === "csharp") { + result.passed = [`C# project does not require package.json.`]; + return result; + } result.failed = [`package.json does not exist.`]; return result; } diff --git a/validation-tool/src/validators/teamsAppManifestValidator.ts b/validation-tool/src/validators/teamsAppManifestValidator.ts index 6750eee26..3cccd09d5 100644 --- a/validation-tool/src/validators/teamsAppManifestValidator.ts +++ b/validation-tool/src/validators/teamsAppManifestValidator.ts @@ -5,6 +5,7 @@ import fs from "fs-extra"; import path from "path"; import semver from "semver"; import { Result } from "../resultType"; +import { detectProjectType } from "../projectDetector"; const LATEST_MANIFEST_VERSION = "1.22.0"; const MANIFEST_PREVIEW_VERSION = "devPreview"; @@ -26,9 +27,12 @@ export default async function validateTeamsAppManifest( warning: [], }; - const manifestFile = path.join(projectDir, "appPackage", "manifest.json"); + const projectPaths = await detectProjectType(projectDir); + const { agentDir, displayPrefix } = projectPaths; + + const manifestFile = path.join(agentDir, "appPackage", "manifest.json"); if (!(await fs.exists(manifestFile))) { - result.failed = [`appPackage/manifest.json does not exist.`]; + result.failed = [`${displayPrefix}appPackage/manifest.json does not exist.`]; return result; } const fileContent = await fs.readFile(manifestFile, "utf8"); diff --git a/validation-tool/src/validators/teamsAppYamlValidator.ts b/validation-tool/src/validators/teamsAppYamlValidator.ts index 4e2a9b4c3..23f28404c 100644 --- a/validation-tool/src/validators/teamsAppYamlValidator.ts +++ b/validation-tool/src/validators/teamsAppYamlValidator.ts @@ -6,16 +6,24 @@ import path from "path"; import YAML from "yaml"; import { Result } from "../resultType"; +import { detectProjectType } from "../projectDetector"; -const lifecycleActions = [ +// Required lifecycle stages +const requiredLifecycleActions = [ { name: "provision", actions: ["teamsApp/create"], + required: true, }, { name: "deploy", actions: [], + required: true, }, +]; + +// Optional lifecycle stages (will generate warning if missing) +const optionalLifecycleActions = [ { name: "publish", actions: ["teamsApp/publishAppPackage"], @@ -26,7 +34,7 @@ const lifecycleActions = [ * Rule 1: no projectId * Rule 2: has provision lifecycle actions * Rule 3: has deploy lifecycle actions - * Rule 4: has publish lifecycle actions + * Rule 4: has publish lifecycle actions (warning if missing) * Rule 5: provision has 'teamsApp/create' action which has TEAMS_APP_ID env variable * Rule 6: has sampleTag with format 'repo:name' * @@ -43,9 +51,12 @@ export default async function validateTeamsAppYaml( warning: [], }; - const yamlFile = path.join(projectDir, "m365agents.yml"); + const projectPaths = await detectProjectType(projectDir); + const { agentDir, displayPrefix } = projectPaths; + + const yamlFile = path.join(agentDir, "m365agents.yml"); if (!(await fs.exists(yamlFile))) { - result.failed = [`m365agents.yml does not exist.`]; + result.failed = [`${displayPrefix}m365agents.yml does not exist.`]; return result; } const fileContent = await fs.readFile(yamlFile, "utf8"); @@ -59,8 +70,8 @@ export default async function validateTeamsAppYaml( result.passed.push(`Project has no projectId in m365agents.yml.`); } - // Rule 2: lifecycle check - for (const lifecycle of lifecycleActions) { + // Rule 2: required lifecycle check + for (const lifecycle of requiredLifecycleActions) { const actions = yamlData[lifecycle.name] as any[]; const failures: string[] = []; if (!actions) { @@ -80,14 +91,14 @@ export default async function validateTeamsAppYaml( `Project should have '${actionName}' action in ${lifecycle.name} stage.` ); } - // Rule 3: special checks for 'teamsApp/create' action + // Rule 5: special checks for 'teamsApp/create' action if (lifecycle.name === "provision" && actionName === "teamsApp/create") { const actionIndex = actions.findIndex( (action: { uses: string }) => action.uses === actionName ); if (actionIndex >= 0) { const action = actions[actionIndex]; - if (action.writeToEnvironmentFile.teamsAppId === "TEAMS_APP_ID") { + if (action.writeToEnvironmentFile?.teamsAppId === "TEAMS_APP_ID") { result.passed.push( `Project has 'teamsApp/create' action which has TEAMS_APP_ID env variable.` ); @@ -107,7 +118,37 @@ export default async function validateTeamsAppYaml( result.failed.push(...failures); } } - // Rule 4: sampleTag check + + // Rule 4: optional lifecycle check (warning if missing) + for (const lifecycle of optionalLifecycleActions) { + const actions = yamlData[lifecycle.name] as any[]; + if (!actions) { + result.warning.push( + `Project does not have '${lifecycle.name}' stage in m365agents.yml.` + ); + continue; + } + let hasAllActions = true; + for (const actionName of lifecycle.actions) { + if ( + actions.findIndex( + (action: { uses: string }) => action.uses === actionName + ) < 0 + ) { + result.warning.push( + `Project does not have '${actionName}' action in ${lifecycle.name} stage.` + ); + hasAllActions = false; + } + } + if (hasAllActions) { + result.passed.push( + `Project has all actions in ${lifecycle.name} stage.` + ); + } + } + + // Rule 6: sampleTag check const sampleTagRegex = /^([\w-]+):([\w-]+)$/g; const sampleTag = ( yamlData?.additionalMetadata as { sampleTag: string } | undefined diff --git a/validation-tool/validator.cjs b/validation-tool/validator.cjs index 846e38e7c..e9b9aa731 100644 --- a/validation-tool/validator.cjs +++ b/validation-tool/validator.cjs @@ -1,184 +1,184 @@ #! /usr/bin/env node -"use strict";var jm=Object.create;var fl=Object.defineProperty;var Hm=Object.getOwnPropertyDescriptor;var Bm=Object.getOwnPropertyNames;var Um=Object.getPrototypeOf,Vm=Object.prototype.hasOwnProperty;var p=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var Wm=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Bm(e))!Vm.call(n,i)&&i!==t&&fl(n,i,{get:()=>e[i],enumerable:!(r=Hm(e,i))||r.enumerable});return n};var le=(n,e,t)=>(t=n!=null?jm(Um(n)):{},Wm(e||!n||!n.__esModule?fl(t,"default",{value:n,enumerable:!0}):t,n));var Kt=p(Ji=>{var Yn=class extends Error{constructor(e,t,r){super(r),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},Yi=class extends Yn{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};Ji.CommanderError=Yn;Ji.InvalidArgumentError=Yi});var Jn=p(zi=>{var{InvalidArgumentError:Gm}=Kt(),Xi=class{constructor(e,t){switch(this.description=t||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,r)=>{if(!this.argChoices.includes(t))throw new Gm(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,r):t},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function Km(n){let e=n.name()+(n.variadic===!0?"...":"");return n.required?"<"+e+">":"["+e+"]"}zi.Argument=Xi;zi.humanReadableArgName=Km});var Zi=p(hl=>{var{humanReadableArgName:Ym}=Jn(),Qi=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let t=e.commands.filter(r=>!r._hidden);if(e._hasImplicitHelpCommand()){let[,r,i]=e._helpCommandnameAndArgs.match(/([^ ]+) *(.*)/),s=e.createCommand(r).helpOption(!1);s.description(e._helpCommandDescription),i&&s.arguments(i),t.push(s)}return this.sortSubcommands&&t.sort((r,i)=>r.name().localeCompare(i.name())),t}compareOptions(e,t){let r=i=>i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"");return r(e).localeCompare(r(t))}visibleOptions(e){let t=e.options.filter(s=>!s.hidden),r=e._hasHelpOption&&e._helpShortFlag&&!e._findOption(e._helpShortFlag),i=e._hasHelpOption&&!e._findOption(e._helpLongFlag);if(r||i){let s;r?i?s=e.createOption(e._helpFlags,e._helpDescription):s=e.createOption(e._helpShortFlag,e._helpDescription):s=e.createOption(e._helpLongFlag,e._helpDescription),t.push(s)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let r=e.parent;r;r=r.parent){let i=r.options.filter(s=>!s.hidden);t.push(...i)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e._args.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||""}),e._args.find(t=>t.description)?e._args:[]}subcommandTerm(e){let t=e._args.map(r=>Ym(r)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(t?" "+t:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((r,i)=>Math.max(r,t.subcommandTerm(i).length),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((r,i)=>Math.max(r,t.optionTerm(i).length),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((r,i)=>Math.max(r,t.optionTerm(i).length),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((r,i)=>Math.max(r,t.argumentTerm(i).length),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+"|"+e._aliases[0]);let r="";for(let i=e.parent;i;i=i.parent)r=i.name()+" "+r;return r+t+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];return e.argChoices&&t.push(`choices: ${e.argChoices.map(r=>JSON.stringify(r)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0?`${e.description} (${t.join(", ")})`:e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(r=>JSON.stringify(r)).join(", ")}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let r=`(${t.join(", ")})`;return e.description?`${e.description} ${r}`:r}return e.description}formatHelp(e,t){let r=t.padWidth(e,t),i=t.helpWidth||80,s=2,o=2;function a(T,g){if(g){let m=`${T.padEnd(r+o)}${g}`;return t.wrap(m,i-s,r+o)}return T}function l(T){return T.join(` -`).replace(/^/gm," ".repeat(s))}let c=[`Usage: ${t.commandUsage(e)}`,""],u=t.commandDescription(e);u.length>0&&(c=c.concat([t.wrap(u,i,0),""]));let f=t.visibleArguments(e).map(T=>a(t.argumentTerm(T),t.argumentDescription(T)));f.length>0&&(c=c.concat(["Arguments:",l(f),""]));let _=t.visibleOptions(e).map(T=>a(t.optionTerm(T),t.optionDescription(T)));if(_.length>0&&(c=c.concat(["Options:",l(_),""])),this.showGlobalOptions){let T=t.visibleGlobalOptions(e).map(g=>a(t.optionTerm(g),t.optionDescription(g)));T.length>0&&(c=c.concat(["Global Options:",l(T),""]))}let h=t.visibleCommands(e).map(T=>a(t.subcommandTerm(T),t.subcommandDescription(T)));return h.length>0&&(c=c.concat(["Commands:",l(h),""])),c.join(` +"use strict";var Km=Object.create;var El=Object.defineProperty;var Ym=Object.getOwnPropertyDescriptor;var Jm=Object.getOwnPropertyNames;var Xm=Object.getPrototypeOf,zm=Object.prototype.hasOwnProperty;var _=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var Qm=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Jm(e))!zm.call(n,i)&&i!==t&&El(n,i,{get:()=>e[i],enumerable:!(r=Ym(e,i))||r.enumerable});return n};var oe=(n,e,t)=>(t=n!=null?Km(Xm(n)):{},Qm(e||!n||!n.__esModule?El(t,"default",{value:n,enumerable:!0}):t,n));var zt=_(ns=>{var er=class extends Error{constructor(e,t,r){super(r),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},ts=class extends er{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};ns.CommanderError=er;ns.InvalidArgumentError=ts});var tr=_(is=>{var{InvalidArgumentError:Zm}=zt(),rs=class{constructor(e,t){switch(this.description=t||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,r)=>{if(!this.argChoices.includes(t))throw new Zm(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,r):t},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function eg(n){let e=n.name()+(n.variadic===!0?"...":"");return n.required?"<"+e+">":"["+e+"]"}is.Argument=rs;is.humanReadableArgName=eg});var os=_(Tl=>{var{humanReadableArgName:tg}=tr(),ss=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let t=e.commands.filter(r=>!r._hidden);if(e._hasImplicitHelpCommand()){let[,r,i]=e._helpCommandnameAndArgs.match(/([^ ]+) *(.*)/),s=e.createCommand(r).helpOption(!1);s.description(e._helpCommandDescription),i&&s.arguments(i),t.push(s)}return this.sortSubcommands&&t.sort((r,i)=>r.name().localeCompare(i.name())),t}compareOptions(e,t){let r=i=>i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"");return r(e).localeCompare(r(t))}visibleOptions(e){let t=e.options.filter(s=>!s.hidden),r=e._hasHelpOption&&e._helpShortFlag&&!e._findOption(e._helpShortFlag),i=e._hasHelpOption&&!e._findOption(e._helpLongFlag);if(r||i){let s;r?i?s=e.createOption(e._helpFlags,e._helpDescription):s=e.createOption(e._helpShortFlag,e._helpDescription):s=e.createOption(e._helpLongFlag,e._helpDescription),t.push(s)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let r=e.parent;r;r=r.parent){let i=r.options.filter(s=>!s.hidden);t.push(...i)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e._args.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||""}),e._args.find(t=>t.description)?e._args:[]}subcommandTerm(e){let t=e._args.map(r=>tg(r)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(t?" "+t:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((r,i)=>Math.max(r,t.subcommandTerm(i).length),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((r,i)=>Math.max(r,t.optionTerm(i).length),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((r,i)=>Math.max(r,t.optionTerm(i).length),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((r,i)=>Math.max(r,t.argumentTerm(i).length),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+"|"+e._aliases[0]);let r="";for(let i=e.parent;i;i=i.parent)r=i.name()+" "+r;return r+t+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];return e.argChoices&&t.push(`choices: ${e.argChoices.map(r=>JSON.stringify(r)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0?`${e.description} (${t.join(", ")})`:e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(r=>JSON.stringify(r)).join(", ")}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let r=`(${t.join(", ")})`;return e.description?`${e.description} ${r}`:r}return e.description}formatHelp(e,t){let r=t.padWidth(e,t),i=t.helpWidth||80,s=2,o=2;function a(y,g){if(g){let m=`${y.padEnd(r+o)}${g}`;return t.wrap(m,i-s,r+o)}return y}function l(y){return y.join(` +`).replace(/^/gm," ".repeat(s))}let c=[`Usage: ${t.commandUsage(e)}`,""],u=t.commandDescription(e);u.length>0&&(c=c.concat([t.wrap(u,i,0),""]));let f=t.visibleArguments(e).map(y=>a(t.argumentTerm(y),t.argumentDescription(y)));f.length>0&&(c=c.concat(["Arguments:",l(f),""]));let d=t.visibleOptions(e).map(y=>a(t.optionTerm(y),t.optionDescription(y)));if(d.length>0&&(c=c.concat(["Options:",l(d),""])),this.showGlobalOptions){let y=t.visibleGlobalOptions(e).map(g=>a(t.optionTerm(g),t.optionDescription(g)));y.length>0&&(c=c.concat(["Global Options:",l(y),""]))}let h=t.visibleCommands(e).map(y=>a(t.subcommandTerm(y),t.subcommandDescription(y)));return h.length>0&&(c=c.concat(["Commands:",l(h),""])),c.join(` `)}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}wrap(e,t,r,i=40){let s=" \\f\\t\\v\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF",o=new RegExp(`[\\n][${s}]+`);if(e.match(o))return e;let a=t-r;if(ag===` +`),u=" ".repeat(r),d="\\s\u200B",h=new RegExp(` +|.{1,${a-1}}([${d}]|$)|[^${d}]+?([${d}]|$)`,"g"),y=c.match(h)||[];return l+y.map((g,m)=>g===` `?"":(m>0?u:"")+g.trimEnd()).join(` -`)}};hl.Help=Qi});var ns=p(Xn=>{var{InvalidArgumentError:Jm}=Kt(),es=class{constructor(e,t){this.flags=e,this.description=t||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let r=dl(e);this.short=r.shortFlag,this.long=r.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e=="string"&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,r)=>{if(!this.argChoices.includes(t))throw new Jm(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,r):t},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return Xm(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},ts=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(t=>{t.negate?this.negativeOptions.set(t.attributeName(),t):this.positiveOptions.set(t.attributeName(),t)}),this.negativeOptions.forEach((t,r)=>{this.positiveOptions.has(r)&&this.dualOptions.add(r)})}valueFromOption(e,t){let r=t.attributeName();if(!this.dualOptions.has(r))return!0;let i=this.negativeOptions.get(r).presetArg,s=i!==void 0?i:!1;return t.negate===(s===e)}};function Xm(n){return n.split("-").reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function dl(n){let e,t,r=n.split(/[ |,]+/);return r.length>1&&!/^[[<]/.test(r[1])&&(e=r.shift()),t=r.shift(),!e&&/^-[^-]$/.test(t)&&(e=t,t=void 0),{shortFlag:e,longFlag:t}}Xn.Option=es;Xn.splitOptionFlags=dl;Xn.DualOptions=ts});var pl=p(_l=>{function zm(n,e){if(Math.abs(n.length-e.length)>3)return Math.max(n.length,e.length);let t=[];for(let r=0;r<=n.length;r++)t[r]=[r];for(let r=0;r<=e.length;r++)t[0][r]=r;for(let r=1;r<=e.length;r++)for(let i=1;i<=n.length;i++){let s=1;n[i-1]===e[r-1]?s=0:s=1,t[i][r]=Math.min(t[i-1][r]+1,t[i][r-1]+1,t[i-1][r-1]+s),i>1&&r>1&&n[i-1]===e[r-2]&&n[i-2]===e[r-1]&&(t[i][r]=Math.min(t[i][r],t[i-2][r-2]+1))}return t[n.length][e.length]}function Qm(n,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let t=n.startsWith("--");t&&(n=n.slice(2),e=e.map(o=>o.slice(2)));let r=[],i=3,s=.4;return e.forEach(o=>{if(o.length<=1)return;let a=zm(n,o),l=Math.max(n.length,o.length);(l-a)/l>s&&(ao.localeCompare(a)),t&&(r=r.map(o=>`--${o}`)),r.length>1?` +`)}};Tl.Help=ss});var cs=_(nr=>{var{InvalidArgumentError:ng}=zt(),as=class{constructor(e,t){this.flags=e,this.description=t||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let r=Ll(e);this.short=r.shortFlag,this.long=r.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e=="string"&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,r)=>{if(!this.argChoices.includes(t))throw new ng(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,r):t},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return rg(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},ls=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(t=>{t.negate?this.negativeOptions.set(t.attributeName(),t):this.positiveOptions.set(t.attributeName(),t)}),this.negativeOptions.forEach((t,r)=>{this.positiveOptions.has(r)&&this.dualOptions.add(r)})}valueFromOption(e,t){let r=t.attributeName();if(!this.dualOptions.has(r))return!0;let i=this.negativeOptions.get(r).presetArg,s=i!==void 0?i:!1;return t.negate===(s===e)}};function rg(n){return n.split("-").reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function Ll(n){let e,t,r=n.split(/[ |,]+/);return r.length>1&&!/^[[<]/.test(r[1])&&(e=r.shift()),t=r.shift(),!e&&/^-[^-]$/.test(t)&&(e=t,t=void 0),{shortFlag:e,longFlag:t}}nr.Option=as;nr.splitOptionFlags=Ll;nr.DualOptions=ls});var Al=_(Sl=>{function ig(n,e){if(Math.abs(n.length-e.length)>3)return Math.max(n.length,e.length);let t=[];for(let r=0;r<=n.length;r++)t[r]=[r];for(let r=0;r<=e.length;r++)t[0][r]=r;for(let r=1;r<=e.length;r++)for(let i=1;i<=n.length;i++){let s=1;n[i-1]===e[r-1]?s=0:s=1,t[i][r]=Math.min(t[i-1][r]+1,t[i][r-1]+1,t[i-1][r-1]+s),i>1&&r>1&&n[i-1]===e[r-2]&&n[i-2]===e[r-1]&&(t[i][r]=Math.min(t[i][r],t[i-2][r-2]+1))}return t[n.length][e.length]}function sg(n,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let t=n.startsWith("--");t&&(n=n.slice(2),e=e.map(o=>o.slice(2)));let r=[],i=3,s=.4;return e.forEach(o=>{if(o.length<=1)return;let a=ig(n,o),l=Math.max(n.length,o.length);(l-a)/l>s&&(ao.localeCompare(a)),t&&(r=r.map(o=>`--${o}`)),r.length>1?` (Did you mean one of ${r.join(", ")}?)`:r.length===1?` -(Did you mean ${r[0]}?)`:""}_l.suggestSimilar=Qm});var Ll=p(Tl=>{var Zm=require("events").EventEmitter,rs=require("child_process"),Ke=require("path"),is=require("fs"),re=require("process"),{Argument:eg,humanReadableArgName:tg}=Jn(),{CommanderError:ss}=Kt(),{Help:ng}=Zi(),{Option:ml,splitOptionFlags:rg,DualOptions:ig}=ns(),{suggestSimilar:gl}=pl(),os=class n extends Zm{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this._args=[],this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._outputConfiguration={writeOut:t=>re.stdout.write(t),writeErr:t=>re.stderr.write(t),getOutHelpWidth:()=>re.stdout.isTTY?re.stdout.columns:void 0,getErrHelpWidth:()=>re.stderr.isTTY?re.stderr.columns:void 0,outputError:(t,r)=>r(t)},this._hidden=!1,this._hasHelpOption=!0,this._helpFlags="-h, --help",this._helpDescription="display help for command",this._helpShortFlag="-h",this._helpLongFlag="--help",this._addImplicitHelpCommand=void 0,this._helpCommandName="help",this._helpCommandnameAndArgs="help [command]",this._helpCommandDescription="display help for command",this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._hasHelpOption=e._hasHelpOption,this._helpFlags=e._helpFlags,this._helpDescription=e._helpDescription,this._helpShortFlag=e._helpShortFlag,this._helpLongFlag=e._helpLongFlag,this._helpCommandName=e._helpCommandName,this._helpCommandnameAndArgs=e._helpCommandnameAndArgs,this._helpCommandDescription=e._helpCommandDescription,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}command(e,t,r){let i=t,s=r;typeof i=="object"&&i!==null&&(s=i,i=null),s=s||{};let[,o,a]=e.match(/([^ ]+) *(.*)/),l=this.createCommand(o);return i&&(l.description(i),l._executableHandler=!0),s.isDefault&&(this._defaultCommandName=l._name),l._hidden=!!(s.noHelp||s.hidden),l._executableFile=s.executableFile||null,a&&l.arguments(a),this.commands.push(l),l.parent=this,l.copyInheritedSettings(this),i?this:l}createCommand(e){return new n(e)}createHelp(){return Object.assign(new ng,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,e),this)}showHelpAfterError(e=!0){return typeof e!="string"&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,t){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name -- specify the name in Command constructor or using .name()`);return t=t||{},t.isDefault&&(this._defaultCommandName=e._name),(t.noHelp||t.hidden)&&(e._hidden=!0),this.commands.push(e),e.parent=this,this}createArgument(e,t){return new eg(e,t)}argument(e,t,r,i){let s=this.createArgument(e,t);return typeof r=="function"?s.default(i).argParser(r):s.default(r),this.addArgument(s),this}arguments(e){return e.trim().split(/ +/).forEach(t=>{this.argument(t)}),this}addArgument(e){let t=this._args.slice(-1)[0];if(t&&t.variadic)throw new Error(`only the last argument can be variadic '${t.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${e.name()}'`);return this._args.push(e),this}addHelpCommand(e,t){return e===!1?this._addImplicitHelpCommand=!1:(this._addImplicitHelpCommand=!0,typeof e=="string"&&(this._helpCommandName=e.split(" ")[0],this._helpCommandnameAndArgs=e),this._helpCommandDescription=t||this._helpCommandDescription),this}_hasImplicitHelpCommand(){return this._addImplicitHelpCommand===void 0?this.commands.length&&!this._actionHandler&&!this._findCommand("help"):this._addImplicitHelpCommand}hook(e,t){let r=["preSubcommand","preAction","postAction"];if(!r.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'. -Expecting one of '${r.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(t):this._lifeCycleHooks[e]=[t],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=t=>{if(t.code!=="commander.executeSubCommandAsync")throw t},this}_exit(e,t,r){this._exitCallback&&this._exitCallback(new ss(e,t,r)),re.exit(e)}action(e){let t=r=>{let i=this._args.length,s=r.slice(0,i);return this._storeOptionsAsProperties?s[i]=this:s[i]=this.opts(),s.push(this),e.apply(this,s)};return this._actionHandler=t,this}createOption(e,t){return new ml(e,t)}addOption(e){let t=e.name(),r=e.attributeName();if(e.negate){let s=e.long.replace(/^--no-/,"--");this._findOption(s)||this.setOptionValueWithSource(r,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(r,e.defaultValue,"default");this.options.push(e);let i=(s,o,a)=>{s==null&&e.presetArg!==void 0&&(s=e.presetArg);let l=this.getOptionValue(r);if(s!==null&&e.parseArg)try{s=e.parseArg(s,l)}catch(c){if(c.code==="commander.invalidArgument"){let u=`${o} ${c.message}`;this.error(u,{exitCode:c.exitCode,code:c.code})}throw c}else s!==null&&e.variadic&&(s=e._concatValue(s,l));s==null&&(e.negate?s=!1:e.isBoolean()||e.optional?s=!0:s=""),this.setOptionValueWithSource(r,s,a)};return this.on("option:"+t,s=>{let o=`error: option '${e.flags}' argument '${s}' is invalid.`;i(s,o,"cli")}),e.envVar&&this.on("optionEnv:"+t,s=>{let o=`error: option '${e.flags}' value '${s}' from env '${e.envVar}' is invalid.`;i(s,o,"env")}),this}_optionEx(e,t,r,i,s){if(typeof t=="object"&&t instanceof ml)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let o=this.createOption(t,r);if(o.makeOptionMandatory(!!e.mandatory),typeof i=="function")o.default(s).argParser(i);else if(i instanceof RegExp){let a=i;i=(l,c)=>{let u=a.exec(l);return u?u[0]:c},o.default(s).argParser(i)}else o.default(i);return this.addOption(o)}option(e,t,r,i){return this._optionEx({},e,t,r,i)}requiredOption(e,t,r,i){return this._optionEx({mandatory:!0},e,t,r,i)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){if(this._passThroughOptions=!!e,this.parent&&e&&!this.parent._enablePositionalOptions)throw new Error("passThroughOptions can not be used without turning on enablePositionalOptions for parent command(s)");return this}storeOptionsAsProperties(e=!0){if(this._storeOptionsAsProperties=!!e,this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");return this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,t){return this.setOptionValueWithSource(e,t,void 0)}setOptionValueWithSource(e,t,r){return this._storeOptionsAsProperties?this[e]=t:this._optionValues[e]=t,this._optionValueSources[e]=r,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let t;return Yt(this).forEach(r=>{r.getOptionValueSource(e)!==void 0&&(t=r.getOptionValueSource(e))}),t}_prepareUserArgs(e,t){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");t=t||{},e===void 0&&(e=re.argv,re.versions&&re.versions.electron&&(t.from="electron")),this.rawArgs=e.slice();let r;switch(t.from){case void 0:case"node":this._scriptPath=e[1],r=e.slice(2);break;case"electron":re.defaultApp?(this._scriptPath=e[1],r=e.slice(2)):r=e.slice(1);break;case"user":r=e.slice(0);break;default:throw new Error(`unexpected parse option { from: '${t.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",r}parse(e,t){let r=this._prepareUserArgs(e,t);return this._parseCommand([],r),this}async parseAsync(e,t){let r=this._prepareUserArgs(e,t);return await this._parseCommand([],r),this}_executeSubCommand(e,t){t=t.slice();let r=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function s(u,f){let _=Ke.resolve(u,f);if(is.existsSync(_))return _;if(i.includes(Ke.extname(f)))return;let h=i.find(T=>is.existsSync(`${_}${T}`));if(h)return`${_}${h}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let o=e._executableFile||`${this._name}-${e._name}`,a=this._executableDir||"";if(this._scriptPath){let u;try{u=is.realpathSync(this._scriptPath)}catch{u=this._scriptPath}a=Ke.resolve(Ke.dirname(u),a)}if(a){let u=s(a,o);if(!u&&!e._executableFile&&this._scriptPath){let f=Ke.basename(this._scriptPath,Ke.extname(this._scriptPath));f!==this._name&&(u=s(a,`${f}-${e._name}`))}o=u||o}r=i.includes(Ke.extname(o));let l;re.platform!=="win32"?r?(t.unshift(o),t=El(re.execArgv).concat(t),l=rs.spawn(re.argv[0],t,{stdio:"inherit"})):l=rs.spawn(o,t,{stdio:"inherit"}):(t.unshift(o),t=El(re.execArgv).concat(t),l=rs.spawn(re.execPath,t,{stdio:"inherit"})),l.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(f=>{re.on(f,()=>{l.killed===!1&&l.exitCode===null&&l.kill(f)})});let c=this._exitCallback;c?l.on("close",()=>{c(new ss(re.exitCode||0,"commander.executeSubCommandAsync","(close)"))}):l.on("close",re.exit.bind(re)),l.on("error",u=>{if(u.code==="ENOENT"){let f=a?`searched for local subcommand relative to directory '${a}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",_=`'${o}' does not exist +(Did you mean ${r[0]}?)`:""}Sl.suggestSimilar=sg});var Ol=_(Nl=>{var og=require("events").EventEmitter,us=require("child_process"),Ye=require("path"),fs=require("fs"),re=require("process"),{Argument:ag,humanReadableArgName:lg}=tr(),{CommanderError:hs}=zt(),{Help:cg}=os(),{Option:Il,splitOptionFlags:ug,DualOptions:fg}=cs(),{suggestSimilar:wl}=Al(),ds=class n extends og{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this._args=[],this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._outputConfiguration={writeOut:t=>re.stdout.write(t),writeErr:t=>re.stderr.write(t),getOutHelpWidth:()=>re.stdout.isTTY?re.stdout.columns:void 0,getErrHelpWidth:()=>re.stderr.isTTY?re.stderr.columns:void 0,outputError:(t,r)=>r(t)},this._hidden=!1,this._hasHelpOption=!0,this._helpFlags="-h, --help",this._helpDescription="display help for command",this._helpShortFlag="-h",this._helpLongFlag="--help",this._addImplicitHelpCommand=void 0,this._helpCommandName="help",this._helpCommandnameAndArgs="help [command]",this._helpCommandDescription="display help for command",this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._hasHelpOption=e._hasHelpOption,this._helpFlags=e._helpFlags,this._helpDescription=e._helpDescription,this._helpShortFlag=e._helpShortFlag,this._helpLongFlag=e._helpLongFlag,this._helpCommandName=e._helpCommandName,this._helpCommandnameAndArgs=e._helpCommandnameAndArgs,this._helpCommandDescription=e._helpCommandDescription,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}command(e,t,r){let i=t,s=r;typeof i=="object"&&i!==null&&(s=i,i=null),s=s||{};let[,o,a]=e.match(/([^ ]+) *(.*)/),l=this.createCommand(o);return i&&(l.description(i),l._executableHandler=!0),s.isDefault&&(this._defaultCommandName=l._name),l._hidden=!!(s.noHelp||s.hidden),l._executableFile=s.executableFile||null,a&&l.arguments(a),this.commands.push(l),l.parent=this,l.copyInheritedSettings(this),i?this:l}createCommand(e){return new n(e)}createHelp(){return Object.assign(new cg,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,e),this)}showHelpAfterError(e=!0){return typeof e!="string"&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,t){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name +- specify the name in Command constructor or using .name()`);return t=t||{},t.isDefault&&(this._defaultCommandName=e._name),(t.noHelp||t.hidden)&&(e._hidden=!0),this.commands.push(e),e.parent=this,this}createArgument(e,t){return new ag(e,t)}argument(e,t,r,i){let s=this.createArgument(e,t);return typeof r=="function"?s.default(i).argParser(r):s.default(r),this.addArgument(s),this}arguments(e){return e.trim().split(/ +/).forEach(t=>{this.argument(t)}),this}addArgument(e){let t=this._args.slice(-1)[0];if(t&&t.variadic)throw new Error(`only the last argument can be variadic '${t.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${e.name()}'`);return this._args.push(e),this}addHelpCommand(e,t){return e===!1?this._addImplicitHelpCommand=!1:(this._addImplicitHelpCommand=!0,typeof e=="string"&&(this._helpCommandName=e.split(" ")[0],this._helpCommandnameAndArgs=e),this._helpCommandDescription=t||this._helpCommandDescription),this}_hasImplicitHelpCommand(){return this._addImplicitHelpCommand===void 0?this.commands.length&&!this._actionHandler&&!this._findCommand("help"):this._addImplicitHelpCommand}hook(e,t){let r=["preSubcommand","preAction","postAction"];if(!r.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'. +Expecting one of '${r.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(t):this._lifeCycleHooks[e]=[t],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=t=>{if(t.code!=="commander.executeSubCommandAsync")throw t},this}_exit(e,t,r){this._exitCallback&&this._exitCallback(new hs(e,t,r)),re.exit(e)}action(e){let t=r=>{let i=this._args.length,s=r.slice(0,i);return this._storeOptionsAsProperties?s[i]=this:s[i]=this.opts(),s.push(this),e.apply(this,s)};return this._actionHandler=t,this}createOption(e,t){return new Il(e,t)}addOption(e){let t=e.name(),r=e.attributeName();if(e.negate){let s=e.long.replace(/^--no-/,"--");this._findOption(s)||this.setOptionValueWithSource(r,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(r,e.defaultValue,"default");this.options.push(e);let i=(s,o,a)=>{s==null&&e.presetArg!==void 0&&(s=e.presetArg);let l=this.getOptionValue(r);if(s!==null&&e.parseArg)try{s=e.parseArg(s,l)}catch(c){if(c.code==="commander.invalidArgument"){let u=`${o} ${c.message}`;this.error(u,{exitCode:c.exitCode,code:c.code})}throw c}else s!==null&&e.variadic&&(s=e._concatValue(s,l));s==null&&(e.negate?s=!1:e.isBoolean()||e.optional?s=!0:s=""),this.setOptionValueWithSource(r,s,a)};return this.on("option:"+t,s=>{let o=`error: option '${e.flags}' argument '${s}' is invalid.`;i(s,o,"cli")}),e.envVar&&this.on("optionEnv:"+t,s=>{let o=`error: option '${e.flags}' value '${s}' from env '${e.envVar}' is invalid.`;i(s,o,"env")}),this}_optionEx(e,t,r,i,s){if(typeof t=="object"&&t instanceof Il)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let o=this.createOption(t,r);if(o.makeOptionMandatory(!!e.mandatory),typeof i=="function")o.default(s).argParser(i);else if(i instanceof RegExp){let a=i;i=(l,c)=>{let u=a.exec(l);return u?u[0]:c},o.default(s).argParser(i)}else o.default(i);return this.addOption(o)}option(e,t,r,i){return this._optionEx({},e,t,r,i)}requiredOption(e,t,r,i){return this._optionEx({mandatory:!0},e,t,r,i)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){if(this._passThroughOptions=!!e,this.parent&&e&&!this.parent._enablePositionalOptions)throw new Error("passThroughOptions can not be used without turning on enablePositionalOptions for parent command(s)");return this}storeOptionsAsProperties(e=!0){if(this._storeOptionsAsProperties=!!e,this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");return this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,t){return this.setOptionValueWithSource(e,t,void 0)}setOptionValueWithSource(e,t,r){return this._storeOptionsAsProperties?this[e]=t:this._optionValues[e]=t,this._optionValueSources[e]=r,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let t;return Qt(this).forEach(r=>{r.getOptionValueSource(e)!==void 0&&(t=r.getOptionValueSource(e))}),t}_prepareUserArgs(e,t){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");t=t||{},e===void 0&&(e=re.argv,re.versions&&re.versions.electron&&(t.from="electron")),this.rawArgs=e.slice();let r;switch(t.from){case void 0:case"node":this._scriptPath=e[1],r=e.slice(2);break;case"electron":re.defaultApp?(this._scriptPath=e[1],r=e.slice(2)):r=e.slice(1);break;case"user":r=e.slice(0);break;default:throw new Error(`unexpected parse option { from: '${t.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",r}parse(e,t){let r=this._prepareUserArgs(e,t);return this._parseCommand([],r),this}async parseAsync(e,t){let r=this._prepareUserArgs(e,t);return await this._parseCommand([],r),this}_executeSubCommand(e,t){t=t.slice();let r=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function s(u,f){let d=Ye.resolve(u,f);if(fs.existsSync(d))return d;if(i.includes(Ye.extname(f)))return;let h=i.find(y=>fs.existsSync(`${d}${y}`));if(h)return`${d}${h}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let o=e._executableFile||`${this._name}-${e._name}`,a=this._executableDir||"";if(this._scriptPath){let u;try{u=fs.realpathSync(this._scriptPath)}catch{u=this._scriptPath}a=Ye.resolve(Ye.dirname(u),a)}if(a){let u=s(a,o);if(!u&&!e._executableFile&&this._scriptPath){let f=Ye.basename(this._scriptPath,Ye.extname(this._scriptPath));f!==this._name&&(u=s(a,`${f}-${e._name}`))}o=u||o}r=i.includes(Ye.extname(o));let l;re.platform!=="win32"?r?(t.unshift(o),t=bl(re.execArgv).concat(t),l=us.spawn(re.argv[0],t,{stdio:"inherit"})):l=us.spawn(o,t,{stdio:"inherit"}):(t.unshift(o),t=bl(re.execArgv).concat(t),l=us.spawn(re.execPath,t,{stdio:"inherit"})),l.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(f=>{re.on(f,()=>{l.killed===!1&&l.exitCode===null&&l.kill(f)})});let c=this._exitCallback;c?l.on("close",()=>{c(new hs(re.exitCode||0,"commander.executeSubCommandAsync","(close)"))}):l.on("close",re.exit.bind(re)),l.on("error",u=>{if(u.code==="ENOENT"){let f=a?`searched for local subcommand relative to directory '${a}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",d=`'${o}' does not exist - if '${e._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead - if the default executable name is not suitable, use the executableFile option to supply a custom name or path - - ${f}`;throw new Error(_)}else if(u.code==="EACCES")throw new Error(`'${o}' not executable`);if(!c)re.exit(1);else{let f=new ss(1,"commander.executeSubCommandAsync","(error)");f.nestedError=u,c(f)}}),this.runningCommand=l}_dispatchSubcommand(e,t,r){let i=this._findCommand(e);i||this.help({error:!0});let s;return s=this._chainOrCallSubCommandHook(s,i,"preSubcommand"),s=this._chainOrCall(s,()=>{if(i._executableHandler)this._executeSubCommand(i,t.concat(r));else return i._parseCommand(t,r)}),s}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._helpLongFlag])}_checkNumberOfArguments(){this._args.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this._args.length>0&&this._args[this._args.length-1].variadic)&&this.args.length>this._args.length&&this._excessArguments(this.args)}_processArguments(){let e=(r,i,s)=>{let o=i;if(i!==null&&r.parseArg)try{o=r.parseArg(i,s)}catch(a){if(a.code==="commander.invalidArgument"){let l=`error: command-argument value '${i}' is invalid for argument '${r.name()}'. ${a.message}`;this.error(l,{exitCode:a.exitCode,code:a.code})}throw a}return o};this._checkNumberOfArguments();let t=[];this._args.forEach((r,i)=>{let s=r.defaultValue;r.variadic?ie(r,a,o),r.defaultValue))):s===void 0&&(s=[]):it()):t()}_chainOrCallHooks(e,t){let r=e,i=[];return Yt(this).reverse().filter(s=>s._lifeCycleHooks[t]!==void 0).forEach(s=>{s._lifeCycleHooks[t].forEach(o=>{i.push({hookedCommand:s,callback:o})})}),t==="postAction"&&i.reverse(),i.forEach(s=>{r=this._chainOrCall(r,()=>s.callback(s.hookedCommand,this))}),r}_chainOrCallSubCommandHook(e,t,r){let i=e;return this._lifeCycleHooks[r]!==void 0&&this._lifeCycleHooks[r].forEach(s=>{i=this._chainOrCall(i,()=>s(this,t))}),i}_parseCommand(e,t){let r=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(r.operands),t=r.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._hasImplicitHelpCommand()&&e[0]===this._helpCommandName)return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return yl(this,t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),yl(this,r.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{r.unknown.length>0&&this.unknownOption(r.unknown[0])},s=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let o;return o=this._chainOrCallHooks(o,"preAction"),o=this._chainOrCall(o,()=>this._actionHandler(this.processedArgs)),this.parent&&(o=this._chainOrCall(o,()=>{this.parent.emit(s,e,t)})),o=this._chainOrCallHooks(o,"postAction"),o}if(this.parent&&this.parent.listenerCount(s))i(),this._processArguments(),this.parent.emit(s,e,t);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,t);this.listenerCount("command:*")?this.emit("command:*",e,t):this.commands.length?this.unknownCommand():(i(),this._processArguments())}else this.commands.length?(i(),this.help({error:!0})):(i(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){for(let e=this;e;e=e.parent)e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})}_checkForConflictingLocalOptions(){let e=this.options.filter(r=>{let i=r.attributeName();return this.getOptionValue(i)===void 0?!1:this.getOptionValueSource(i)!=="default"});e.filter(r=>r.conflictsWith.length>0).forEach(r=>{let i=e.find(s=>r.conflictsWith.includes(s.attributeName()));i&&this._conflictingOption(r,i)})}_checkForConflictingOptions(){for(let e=this;e;e=e.parent)e._checkForConflictingLocalOptions()}parseOptions(e){let t=[],r=[],i=t,s=e.slice();function o(l){return l.length>1&&l[0]==="-"}let a=null;for(;s.length;){let l=s.shift();if(l==="--"){i===r&&i.push(l),i.push(...s);break}if(a&&!o(l)){this.emit(`option:${a.name()}`,l);continue}if(a=null,o(l)){let c=this._findOption(l);if(c){if(c.required){let u=s.shift();u===void 0&&this.optionMissingArgument(c),this.emit(`option:${c.name()}`,u)}else if(c.optional){let u=null;s.length>0&&!o(s[0])&&(u=s.shift()),this.emit(`option:${c.name()}`,u)}else this.emit(`option:${c.name()}`);a=c.variadic?c:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let c=this._findOption(`-${l[1]}`);if(c){c.required||c.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${c.name()}`,l.slice(2)):(this.emit(`option:${c.name()}`),s.unshift(`-${l.slice(2)}`));continue}}if(/^--[^=]+=/.test(l)){let c=l.indexOf("="),u=this._findOption(l.slice(0,c));if(u&&(u.required||u.optional)){this.emit(`option:${u.name()}`,l.slice(c+1));continue}}if(o(l)&&(i=r),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&r.length===0){if(this._findCommand(l)){t.push(l),s.length>0&&r.push(...s);break}else if(l===this._helpCommandName&&this._hasImplicitHelpCommand()){t.push(l),s.length>0&&t.push(...s);break}else if(this._defaultCommandName){r.push(l),s.length>0&&r.push(...s);break}}if(this._passThroughOptions){i.push(l),s.length>0&&i.push(...s);break}i.push(l)}return{operands:t,unknown:r}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let r=0;rObject.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e} + - ${f}`;throw new Error(d)}else if(u.code==="EACCES")throw new Error(`'${o}' not executable`);if(!c)re.exit(1);else{let f=new hs(1,"commander.executeSubCommandAsync","(error)");f.nestedError=u,c(f)}}),this.runningCommand=l}_dispatchSubcommand(e,t,r){let i=this._findCommand(e);i||this.help({error:!0});let s;return s=this._chainOrCallSubCommandHook(s,i,"preSubcommand"),s=this._chainOrCall(s,()=>{if(i._executableHandler)this._executeSubCommand(i,t.concat(r));else return i._parseCommand(t,r)}),s}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._helpLongFlag])}_checkNumberOfArguments(){this._args.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this._args.length>0&&this._args[this._args.length-1].variadic)&&this.args.length>this._args.length&&this._excessArguments(this.args)}_processArguments(){let e=(r,i,s)=>{let o=i;if(i!==null&&r.parseArg)try{o=r.parseArg(i,s)}catch(a){if(a.code==="commander.invalidArgument"){let l=`error: command-argument value '${i}' is invalid for argument '${r.name()}'. ${a.message}`;this.error(l,{exitCode:a.exitCode,code:a.code})}throw a}return o};this._checkNumberOfArguments();let t=[];this._args.forEach((r,i)=>{let s=r.defaultValue;r.variadic?ie(r,a,o),r.defaultValue))):s===void 0&&(s=[]):it()):t()}_chainOrCallHooks(e,t){let r=e,i=[];return Qt(this).reverse().filter(s=>s._lifeCycleHooks[t]!==void 0).forEach(s=>{s._lifeCycleHooks[t].forEach(o=>{i.push({hookedCommand:s,callback:o})})}),t==="postAction"&&i.reverse(),i.forEach(s=>{r=this._chainOrCall(r,()=>s.callback(s.hookedCommand,this))}),r}_chainOrCallSubCommandHook(e,t,r){let i=e;return this._lifeCycleHooks[r]!==void 0&&this._lifeCycleHooks[r].forEach(s=>{i=this._chainOrCall(i,()=>s(this,t))}),i}_parseCommand(e,t){let r=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(r.operands),t=r.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._hasImplicitHelpCommand()&&e[0]===this._helpCommandName)return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return vl(this,t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),vl(this,r.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{r.unknown.length>0&&this.unknownOption(r.unknown[0])},s=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let o;return o=this._chainOrCallHooks(o,"preAction"),o=this._chainOrCall(o,()=>this._actionHandler(this.processedArgs)),this.parent&&(o=this._chainOrCall(o,()=>{this.parent.emit(s,e,t)})),o=this._chainOrCallHooks(o,"postAction"),o}if(this.parent&&this.parent.listenerCount(s))i(),this._processArguments(),this.parent.emit(s,e,t);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,t);this.listenerCount("command:*")?this.emit("command:*",e,t):this.commands.length?this.unknownCommand():(i(),this._processArguments())}else this.commands.length?(i(),this.help({error:!0})):(i(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){for(let e=this;e;e=e.parent)e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})}_checkForConflictingLocalOptions(){let e=this.options.filter(r=>{let i=r.attributeName();return this.getOptionValue(i)===void 0?!1:this.getOptionValueSource(i)!=="default"});e.filter(r=>r.conflictsWith.length>0).forEach(r=>{let i=e.find(s=>r.conflictsWith.includes(s.attributeName()));i&&this._conflictingOption(r,i)})}_checkForConflictingOptions(){for(let e=this;e;e=e.parent)e._checkForConflictingLocalOptions()}parseOptions(e){let t=[],r=[],i=t,s=e.slice();function o(l){return l.length>1&&l[0]==="-"}let a=null;for(;s.length;){let l=s.shift();if(l==="--"){i===r&&i.push(l),i.push(...s);break}if(a&&!o(l)){this.emit(`option:${a.name()}`,l);continue}if(a=null,o(l)){let c=this._findOption(l);if(c){if(c.required){let u=s.shift();u===void 0&&this.optionMissingArgument(c),this.emit(`option:${c.name()}`,u)}else if(c.optional){let u=null;s.length>0&&!o(s[0])&&(u=s.shift()),this.emit(`option:${c.name()}`,u)}else this.emit(`option:${c.name()}`);a=c.variadic?c:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let c=this._findOption(`-${l[1]}`);if(c){c.required||c.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${c.name()}`,l.slice(2)):(this.emit(`option:${c.name()}`),s.unshift(`-${l.slice(2)}`));continue}}if(/^--[^=]+=/.test(l)){let c=l.indexOf("="),u=this._findOption(l.slice(0,c));if(u&&(u.required||u.optional)){this.emit(`option:${u.name()}`,l.slice(c+1));continue}}if(o(l)&&(i=r),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&r.length===0){if(this._findCommand(l)){t.push(l),s.length>0&&r.push(...s);break}else if(l===this._helpCommandName&&this._hasImplicitHelpCommand()){t.push(l),s.length>0&&t.push(...s);break}else if(this._defaultCommandName){r.push(l),s.length>0&&r.push(...s);break}}if(this._passThroughOptions){i.push(l),s.length>0&&i.push(...s);break}i.push(l)}return{operands:t,unknown:r}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let r=0;rObject.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e} `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError} `):this._showHelpAfterError&&(this._outputConfiguration.writeErr(` -`),this.outputHelp({error:!0}));let r=t||{},i=r.exitCode||1,s=r.code||"commander.error";this._exit(i,s,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in re.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||["default","config","env"].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,re.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new ig(this.options),t=r=>this.getOptionValue(r)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(r));this.options.filter(r=>r.implied!==void 0&&t(r.attributeName())&&e.valueFromOption(this.getOptionValue(r.attributeName()),r)).forEach(r=>{Object.keys(r.implied).filter(i=>!t(i)).forEach(i=>{this.setOptionValueWithSource(i,r.implied[i],"implied")})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:"commander.missingArgument"})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,t){let r=o=>{let a=o.attributeName(),l=this.getOptionValue(a),c=this.options.find(f=>f.negate&&a===f.attributeName()),u=this.options.find(f=>!f.negate&&a===f.attributeName());return c&&(c.presetArg===void 0&&l===!1||c.presetArg!==void 0&&l===c.presetArg)?c:u||o},i=o=>{let a=r(o),l=a.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${a.envVar}'`:`option '${a.flags}'`},s=`error: ${i(e)} cannot be used with ${i(t)}`;this.error(s,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let t="";if(e.startsWith("--")&&this._showSuggestionAfterError){let i=[],s=this;do{let o=s.createHelp().visibleOptions(s).filter(a=>a.long).map(a=>a.long);i=i.concat(o),s=s.parent}while(s&&!s._enablePositionalOptions);t=gl(e,i)}let r=`error: unknown option '${e}'${t}`;this.error(r,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this._args.length,r=t===1?"":"s",s=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${t} argument${r} but got ${e.length}.`;this.error(s,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],t="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach(s=>{i.push(s.name()),s.alias()&&i.push(s.alias())}),t=gl(e,i)}let r=`error: unknown command '${e}'${t}`;this.error(r,{code:"commander.unknownCommand"})}version(e,t,r){if(e===void 0)return this._version;this._version=e,t=t||"-V, --version",r=r||"output the version number";let i=this.createOption(t,r);return this._versionOptionName=i.attributeName(),this.options.push(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${e} -`),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this._args.map(r=>tg(r));return[].concat(this.options.length||this._hasHelpOption?"[options]":[],this.commands.length?"[command]":[],this._args.length?t:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=Ke.basename(e,Ke.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp();return t.helpWidth===void 0&&(t.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),t.formatHelp(this,t)}_getHelpContext(e){e=e||{};let t={error:!!e.error},r;return t.error?r=i=>this._outputConfiguration.writeErr(i):r=i=>this._outputConfiguration.writeOut(i),t.write=e.write||r,t.command=this,t}outputHelp(e){let t;typeof e=="function"&&(t=e,e=void 0);let r=this._getHelpContext(e);Yt(this).reverse().forEach(s=>s.emit("beforeAllHelp",r)),this.emit("beforeHelp",r);let i=this.helpInformation(r);if(t&&(i=t(i),typeof i!="string"&&!Buffer.isBuffer(i)))throw new Error("outputHelp callback must return a string or a Buffer");r.write(i),this.emit(this._helpLongFlag),this.emit("afterHelp",r),Yt(this).forEach(s=>s.emit("afterAllHelp",r))}helpOption(e,t){if(typeof e=="boolean")return this._hasHelpOption=e,this;this._helpFlags=e||this._helpFlags,this._helpDescription=t||this._helpDescription;let r=rg(this._helpFlags);return this._helpShortFlag=r.shortFlag,this._helpLongFlag=r.longFlag,this}help(e){this.outputHelp(e);let t=re.exitCode||0;t===0&&e&&typeof e!="function"&&e.error&&(t=1),this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let r=["beforeAll","before","after","afterAll"];if(!r.includes(e))throw new Error(`Unexpected value for position to addHelpText. +`),this.outputHelp({error:!0}));let r=t||{},i=r.exitCode||1,s=r.code||"commander.error";this._exit(i,s,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in re.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||["default","config","env"].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,re.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new fg(this.options),t=r=>this.getOptionValue(r)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(r));this.options.filter(r=>r.implied!==void 0&&t(r.attributeName())&&e.valueFromOption(this.getOptionValue(r.attributeName()),r)).forEach(r=>{Object.keys(r.implied).filter(i=>!t(i)).forEach(i=>{this.setOptionValueWithSource(i,r.implied[i],"implied")})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:"commander.missingArgument"})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,t){let r=o=>{let a=o.attributeName(),l=this.getOptionValue(a),c=this.options.find(f=>f.negate&&a===f.attributeName()),u=this.options.find(f=>!f.negate&&a===f.attributeName());return c&&(c.presetArg===void 0&&l===!1||c.presetArg!==void 0&&l===c.presetArg)?c:u||o},i=o=>{let a=r(o),l=a.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${a.envVar}'`:`option '${a.flags}'`},s=`error: ${i(e)} cannot be used with ${i(t)}`;this.error(s,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let t="";if(e.startsWith("--")&&this._showSuggestionAfterError){let i=[],s=this;do{let o=s.createHelp().visibleOptions(s).filter(a=>a.long).map(a=>a.long);i=i.concat(o),s=s.parent}while(s&&!s._enablePositionalOptions);t=wl(e,i)}let r=`error: unknown option '${e}'${t}`;this.error(r,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this._args.length,r=t===1?"":"s",s=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${t} argument${r} but got ${e.length}.`;this.error(s,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],t="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach(s=>{i.push(s.name()),s.alias()&&i.push(s.alias())}),t=wl(e,i)}let r=`error: unknown command '${e}'${t}`;this.error(r,{code:"commander.unknownCommand"})}version(e,t,r){if(e===void 0)return this._version;this._version=e,t=t||"-V, --version",r=r||"output the version number";let i=this.createOption(t,r);return this._versionOptionName=i.attributeName(),this.options.push(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${e} +`),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this._args.map(r=>lg(r));return[].concat(this.options.length||this._hasHelpOption?"[options]":[],this.commands.length?"[command]":[],this._args.length?t:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=Ye.basename(e,Ye.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp();return t.helpWidth===void 0&&(t.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),t.formatHelp(this,t)}_getHelpContext(e){e=e||{};let t={error:!!e.error},r;return t.error?r=i=>this._outputConfiguration.writeErr(i):r=i=>this._outputConfiguration.writeOut(i),t.write=e.write||r,t.command=this,t}outputHelp(e){let t;typeof e=="function"&&(t=e,e=void 0);let r=this._getHelpContext(e);Qt(this).reverse().forEach(s=>s.emit("beforeAllHelp",r)),this.emit("beforeHelp",r);let i=this.helpInformation(r);if(t&&(i=t(i),typeof i!="string"&&!Buffer.isBuffer(i)))throw new Error("outputHelp callback must return a string or a Buffer");r.write(i),this.emit(this._helpLongFlag),this.emit("afterHelp",r),Qt(this).forEach(s=>s.emit("afterAllHelp",r))}helpOption(e,t){if(typeof e=="boolean")return this._hasHelpOption=e,this;this._helpFlags=e||this._helpFlags,this._helpDescription=t||this._helpDescription;let r=ug(this._helpFlags);return this._helpShortFlag=r.shortFlag,this._helpLongFlag=r.longFlag,this}help(e){this.outputHelp(e);let t=re.exitCode||0;t===0&&e&&typeof e!="function"&&e.error&&(t=1),this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let r=["beforeAll","before","after","afterAll"];if(!r.includes(e))throw new Error(`Unexpected value for position to addHelpText. Expecting one of '${r.join("', '")}'`);let i=`${e}Help`;return this.on(i,s=>{let o;typeof t=="function"?o=t({error:s.error,command:s.command}):o=t,o&&s.write(`${o} -`)}),this}};function yl(n,e){n._hasHelpOption&&e.find(r=>r===n._helpLongFlag||r===n._helpShortFlag)&&(n.outputHelp(),n._exit(0,"commander.helpDisplayed","(outputHelp)"))}function El(n){return n.map(e=>{if(!e.startsWith("--inspect"))return e;let t,r="127.0.0.1",i="9229",s;return(s=e.match(/^(--inspect(-brk)?)$/))!==null?t=s[1]:(s=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=s[1],/^\d+$/.test(s[3])?i=s[3]:r=s[3]):(s=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=s[1],r=s[3],i=s[4]),t&&i!=="0"?`${t}=${r}:${parseInt(i)+1}`:e})}function Yt(n){let e=[];for(let t=n;t;t=t.parent)e.push(t);return e}Tl.Command=os});var wl=p((De,Il)=>{var{Argument:sg}=Jn(),{Command:Sl}=Ll(),{CommanderError:og,InvalidArgumentError:Al}=Kt(),{Help:ag}=Zi(),{Option:lg}=ns();De=Il.exports=new Sl;De.program=De;De.Argument=sg;De.Command=Sl;De.CommanderError=og;De.Help=ag;De.InvalidArgumentError=Al;De.InvalidOptionArgumentError=Al;De.Option=lg});var Nl=p((db,zn)=>{"use strict";var cg=(()=>{let i={},s={font:"Standard",fontPath:"./fonts"};function o(E,S){let d={},y,L,I,k,N=[[16384,"vLayout",2],[8192,"vLayout",1],[4096,"vRule5",!0],[2048,"vRule4",!0],[1024,"vRule3",!0],[512,"vRule2",!0],[256,"vRule1",!0],[128,"hLayout",2],[64,"hLayout",1],[32,"hRule6",!0],[16,"hRule5",!0],[8,"hRule4",!0],[4,"hRule3",!0],[2,"hRule2",!0],[1,"hRule1",!0]];for(y=S!==null?S:E,L=0,I=N.length;L=k[0]?(y=y-k[0],d[k[1]]=typeof d[k[1]]>"u"?k[2]:d[k[1]]):k[1]!=="vLayout"&&k[1]!=="hLayout"&&(d[k[1]]=!1),L++;return typeof d.hLayout>"u"?E===0?d.hLayout=1:E===-1?d.hLayout=0:d.hRule1||d.hRule2||d.hRule3||d.hRule4||d.hRule5||d.hRule6?d.hLayout=3:d.hLayout=2:d.hLayout===2&&(d.hRule1||d.hRule2||d.hRule3||d.hRule4||d.hRule5||d.hRule6)&&(d.hLayout=3),typeof d.vLayout>"u"?d.vRule1||d.vRule2||d.vRule3||d.vRule4||d.vRule5?d.vLayout=3:d.vLayout=0:d.vLayout===2&&(d.vRule1||d.vRule2||d.vRule3||d.vRule4||d.vRule5)&&(d.vLayout=3),d}function a(E,S,d){return E===S&&E!==d?E:!1}function l(E,S){let d="|/\\[]{}()<>";if(E==="_"){if(d.indexOf(S)!==-1)return S}else if(S==="_"&&d.indexOf(E)!==-1)return E;return!1}function c(E,S){let d="| /\\ [] {} () <>",y=d.indexOf(E),L=d.indexOf(S);if(y!==-1&&L!==-1&&y!==L&&Math.abs(y-L)!==1){let I=Math.max(y,L),k=I+1;return d.substring(I,k)}return!1}function u(E,S){let d="[] {} ()",y=d.indexOf(E),L=d.indexOf(S);return y!==-1&&L!==-1&&Math.abs(y-L)<=1?"|":!1}function f(E,S){let d="/\\ \\/ ><",y={0:"|",3:"Y",6:"X"},L=d.indexOf(E),I=d.indexOf(S);return L!==-1&&I!==-1&&I-L===1?y[L]:!1}function _(E,S,d){return E===d&&S===d?d:!1}function h(E,S){return E===S?E:!1}function T(E,S){let d="|/\\[]{}()<>";if(E==="_"){if(d.indexOf(S)!==-1)return S}else if(S==="_"&&d.indexOf(E)!==-1)return E;return!1}function g(E,S){let d="| /\\ [] {} () <>",y=d.indexOf(E),L=d.indexOf(S);if(y!==-1&&L!==-1&&y!==L&&Math.abs(y-L)!==1){let I=Math.max(y,L),k=I+1;return d.substring(I,k)}return!1}function m(E,S){return E==="-"&&S==="_"||E==="_"&&S==="-"?"=":!1}function A(E,S){return E==="|"&&S==="|"?"|":!1}function w(E,S,d){return S===" "||S===""||S===d&&E!==" "?E:S}function b(E,S,d){if(d.fittingRules.vLayout===0)return"invalid";let y,L=Math.min(E.length,S.length),I,k,N=!1,O;if(L===0)return"invalid";for(y=0;y=I?ne=N[x]:ne=M(N[x],O[x],y),B.push(ne);return Q=S.slice(Math.min(d,I),I),Ce.concat(k,B,Q)}function V(E,S){let d,y=E.length,L="";for(d=0;dL?V(S,y-L):L>y&&V(E,L-y),I=$(E,S,d),v(E,S,I,d)}function P(E,S,d){if(d.fittingRules.hLayout===0)return 0;let y,L=E.length,I=S.length,k=L,N=1,O=!1,x=!1,Z,ne,B,Q;if(L===0)return 0;e:for(;N<=k;){let Ce=L-N;for(Z=E.substring(Ce,Ce+N),ne=S.substring(0,Math.min(N,I)),y=0;y=B?Z="":Z=Ce.substring(d,d+Math.max(0,B-d)),k[L]=O+x+Z}return k}function D(E){let S=[],d;for(d=0;d0&&d.whitespaceBreak&&(B={chars:[],overlap:I}),d.printDirection===1&&(E=E.split("").reverse().join("")),O=E.length,y=0;y0&&(d.whitespaceBreak?(Kn=X(B.chars.concat([{fig:L,overlap:I}]),x,d),oe=X(Q.concat([{fig:Kn,overlap:B.overlap}]),x,d),ne=F(oe)):(oe=j(N,L,I,d),ne=F(oe)),ne>=d.width&&y>0&&(d.whitespaceBreak?(N=X(Q.slice(0,-1),x,d),Q.length>1&&(Z.push(N),N=D(x)),Q=[]):(Z.push(N),N=D(x)))),d.width>0&&d.whitespaceBreak&&((!At||y===O-1)&&B.chars.push({fig:L,overlap:I}),At||y===O-1)){for(pe=null;oe=X(B.chars,x,d),ne=F(oe),ne>=d.width;)pe=ie(B.chars,x,d),B={chars:pe.chars},Z.push(pe.outputFigText);ne>0&&(pe?Q.push({fig:oe,overlap:1}):Q.push({fig:oe,overlap:B.overlap})),At&&(Q.push({fig:L,overlap:I}),N=D(x)),y===O-1&&(N=X(Q,x,d)),B={chars:[],overlap:I};continue}N=j(N,L,I,d)}return F(N)>0&&Z.push(N),d.showHardBlanks!==!0&&Z.forEach(function(ee){for(O=ee.length,k=0;kr===n._helpLongFlag||r===n._helpShortFlag)&&(n.outputHelp(),n._exit(0,"commander.helpDisplayed","(outputHelp)"))}function bl(n){return n.map(e=>{if(!e.startsWith("--inspect"))return e;let t,r="127.0.0.1",i="9229",s;return(s=e.match(/^(--inspect(-brk)?)$/))!==null?t=s[1]:(s=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=s[1],/^\d+$/.test(s[3])?i=s[3]:r=s[3]):(s=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=s[1],r=s[3],i=s[4]),t&&i!=="0"?`${t}=${r}:${parseInt(i)+1}`:e})}function Qt(n){let e=[];for(let t=n;t;t=t.parent)e.push(t);return e}Nl.Command=ds});var Pl=_((Fe,kl)=>{var{Argument:hg}=tr(),{Command:Rl}=Ol(),{CommanderError:dg,InvalidArgumentError:Cl}=zt(),{Help:pg}=os(),{Option:_g}=cs();Fe=kl.exports=new Rl;Fe.program=Fe;Fe.Argument=hg;Fe.Command=Rl;Fe.CommanderError=dg;Fe.Help=pg;Fe.InvalidArgumentError=Cl;Fe.InvalidOptionArgumentError=Cl;Fe.Option=_g});var xl=_((wb,rr)=>{"use strict";var mg=(()=>{let i={},s={font:"Standard",fontPath:"./fonts"};function o(T,S){let p={},E,L,I,k,N=[[16384,"vLayout",2],[8192,"vLayout",1],[4096,"vRule5",!0],[2048,"vRule4",!0],[1024,"vRule3",!0],[512,"vRule2",!0],[256,"vRule1",!0],[128,"hLayout",2],[64,"hLayout",1],[32,"hRule6",!0],[16,"hRule5",!0],[8,"hRule4",!0],[4,"hRule3",!0],[2,"hRule2",!0],[1,"hRule1",!0]];for(E=S!==null?S:T,L=0,I=N.length;L=k[0]?(E=E-k[0],p[k[1]]=typeof p[k[1]]>"u"?k[2]:p[k[1]]):k[1]!=="vLayout"&&k[1]!=="hLayout"&&(p[k[1]]=!1),L++;return typeof p.hLayout>"u"?T===0?p.hLayout=1:T===-1?p.hLayout=0:p.hRule1||p.hRule2||p.hRule3||p.hRule4||p.hRule5||p.hRule6?p.hLayout=3:p.hLayout=2:p.hLayout===2&&(p.hRule1||p.hRule2||p.hRule3||p.hRule4||p.hRule5||p.hRule6)&&(p.hLayout=3),typeof p.vLayout>"u"?p.vRule1||p.vRule2||p.vRule3||p.vRule4||p.vRule5?p.vLayout=3:p.vLayout=0:p.vLayout===2&&(p.vRule1||p.vRule2||p.vRule3||p.vRule4||p.vRule5)&&(p.vLayout=3),p}function a(T,S,p){return T===S&&T!==p?T:!1}function l(T,S){let p="|/\\[]{}()<>";if(T==="_"){if(p.indexOf(S)!==-1)return S}else if(S==="_"&&p.indexOf(T)!==-1)return T;return!1}function c(T,S){let p="| /\\ [] {} () <>",E=p.indexOf(T),L=p.indexOf(S);if(E!==-1&&L!==-1&&E!==L&&Math.abs(E-L)!==1){let I=Math.max(E,L),k=I+1;return p.substring(I,k)}return!1}function u(T,S){let p="[] {} ()",E=p.indexOf(T),L=p.indexOf(S);return E!==-1&&L!==-1&&Math.abs(E-L)<=1?"|":!1}function f(T,S){let p="/\\ \\/ ><",E={0:"|",3:"Y",6:"X"},L=p.indexOf(T),I=p.indexOf(S);return L!==-1&&I!==-1&&I-L===1?E[L]:!1}function d(T,S,p){return T===p&&S===p?p:!1}function h(T,S){return T===S?T:!1}function y(T,S){let p="|/\\[]{}()<>";if(T==="_"){if(p.indexOf(S)!==-1)return S}else if(S==="_"&&p.indexOf(T)!==-1)return T;return!1}function g(T,S){let p="| /\\ [] {} () <>",E=p.indexOf(T),L=p.indexOf(S);if(E!==-1&&L!==-1&&E!==L&&Math.abs(E-L)!==1){let I=Math.max(E,L),k=I+1;return p.substring(I,k)}return!1}function m(T,S){return T==="-"&&S==="_"||T==="_"&&S==="-"?"=":!1}function A(T,S){return T==="|"&&S==="|"?"|":!1}function w(T,S,p){return S===" "||S===""||S===p&&T!==" "?T:S}function b(T,S,p){if(p.fittingRules.vLayout===0)return"invalid";let E,L=Math.min(T.length,S.length),I,k,N=!1,O;if(L===0)return"invalid";for(E=0;E=I?ne=N[x]:ne=M(N[x],O[x],E),B.push(ne);return Q=S.slice(Math.min(p,I),I),Ce.concat(k,B,Q)}function V(T,S){let p,E=T.length,L="";for(p=0;pL?V(S,E-L):L>E&&V(T,L-E),I=$(T,S,p),v(T,S,I,p)}function P(T,S,p){if(p.fittingRules.hLayout===0)return 0;let E,L=T.length,I=S.length,k=L,N=1,O=!1,x=!1,Z,ne,B,Q;if(L===0)return 0;e:for(;N<=k;){let Ce=L-N;for(Z=T.substring(Ce,Ce+N),ne=S.substring(0,Math.min(N,I)),E=0;E=B?Z="":Z=Ce.substring(p,p+Math.max(0,B-p)),k[L]=O+x+Z}return k}function F(T){let S=[],p;for(p=0;p0&&p.whitespaceBreak&&(B={chars:[],overlap:I}),p.printDirection===1&&(T=T.split("").reverse().join("")),O=T.length,E=0;E0&&(p.whitespaceBreak?(Zn=X(B.chars.concat([{fig:L,overlap:I}]),x,p),ae=X(Q.concat([{fig:Zn,overlap:B.overlap}]),x,p),ne=D(ae)):(ae=j(N,L,I,p),ne=D(ae)),ne>=p.width&&E>0&&(p.whitespaceBreak?(N=X(Q.slice(0,-1),x,p),Q.length>1&&(Z.push(N),N=F(x)),Q=[]):(Z.push(N),N=F(x)))),p.width>0&&p.whitespaceBreak&&((!vt||E===O-1)&&B.chars.push({fig:L,overlap:I}),vt||E===O-1)){for(_e=null;ae=X(B.chars,x,p),ne=D(ae),ne>=p.width;)_e=ie(B.chars,x,p),B={chars:_e.chars},Z.push(_e.outputFigText);ne>0&&(_e?Q.push({fig:ae,overlap:1}):Q.push({fig:ae,overlap:B.overlap})),vt&&(Q.push({fig:L,overlap:I}),N=F(x)),E===O-1&&(N=X(Q,x,p)),B={chars:[],overlap:I};continue}N=j(N,L,I,p)}return D(N)>0&&Z.push(N),p.showHardBlanks!==!0&&Z.forEach(function(ee){for(O=ee.length,k=0;k=6?parseInt(y[6],10):0,I.fullLayout=y.length>=7?parseInt(y[7],10):null,I.codeTagCount=y.length>=8?parseInt(y[8],10):null,I.fittingRules=o(I.oldLayout,I.fullLayout),L.options=I,I.hardBlank.length!==1||isNaN(I.height)||isNaN(I.baseline)||isNaN(I.maxLength)||isNaN(I.oldLayout)||isNaN(I.numCommentLines))throw new Error("FIGlet header contains invalid values.");let k=[],N;for(N=32;N<=126;N++)k.push(N);if(k=k.concat(196,214,220,228,246,252,223),d.length0&&L.numChars"u"?L[O][N]="":(x=new RegExp("\\"+L[O][N].substr(L[O][N].length-1,1)+"+$"),L[O][N]=L[O][N].replace(x,""));L.numChars++}for(;d.length>0;){if(O=d.splice(0,1)[0].split(" ")[0],/^0[xX][0-9a-fA-F]+$/.test(O))O=parseInt(O,16);else if(/^0[0-7]+$/.test(O))O=parseInt(O,8);else if(/^[0-9]+$/.test(O))O=parseInt(O,10);else if(/^-0[xX][0-9a-fA-F]+$/.test(O))O=parseInt(O,16);else{if(O==="")break;console.log("Invalid data:"+O),Z=!0;break}for(L[O]=d.splice(0,I.height),N=0;N"u"?L[O][N]="":(x=new RegExp("\\"+L[O][N].substr(L[O][N].length-1,1)+"+$"),L[O][N]=L[O][N].replace(x,""));L.numChars++}if(Z===!0)throw new Error("Error parsing data.");return I},_e.loadFont=function(E,S){if(i[E]){S(null,i[E].options);return}if(typeof fetch!="function")throw console.error("figlet.js requires the fetch API or a fetch polyfill such as https://cdnjs.com/libraries/fetch"),new Error("fetch is required for figlet.js to work.");fetch(s.fontPath+"/"+E+".flf").then(function(d){if(d.ok)return d.text();throw console.log("Unexpected response",d),new Error("Network response was not ok.")}).then(function(d){S(null,_e.parseFont(E,d))}).catch(S)},_e.loadFontSync=function(E){if(i[E])return i[E].options;throw new Error("synchronous font loading is not implemented for the browser")},_e.preloadFonts=function(E,S){let d=[];E.reduce(function(y,L){return y.then(function(){return fetch(s.fontPath+"/"+L+".flf").then(I=>I.text()).then(function(I){d.push(I)})})},Promise.resolve()).then(function(y){for(var L in E)E.hasOwnProperty(L)&&_e.parseFont(E[L],d[L]);S&&S()})},_e.figFonts=i,_e})();typeof zn<"u"&&typeof zn.exports<"u"&&(zn.exports=cg)});var Rl=p((_b,Ol)=>{var Fe=Nl(),Qn=require("fs"),as=require("path"),Zn=as.join(__dirname,"/../fonts/");Fe.loadFont=function(n,e){if(Fe.figFonts[n]){e(null,Fe.figFonts[n].options);return}Qn.readFile(as.join(Zn,n+".flf"),{encoding:"utf-8"},function(t,r){if(t)return e(t);r=r+"";try{e(null,Fe.parseFont(n,r))}catch(i){e(i)}})};Fe.loadFontSync=function(n){if(Fe.figFonts[n])return Fe.figFonts[n].options;var e=Qn.readFileSync(as.join(Zn,n+".flf"),{encoding:"utf-8"});return e=e+"",Fe.parseFont(n,e)};Fe.fonts=function(n){var e=[];Qn.readdir(Zn,function(t,r){if(t)return n(t);r.forEach(function(i){/\.flf$/.test(i)&&e.push(i.replace(/\.flf$/,""))}),n(null,e)})};Fe.fontsSync=function(){var n=[];return Qn.readdirSync(Zn).forEach(function(e){/\.flf$/.test(e)&&n.push(e.replace(/\.flf$/,""))}),n};Ol.exports=Fe});var Pl=p((mb,kl)=>{"use strict";kl.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var ls=p((gb,ql)=>{var Jt=Pl(),$l={};for(let n of Object.keys(Jt))$l[Jt[n]]=n;var q={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};ql.exports=q;for(let n of Object.keys(q)){if(!("channels"in q[n]))throw new Error("missing channels property: "+n);if(!("labels"in q[n]))throw new Error("missing channel labels property: "+n);if(q[n].labels.length!==q[n].channels)throw new Error("channel and label counts mismatch: "+n);let{channels:e,labels:t}=q[n];delete q[n].channels,delete q[n].labels,Object.defineProperty(q[n],"channels",{value:e}),Object.defineProperty(q[n],"labels",{value:t})}q.rgb.hsl=function(n){let e=n[0]/255,t=n[1]/255,r=n[2]/255,i=Math.min(e,t,r),s=Math.max(e,t,r),o=s-i,a,l;s===i?a=0:e===s?a=(t-r)/o:t===s?a=2+(r-e)/o:r===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(i+s)/2;return s===i?l=0:c<=.5?l=o/(s+i):l=o/(2-s-i),[a,l*100,c*100]};q.rgb.hsv=function(n){let e,t,r,i,s,o=n[0]/255,a=n[1]/255,l=n[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),f=function(_){return(c-_)/6/u+1/2};return u===0?(i=0,s=0):(s=u/c,e=f(o),t=f(a),r=f(l),o===c?i=r-t:a===c?i=1/3+e-r:l===c&&(i=2/3+t-e),i<0?i+=1:i>1&&(i-=1)),[i*360,s*100,c*100]};q.rgb.hwb=function(n){let e=n[0],t=n[1],r=n[2],i=q.rgb.hsl(n)[0],s=1/255*Math.min(e,Math.min(t,r));return r=1-1/255*Math.max(e,Math.max(t,r)),[i,s*100,r*100]};q.rgb.cmyk=function(n){let e=n[0]/255,t=n[1]/255,r=n[2]/255,i=Math.min(1-e,1-t,1-r),s=(1-e-i)/(1-i)||0,o=(1-t-i)/(1-i)||0,a=(1-r-i)/(1-i)||0;return[s*100,o*100,a*100,i*100]};function ug(n,e){return(n[0]-e[0])**2+(n[1]-e[1])**2+(n[2]-e[2])**2}q.rgb.keyword=function(n){let e=$l[n];if(e)return e;let t=1/0,r;for(let i of Object.keys(Jt)){let s=Jt[i],o=ug(n,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let i=e*.4124+t*.3576+r*.1805,s=e*.2126+t*.7152+r*.0722,o=e*.0193+t*.1192+r*.9505;return[i*100,s*100,o*100]};q.rgb.lab=function(n){let e=q.rgb.xyz(n),t=e[0],r=e[1],i=e[2];t/=95.047,r/=100,i/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let s=116*r-16,o=500*(t-r),a=200*(r-i);return[s,o,a]};q.hsl.rgb=function(n){let e=n[0]/360,t=n[1]/100,r=n[2]/100,i,s,o;if(t===0)return o=r*255,[o,o,o];r<.5?i=r*(1+t):i=r+t-r*t;let a=2*r-i,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(i-a)*6*s:2*s<1?o=i:3*s<2?o=a+(i-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};q.hsl.hsv=function(n){let e=n[0],t=n[1]/100,r=n[2]/100,i=t,s=Math.max(r,.01);r*=2,t*=r<=1?r:2-r,i*=s<=1?s:2-s;let o=(r+t)/2,a=r===0?2*i/(s+i):2*t/(r+t);return[e,a*100,o*100]};q.hsv.rgb=function(n){let e=n[0]/60,t=n[1]/100,r=n[2]/100,i=Math.floor(e)%6,s=e-Math.floor(e),o=255*r*(1-t),a=255*r*(1-t*s),l=255*r*(1-t*(1-s));switch(r*=255,i){case 0:return[r,l,o];case 1:return[a,r,o];case 2:return[o,r,l];case 3:return[o,a,r];case 4:return[l,o,r];case 5:return[r,o,a]}};q.hsv.hsl=function(n){let e=n[0],t=n[1]/100,r=n[2]/100,i=Math.max(r,.01),s,o;o=(2-t)*r;let a=(2-t)*i;return s=t*i,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};q.hwb.rgb=function(n){let e=n[0]/360,t=n[1]/100,r=n[2]/100,i=t+r,s;i>1&&(t/=i,r/=i);let o=Math.floor(6*e),a=1-r;s=6*e-o,o&1&&(s=1-s);let l=t+s*(a-t),c,u,f;switch(o){default:case 6:case 0:c=a,u=l,f=t;break;case 1:c=l,u=a,f=t;break;case 2:c=t,u=a,f=l;break;case 3:c=t,u=l,f=a;break;case 4:c=l,u=t,f=a;break;case 5:c=a,u=t,f=l;break}return[c*255,u*255,f*255]};q.cmyk.rgb=function(n){let e=n[0]/100,t=n[1]/100,r=n[2]/100,i=n[3]/100,s=1-Math.min(1,e*(1-i)+i),o=1-Math.min(1,t*(1-i)+i),a=1-Math.min(1,r*(1-i)+i);return[s*255,o*255,a*255]};q.xyz.rgb=function(n){let e=n[0]/100,t=n[1]/100,r=n[2]/100,i,s,o;return i=e*3.2406+t*-1.5372+r*-.4986,s=e*-.9689+t*1.8758+r*.0415,o=e*.0557+t*-.204+r*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[i*255,s*255,o*255]};q.xyz.lab=function(n){let e=n[0],t=n[1],r=n[2];e/=95.047,t/=100,r/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let i=116*t-16,s=500*(e-t),o=200*(t-r);return[i,s,o]};q.lab.xyz=function(n){let e=n[0],t=n[1],r=n[2],i,s,o;s=(e+16)/116,i=t/500+s,o=s-r/200;let a=s**3,l=i**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,i=l>.008856?l:(i-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,i*=95.047,s*=100,o*=108.883,[i,s,o]};q.lab.lch=function(n){let e=n[0],t=n[1],r=n[2],i;i=Math.atan2(r,t)*360/2/Math.PI,i<0&&(i+=360);let o=Math.sqrt(t*t+r*r);return[e,o,i]};q.lch.lab=function(n){let e=n[0],t=n[1],i=n[2]/360*2*Math.PI,s=t*Math.cos(i),o=t*Math.sin(i);return[e,s,o]};q.rgb.ansi16=function(n,e=null){let[t,r,i]=n,s=e===null?q.rgb.hsv(n)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};q.hsv.ansi16=function(n){return q.rgb.ansi16(q.hsv.rgb(n),n[2])};q.rgb.ansi256=function(n){let e=n[0],t=n[1],r=n[2];return e===t&&t===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5)};q.ansi16.rgb=function(n){let e=n%10;if(e===0||e===7)return n>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(n>50)+1)*.5,r=(e&1)*t*255,i=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[r,i,s]};q.ansi256.rgb=function(n){if(n>=232){let s=(n-232)*10+8;return[s,s,s]}n-=16;let e,t=Math.floor(n/36)/5*255,r=Math.floor((e=n%36)/6)/5*255,i=e%6/5*255;return[t,r,i]};q.rgb.hex=function(n){let t=(((Math.round(n[0])&255)<<16)+((Math.round(n[1])&255)<<8)+(Math.round(n[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};q.hex.rgb=function(n){let e=n.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let r=parseInt(t,16),i=r>>16&255,s=r>>8&255,o=r&255;return[i,s,o]};q.rgb.hcg=function(n){let e=n[0]/255,t=n[1]/255,r=n[2]/255,i=Math.max(Math.max(e,t),r),s=Math.min(Math.min(e,t),r),o=i-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:i===e?l=(t-r)/o%6:i===t?l=2+(r-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};q.hsl.hcg=function(n){let e=n[1]/100,t=n[2]/100,r=t<.5?2*e*t:2*e*(1-t),i=0;return r<1&&(i=(t-.5*r)/(1-r)),[n[0],r*100,i*100]};q.hsv.hcg=function(n){let e=n[1]/100,t=n[2]/100,r=e*t,i=0;return r<1&&(i=(t-r)/(1-r)),[n[0],r*100,i*100]};q.hcg.rgb=function(n){let e=n[0]/360,t=n[1]/100,r=n[2]/100;if(t===0)return[r*255,r*255,r*255];let i=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-t)*r,[(t*i[0]+l)*255,(t*i[1]+l)*255,(t*i[2]+l)*255]};q.hcg.hsv=function(n){let e=n[1]/100,t=n[2]/100,r=e+t*(1-e),i=0;return r>0&&(i=e/r),[n[0],i*100,r*100]};q.hcg.hsl=function(n){let e=n[1]/100,r=n[2]/100*(1-e)+.5*e,i=0;return r>0&&r<.5?i=e/(2*r):r>=.5&&r<1&&(i=e/(2*(1-r))),[n[0],i*100,r*100]};q.hcg.hwb=function(n){let e=n[1]/100,t=n[2]/100,r=e+t*(1-e);return[n[0],(r-e)*100,(1-r)*100]};q.hwb.hcg=function(n){let e=n[1]/100,r=1-n[2]/100,i=r-e,s=0;return i<1&&(s=(r-i)/(1-i)),[n[0],i*100,s*100]};q.apple.rgb=function(n){return[n[0]/65535*255,n[1]/65535*255,n[2]/65535*255]};q.rgb.apple=function(n){return[n[0]/255*65535,n[1]/255*65535,n[2]/255*65535]};q.gray.rgb=function(n){return[n[0]/100*255,n[0]/100*255,n[0]/100*255]};q.gray.hsl=function(n){return[0,0,n[0]]};q.gray.hsv=q.gray.hsl;q.gray.hwb=function(n){return[0,100,n[0]]};q.gray.cmyk=function(n){return[0,0,0,n[0]]};q.gray.lab=function(n){return[n[0],0,0]};q.gray.hex=function(n){let e=Math.round(n[0]/100*255)&255,r=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(r.length)+r};q.rgb.gray=function(n){return[(n[0]+n[1]+n[2])/3/255*100]}});var Ml=p((yb,xl)=>{var er=ls();function fg(){let n={},e=Object.keys(er);for(let t=e.length,r=0;r{var cs=ls(),pg=Ml(),It={},mg=Object.keys(cs);function gg(n){let e=function(...t){let r=t[0];return r==null?r:(r.length>1&&(t=r),n(t))};return"conversion"in n&&(e.conversion=n.conversion),e}function yg(n){let e=function(...t){let r=t[0];if(r==null)return r;r.length>1&&(t=r);let i=n(t);if(typeof i=="object")for(let s=i.length,o=0;o{It[n]={},Object.defineProperty(It[n],"channels",{value:cs[n].channels}),Object.defineProperty(It[n],"labels",{value:cs[n].labels});let e=pg(n);Object.keys(e).forEach(r=>{let i=e[r];It[n][r]=yg(i),It[n][r].raw=gg(i)})});Dl.exports=It});var Wl=p((Tb,Vl)=>{"use strict";var jl=(n,e)=>(...t)=>`\x1B[${n(...t)+e}m`,Hl=(n,e)=>(...t)=>{let r=n(...t);return`\x1B[${38+e};5;${r}m`},Bl=(n,e)=>(...t)=>{let r=n(...t);return`\x1B[${38+e};2;${r[0]};${r[1]};${r[2]}m`},tr=n=>n,Ul=(n,e,t)=>[n,e,t],wt=(n,e,t)=>{Object.defineProperty(n,e,{get:()=>{let r=t();return Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},us,vt=(n,e,t,r)=>{us===void 0&&(us=Fl());let i=r?10:0,s={};for(let[o,a]of Object.entries(us)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=n(t,i):typeof a=="object"&&(s[l]=n(a[e],i))}return s};function Eg(){let n=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,r]of Object.entries(e)){for(let[i,s]of Object.entries(r))e[i]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},r[i]=e[i],n.set(s[0],s[1]);Object.defineProperty(e,t,{value:r,enumerable:!1})}return Object.defineProperty(e,"codes",{value:n,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",wt(e.color,"ansi",()=>vt(jl,"ansi16",tr,!1)),wt(e.color,"ansi256",()=>vt(Hl,"ansi256",tr,!1)),wt(e.color,"ansi16m",()=>vt(Bl,"rgb",Ul,!1)),wt(e.bgColor,"ansi",()=>vt(jl,"ansi16",tr,!0)),wt(e.bgColor,"ansi256",()=>vt(Hl,"ansi256",tr,!0)),wt(e.bgColor,"ansi16m",()=>vt(Bl,"rgb",Ul,!0)),e}Object.defineProperty(Vl,"exports",{enumerable:!0,get:Eg})});var Kl=p((Lb,Gl)=>{"use strict";Gl.exports=(n,e=process.argv)=>{let t=n.startsWith("-")?"":n.length===1?"-":"--",r=e.indexOf(t+n),i=e.indexOf("--");return r!==-1&&(i===-1||r{"use strict";var Tg=require("os"),Yl=require("tty"),Pe=Kl(),{env:fe}=process,ze;Pe("no-color")||Pe("no-colors")||Pe("color=false")||Pe("color=never")?ze=0:(Pe("color")||Pe("colors")||Pe("color=true")||Pe("color=always"))&&(ze=1);"FORCE_COLOR"in fe&&(fe.FORCE_COLOR==="true"?ze=1:fe.FORCE_COLOR==="false"?ze=0:ze=fe.FORCE_COLOR.length===0?1:Math.min(parseInt(fe.FORCE_COLOR,10),3));function fs(n){return n===0?!1:{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function hs(n,e){if(ze===0)return 0;if(Pe("color=16m")||Pe("color=full")||Pe("color=truecolor"))return 3;if(Pe("color=256"))return 2;if(n&&!e&&ze===void 0)return 0;let t=ze||0;if(fe.TERM==="dumb")return t;if(process.platform==="win32"){let r=Tg.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in fe)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in fe)||fe.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in fe)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(fe.TEAMCITY_VERSION)?1:0;if(fe.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in fe){let r=parseInt((fe.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(fe.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(fe.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(fe.TERM)||"COLORTERM"in fe?1:t}function Lg(n){let e=hs(n,n&&n.isTTY);return fs(e)}Jl.exports={supportsColor:Lg,stdout:fs(hs(!0,Yl.isatty(1))),stderr:fs(hs(!0,Yl.isatty(2)))}});var Ql=p((Ab,zl)=>{"use strict";var Sg=(n,e,t)=>{let r=n.indexOf(e);if(r===-1)return n;let i=e.length,s=0,o="";do o+=n.substr(s,r-s)+e+t,s=r+i,r=n.indexOf(e,s);while(r!==-1);return o+=n.substr(s),o},Ag=(n,e,t,r)=>{let i=0,s="";do{let o=n[r-1]==="\r";s+=n.substr(i,(o?r-1:r)-i)+e+(o?`\r +`),i[T]={};var p=S.split(` +`),E=p.splice(0,1)[0].split(" "),L=i[T],I={};if(I.hardBlank=E[0].substr(5,1),I.height=parseInt(E[1],10),I.baseline=parseInt(E[2],10),I.maxLength=parseInt(E[3],10),I.oldLayout=parseInt(E[4],10),I.numCommentLines=parseInt(E[5],10),I.printDirection=E.length>=6?parseInt(E[6],10):0,I.fullLayout=E.length>=7?parseInt(E[7],10):null,I.codeTagCount=E.length>=8?parseInt(E[8],10):null,I.fittingRules=o(I.oldLayout,I.fullLayout),L.options=I,I.hardBlank.length!==1||isNaN(I.height)||isNaN(I.baseline)||isNaN(I.maxLength)||isNaN(I.oldLayout)||isNaN(I.numCommentLines))throw new Error("FIGlet header contains invalid values.");let k=[],N;for(N=32;N<=126;N++)k.push(N);if(k=k.concat(196,214,220,228,246,252,223),p.length0&&L.numChars"u"?L[O][N]="":(x=new RegExp("\\"+L[O][N].substr(L[O][N].length-1,1)+"+$"),L[O][N]=L[O][N].replace(x,""));L.numChars++}for(;p.length>0;){if(O=p.splice(0,1)[0].split(" ")[0],/^0[xX][0-9a-fA-F]+$/.test(O))O=parseInt(O,16);else if(/^0[0-7]+$/.test(O))O=parseInt(O,8);else if(/^[0-9]+$/.test(O))O=parseInt(O,10);else if(/^-0[xX][0-9a-fA-F]+$/.test(O))O=parseInt(O,16);else{if(O==="")break;console.log("Invalid data:"+O),Z=!0;break}for(L[O]=p.splice(0,I.height),N=0;N"u"?L[O][N]="":(x=new RegExp("\\"+L[O][N].substr(L[O][N].length-1,1)+"+$"),L[O][N]=L[O][N].replace(x,""));L.numChars++}if(Z===!0)throw new Error("Error parsing data.");return I},pe.loadFont=function(T,S){if(i[T]){S(null,i[T].options);return}if(typeof fetch!="function")throw console.error("figlet.js requires the fetch API or a fetch polyfill such as https://cdnjs.com/libraries/fetch"),new Error("fetch is required for figlet.js to work.");fetch(s.fontPath+"/"+T+".flf").then(function(p){if(p.ok)return p.text();throw console.log("Unexpected response",p),new Error("Network response was not ok.")}).then(function(p){S(null,pe.parseFont(T,p))}).catch(S)},pe.loadFontSync=function(T){if(i[T])return i[T].options;throw new Error("synchronous font loading is not implemented for the browser")},pe.preloadFonts=function(T,S){let p=[];T.reduce(function(E,L){return E.then(function(){return fetch(s.fontPath+"/"+L+".flf").then(I=>I.text()).then(function(I){p.push(I)})})},Promise.resolve()).then(function(E){for(var L in T)T.hasOwnProperty(L)&&pe.parseFont(T[L],p[L]);S&&S()})},pe.figFonts=i,pe})();typeof rr<"u"&&typeof rr.exports<"u"&&(rr.exports=mg)});var Fl=_((vb,Ml)=>{var De=xl(),ir=require("fs"),ps=require("path"),sr=ps.join(__dirname,"/../fonts/");De.loadFont=function(n,e){if(De.figFonts[n]){e(null,De.figFonts[n].options);return}ir.readFile(ps.join(sr,n+".flf"),{encoding:"utf-8"},function(t,r){if(t)return e(t);r=r+"";try{e(null,De.parseFont(n,r))}catch(i){e(i)}})};De.loadFontSync=function(n){if(De.figFonts[n])return De.figFonts[n].options;var e=ir.readFileSync(ps.join(sr,n+".flf"),{encoding:"utf-8"});return e=e+"",De.parseFont(n,e)};De.fonts=function(n){var e=[];ir.readdir(sr,function(t,r){if(t)return n(t);r.forEach(function(i){/\.flf$/.test(i)&&e.push(i.replace(/\.flf$/,""))}),n(null,e)})};De.fontsSync=function(){var n=[];return ir.readdirSync(sr).forEach(function(e){/\.flf$/.test(e)&&n.push(e.replace(/\.flf$/,""))}),n};Ml.exports=De});var Hl=_((Nb,jl)=>{"use strict";jl.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var _s=_((Ob,Ul)=>{var Zt=Hl(),Bl={};for(let n of Object.keys(Zt))Bl[Zt[n]]=n;var q={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Ul.exports=q;for(let n of Object.keys(q)){if(!("channels"in q[n]))throw new Error("missing channels property: "+n);if(!("labels"in q[n]))throw new Error("missing channel labels property: "+n);if(q[n].labels.length!==q[n].channels)throw new Error("channel and label counts mismatch: "+n);let{channels:e,labels:t}=q[n];delete q[n].channels,delete q[n].labels,Object.defineProperty(q[n],"channels",{value:e}),Object.defineProperty(q[n],"labels",{value:t})}q.rgb.hsl=function(n){let e=n[0]/255,t=n[1]/255,r=n[2]/255,i=Math.min(e,t,r),s=Math.max(e,t,r),o=s-i,a,l;s===i?a=0:e===s?a=(t-r)/o:t===s?a=2+(r-e)/o:r===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(i+s)/2;return s===i?l=0:c<=.5?l=o/(s+i):l=o/(2-s-i),[a,l*100,c*100]};q.rgb.hsv=function(n){let e,t,r,i,s,o=n[0]/255,a=n[1]/255,l=n[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),f=function(d){return(c-d)/6/u+1/2};return u===0?(i=0,s=0):(s=u/c,e=f(o),t=f(a),r=f(l),o===c?i=r-t:a===c?i=1/3+e-r:l===c&&(i=2/3+t-e),i<0?i+=1:i>1&&(i-=1)),[i*360,s*100,c*100]};q.rgb.hwb=function(n){let e=n[0],t=n[1],r=n[2],i=q.rgb.hsl(n)[0],s=1/255*Math.min(e,Math.min(t,r));return r=1-1/255*Math.max(e,Math.max(t,r)),[i,s*100,r*100]};q.rgb.cmyk=function(n){let e=n[0]/255,t=n[1]/255,r=n[2]/255,i=Math.min(1-e,1-t,1-r),s=(1-e-i)/(1-i)||0,o=(1-t-i)/(1-i)||0,a=(1-r-i)/(1-i)||0;return[s*100,o*100,a*100,i*100]};function gg(n,e){return(n[0]-e[0])**2+(n[1]-e[1])**2+(n[2]-e[2])**2}q.rgb.keyword=function(n){let e=Bl[n];if(e)return e;let t=1/0,r;for(let i of Object.keys(Zt)){let s=Zt[i],o=gg(n,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let i=e*.4124+t*.3576+r*.1805,s=e*.2126+t*.7152+r*.0722,o=e*.0193+t*.1192+r*.9505;return[i*100,s*100,o*100]};q.rgb.lab=function(n){let e=q.rgb.xyz(n),t=e[0],r=e[1],i=e[2];t/=95.047,r/=100,i/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let s=116*r-16,o=500*(t-r),a=200*(r-i);return[s,o,a]};q.hsl.rgb=function(n){let e=n[0]/360,t=n[1]/100,r=n[2]/100,i,s,o;if(t===0)return o=r*255,[o,o,o];r<.5?i=r*(1+t):i=r+t-r*t;let a=2*r-i,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(i-a)*6*s:2*s<1?o=i:3*s<2?o=a+(i-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};q.hsl.hsv=function(n){let e=n[0],t=n[1]/100,r=n[2]/100,i=t,s=Math.max(r,.01);r*=2,t*=r<=1?r:2-r,i*=s<=1?s:2-s;let o=(r+t)/2,a=r===0?2*i/(s+i):2*t/(r+t);return[e,a*100,o*100]};q.hsv.rgb=function(n){let e=n[0]/60,t=n[1]/100,r=n[2]/100,i=Math.floor(e)%6,s=e-Math.floor(e),o=255*r*(1-t),a=255*r*(1-t*s),l=255*r*(1-t*(1-s));switch(r*=255,i){case 0:return[r,l,o];case 1:return[a,r,o];case 2:return[o,r,l];case 3:return[o,a,r];case 4:return[l,o,r];case 5:return[r,o,a]}};q.hsv.hsl=function(n){let e=n[0],t=n[1]/100,r=n[2]/100,i=Math.max(r,.01),s,o;o=(2-t)*r;let a=(2-t)*i;return s=t*i,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};q.hwb.rgb=function(n){let e=n[0]/360,t=n[1]/100,r=n[2]/100,i=t+r,s;i>1&&(t/=i,r/=i);let o=Math.floor(6*e),a=1-r;s=6*e-o,o&1&&(s=1-s);let l=t+s*(a-t),c,u,f;switch(o){default:case 6:case 0:c=a,u=l,f=t;break;case 1:c=l,u=a,f=t;break;case 2:c=t,u=a,f=l;break;case 3:c=t,u=l,f=a;break;case 4:c=l,u=t,f=a;break;case 5:c=a,u=t,f=l;break}return[c*255,u*255,f*255]};q.cmyk.rgb=function(n){let e=n[0]/100,t=n[1]/100,r=n[2]/100,i=n[3]/100,s=1-Math.min(1,e*(1-i)+i),o=1-Math.min(1,t*(1-i)+i),a=1-Math.min(1,r*(1-i)+i);return[s*255,o*255,a*255]};q.xyz.rgb=function(n){let e=n[0]/100,t=n[1]/100,r=n[2]/100,i,s,o;return i=e*3.2406+t*-1.5372+r*-.4986,s=e*-.9689+t*1.8758+r*.0415,o=e*.0557+t*-.204+r*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[i*255,s*255,o*255]};q.xyz.lab=function(n){let e=n[0],t=n[1],r=n[2];e/=95.047,t/=100,r/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let i=116*t-16,s=500*(e-t),o=200*(t-r);return[i,s,o]};q.lab.xyz=function(n){let e=n[0],t=n[1],r=n[2],i,s,o;s=(e+16)/116,i=t/500+s,o=s-r/200;let a=s**3,l=i**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,i=l>.008856?l:(i-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,i*=95.047,s*=100,o*=108.883,[i,s,o]};q.lab.lch=function(n){let e=n[0],t=n[1],r=n[2],i;i=Math.atan2(r,t)*360/2/Math.PI,i<0&&(i+=360);let o=Math.sqrt(t*t+r*r);return[e,o,i]};q.lch.lab=function(n){let e=n[0],t=n[1],i=n[2]/360*2*Math.PI,s=t*Math.cos(i),o=t*Math.sin(i);return[e,s,o]};q.rgb.ansi16=function(n,e=null){let[t,r,i]=n,s=e===null?q.rgb.hsv(n)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};q.hsv.ansi16=function(n){return q.rgb.ansi16(q.hsv.rgb(n),n[2])};q.rgb.ansi256=function(n){let e=n[0],t=n[1],r=n[2];return e===t&&t===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5)};q.ansi16.rgb=function(n){let e=n%10;if(e===0||e===7)return n>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(n>50)+1)*.5,r=(e&1)*t*255,i=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[r,i,s]};q.ansi256.rgb=function(n){if(n>=232){let s=(n-232)*10+8;return[s,s,s]}n-=16;let e,t=Math.floor(n/36)/5*255,r=Math.floor((e=n%36)/6)/5*255,i=e%6/5*255;return[t,r,i]};q.rgb.hex=function(n){let t=(((Math.round(n[0])&255)<<16)+((Math.round(n[1])&255)<<8)+(Math.round(n[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};q.hex.rgb=function(n){let e=n.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let r=parseInt(t,16),i=r>>16&255,s=r>>8&255,o=r&255;return[i,s,o]};q.rgb.hcg=function(n){let e=n[0]/255,t=n[1]/255,r=n[2]/255,i=Math.max(Math.max(e,t),r),s=Math.min(Math.min(e,t),r),o=i-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:i===e?l=(t-r)/o%6:i===t?l=2+(r-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};q.hsl.hcg=function(n){let e=n[1]/100,t=n[2]/100,r=t<.5?2*e*t:2*e*(1-t),i=0;return r<1&&(i=(t-.5*r)/(1-r)),[n[0],r*100,i*100]};q.hsv.hcg=function(n){let e=n[1]/100,t=n[2]/100,r=e*t,i=0;return r<1&&(i=(t-r)/(1-r)),[n[0],r*100,i*100]};q.hcg.rgb=function(n){let e=n[0]/360,t=n[1]/100,r=n[2]/100;if(t===0)return[r*255,r*255,r*255];let i=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-t)*r,[(t*i[0]+l)*255,(t*i[1]+l)*255,(t*i[2]+l)*255]};q.hcg.hsv=function(n){let e=n[1]/100,t=n[2]/100,r=e+t*(1-e),i=0;return r>0&&(i=e/r),[n[0],i*100,r*100]};q.hcg.hsl=function(n){let e=n[1]/100,r=n[2]/100*(1-e)+.5*e,i=0;return r>0&&r<.5?i=e/(2*r):r>=.5&&r<1&&(i=e/(2*(1-r))),[n[0],i*100,r*100]};q.hcg.hwb=function(n){let e=n[1]/100,t=n[2]/100,r=e+t*(1-e);return[n[0],(r-e)*100,(1-r)*100]};q.hwb.hcg=function(n){let e=n[1]/100,r=1-n[2]/100,i=r-e,s=0;return i<1&&(s=(r-i)/(1-i)),[n[0],i*100,s*100]};q.apple.rgb=function(n){return[n[0]/65535*255,n[1]/65535*255,n[2]/65535*255]};q.rgb.apple=function(n){return[n[0]/255*65535,n[1]/255*65535,n[2]/255*65535]};q.gray.rgb=function(n){return[n[0]/100*255,n[0]/100*255,n[0]/100*255]};q.gray.hsl=function(n){return[0,0,n[0]]};q.gray.hsv=q.gray.hsl;q.gray.hwb=function(n){return[0,100,n[0]]};q.gray.cmyk=function(n){return[0,0,0,n[0]]};q.gray.lab=function(n){return[n[0],0,0]};q.gray.hex=function(n){let e=Math.round(n[0]/100*255)&255,r=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(r.length)+r};q.rgb.gray=function(n){return[(n[0]+n[1]+n[2])/3/255*100]}});var Wl=_((Rb,Vl)=>{var or=_s();function yg(){let n={},e=Object.keys(or);for(let t=e.length,r=0;r{var ms=_s(),Sg=Wl(),bt={},Ag=Object.keys(ms);function Ig(n){let e=function(...t){let r=t[0];return r==null?r:(r.length>1&&(t=r),n(t))};return"conversion"in n&&(e.conversion=n.conversion),e}function wg(n){let e=function(...t){let r=t[0];if(r==null)return r;r.length>1&&(t=r);let i=n(t);if(typeof i=="object")for(let s=i.length,o=0;o{bt[n]={},Object.defineProperty(bt[n],"channels",{value:ms[n].channels}),Object.defineProperty(bt[n],"labels",{value:ms[n].labels});let e=Sg(n);Object.keys(e).forEach(r=>{let i=e[r];bt[n][r]=wg(i),bt[n][r].raw=Ig(i)})});Gl.exports=bt});var Zl=_((kb,Ql)=>{"use strict";var Yl=(n,e)=>(...t)=>`\x1B[${n(...t)+e}m`,Jl=(n,e)=>(...t)=>{let r=n(...t);return`\x1B[${38+e};5;${r}m`},Xl=(n,e)=>(...t)=>{let r=n(...t);return`\x1B[${38+e};2;${r[0]};${r[1]};${r[2]}m`},ar=n=>n,zl=(n,e,t)=>[n,e,t],Nt=(n,e,t)=>{Object.defineProperty(n,e,{get:()=>{let r=t();return Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},gs,Ot=(n,e,t,r)=>{gs===void 0&&(gs=Kl());let i=r?10:0,s={};for(let[o,a]of Object.entries(gs)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=n(t,i):typeof a=="object"&&(s[l]=n(a[e],i))}return s};function vg(){let n=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,r]of Object.entries(e)){for(let[i,s]of Object.entries(r))e[i]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},r[i]=e[i],n.set(s[0],s[1]);Object.defineProperty(e,t,{value:r,enumerable:!1})}return Object.defineProperty(e,"codes",{value:n,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",Nt(e.color,"ansi",()=>Ot(Yl,"ansi16",ar,!1)),Nt(e.color,"ansi256",()=>Ot(Jl,"ansi256",ar,!1)),Nt(e.color,"ansi16m",()=>Ot(Xl,"rgb",zl,!1)),Nt(e.bgColor,"ansi",()=>Ot(Yl,"ansi16",ar,!0)),Nt(e.bgColor,"ansi256",()=>Ot(Jl,"ansi256",ar,!0)),Nt(e.bgColor,"ansi16m",()=>Ot(Xl,"rgb",zl,!0)),e}Object.defineProperty(Ql,"exports",{enumerable:!0,get:vg})});var tc=_((Pb,ec)=>{"use strict";ec.exports=(n,e=process.argv)=>{let t=n.startsWith("-")?"":n.length===1?"-":"--",r=e.indexOf(t+n),i=e.indexOf("--");return r!==-1&&(i===-1||r{"use strict";var bg=require("os"),nc=require("tty"),Pe=tc(),{env:fe}=process,Ze;Pe("no-color")||Pe("no-colors")||Pe("color=false")||Pe("color=never")?Ze=0:(Pe("color")||Pe("colors")||Pe("color=true")||Pe("color=always"))&&(Ze=1);"FORCE_COLOR"in fe&&(fe.FORCE_COLOR==="true"?Ze=1:fe.FORCE_COLOR==="false"?Ze=0:Ze=fe.FORCE_COLOR.length===0?1:Math.min(parseInt(fe.FORCE_COLOR,10),3));function ys(n){return n===0?!1:{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function Es(n,e){if(Ze===0)return 0;if(Pe("color=16m")||Pe("color=full")||Pe("color=truecolor"))return 3;if(Pe("color=256"))return 2;if(n&&!e&&Ze===void 0)return 0;let t=Ze||0;if(fe.TERM==="dumb")return t;if(process.platform==="win32"){let r=bg.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in fe)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in fe)||fe.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in fe)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(fe.TEAMCITY_VERSION)?1:0;if(fe.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in fe){let r=parseInt((fe.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(fe.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(fe.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(fe.TERM)||"COLORTERM"in fe?1:t}function Ng(n){let e=Es(n,n&&n.isTTY);return ys(e)}rc.exports={supportsColor:Ng,stdout:ys(Es(!0,nc.isatty(1))),stderr:ys(Es(!0,nc.isatty(2)))}});var oc=_((qb,sc)=>{"use strict";var Og=(n,e,t)=>{let r=n.indexOf(e);if(r===-1)return n;let i=e.length,s=0,o="";do o+=n.substr(s,r-s)+e+t,s=r+i,r=n.indexOf(e,s);while(r!==-1);return o+=n.substr(s),o},Rg=(n,e,t,r)=>{let i=0,s="";do{let o=n[r-1]==="\r";s+=n.substr(i,(o?r-1:r)-i)+e+(o?`\r `:` `)+t,i=r+1,r=n.indexOf(` -`,i)}while(r!==-1);return s+=n.substr(i),s};zl.exports={stringReplaceAll:Sg,stringEncaseCRLFWithFirstIndex:Ag}});var rc=p((Ib,nc)=>{"use strict";var Ig=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Zl=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,wg=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,vg=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,bg=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function tc(n){let e=n[0]==="u",t=n[1]==="{";return e&&!t&&n.length===5||n[0]==="x"&&n.length===3?String.fromCharCode(parseInt(n.slice(1),16)):e&&t?String.fromCodePoint(parseInt(n.slice(2,-1),16)):bg.get(n)||n}function Ng(n,e){let t=[],r=e.trim().split(/\s*,\s*/g),i;for(let s of r){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(i=s.match(wg))t.push(i[2].replace(vg,(a,l,c)=>l?tc(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${n}')`)}return t}function Og(n){Zl.lastIndex=0;let e=[],t;for(;(t=Zl.exec(n))!==null;){let r=t[1];if(t[2]){let i=Ng(r,t[2]);e.push([r].concat(i))}else e.push([r])}return e}function ec(n,e){let t={};for(let i of e)for(let s of i.styles)t[s[0]]=i.inverse?null:s.slice(1);let r=n;for(let[i,s]of Object.entries(t))if(Array.isArray(s)){if(!(i in r))throw new Error(`Unknown Chalk style: ${i}`);r=s.length>0?r[i](...s):r[i]}return r}nc.exports=(n,e)=>{let t=[],r=[],i=[];if(e.replace(Ig,(s,o,a,l,c,u)=>{if(o)i.push(tc(o));else if(l){let f=i.join("");i=[],r.push(t.length===0?f:ec(n,t)(f)),t.push({inverse:a,styles:Og(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");r.push(ec(n,t)(i.join(""))),i=[],t.pop()}else i.push(u)}),r.push(i.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return r.join("")}});var uc=p((wb,cc)=>{"use strict";var Xt=Wl(),{stdout:_s,stderr:ps}=Xl(),{stringReplaceAll:Rg,stringEncaseCRLFWithFirstIndex:Cg}=Ql(),{isArray:nr}=Array,sc=["ansi","ansi","ansi256","ansi16m"],bt=Object.create(null),kg=(n,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=_s?_s.level:0;n.level=e.level===void 0?t:e.level},ms=class{constructor(e){return oc(e)}},oc=n=>{let e={};return kg(e,n),e.template=(...t)=>lc(e.template,...t),Object.setPrototypeOf(e,rr.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=ms,e.template};function rr(n){return oc(n)}for(let[n,e]of Object.entries(Xt))bt[n]={get(){let t=ir(this,gs(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,n,{value:t}),t}};bt.visible={get(){let n=ir(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:n}),n}};var ac=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let n of ac)bt[n]={get(){let{level:e}=this;return function(...t){let r=gs(Xt.color[sc[e]][n](...t),Xt.color.close,this._styler);return ir(this,r,this._isEmpty)}}};for(let n of ac){let e="bg"+n[0].toUpperCase()+n.slice(1);bt[e]={get(){let{level:t}=this;return function(...r){let i=gs(Xt.bgColor[sc[t]][n](...r),Xt.bgColor.close,this._styler);return ir(this,i,this._isEmpty)}}}}var Pg=Object.defineProperties(()=>{},{...bt,level:{enumerable:!0,get(){return this._generator.level},set(n){this._generator.level=n}}}),gs=(n,e,t)=>{let r,i;return t===void 0?(r=n,i=e):(r=t.openAll+n,i=e+t.closeAll),{open:n,close:e,openAll:r,closeAll:i,parent:t}},ir=(n,e,t)=>{let r=(...i)=>nr(i[0])&&nr(i[0].raw)?ic(r,lc(r,...i)):ic(r,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(r,Pg),r._generator=n,r._styler=e,r._isEmpty=t,r},ic=(n,e)=>{if(n.level<=0||!e)return n._isEmpty?"":e;let t=n._styler;if(t===void 0)return e;let{openAll:r,closeAll:i}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Rg(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=Cg(e,i,r,s)),r+e+i},ds,lc=(n,...e)=>{let[t]=e;if(!nr(t)||!nr(t.raw))return e.join(" ");let r=e.slice(1),i=[t.raw[0]];for(let s=1;s{Mg.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var mc=p((Nb,Ye)=>{var dc=require("fs"),Es=require("path"),Dg=require("os"),Fg=require("crypto"),jg=hc(),Ts=jg.version,Hg=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Bg(n){let e={},t=n.toString();t=t.replace(/\r\n?/mg,` -`);let r;for(;(r=Hg.exec(t))!=null;){let i=r[1],s=r[2]||"";s=s.trim();let o=s[0];s=s.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),o==='"'&&(s=s.replace(/\\n/g,` -`),s=s.replace(/\\r/g,"\r")),e[i]=s}return e}function Ug(n){let e=pc(n),t=he.configDotenv({path:e});if(!t.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let r=_c(n).split(","),i=r.length,s;for(let o=0;o=i)throw a}return he.parse(s)}function Vg(n){console.log(`[dotenv@${Ts}][INFO] ${n}`)}function Wg(n){console.log(`[dotenv@${Ts}][WARN] ${n}`)}function ys(n){console.log(`[dotenv@${Ts}][DEBUG] ${n}`)}function _c(n){return n&&n.DOTENV_KEY&&n.DOTENV_KEY.length>0?n.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Gg(n,e){let t;try{t=new URL(e)}catch(a){throw a.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):a}let r=t.password;if(!r)throw new Error("INVALID_DOTENV_KEY: Missing key part");let i=t.searchParams.get("environment");if(!i)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let s=`DOTENV_VAULT_${i.toUpperCase()}`,o=n.parsed[s];if(!o)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${s} in your .env.vault file.`);return{ciphertext:o,key:r}}function pc(n){let e=Es.resolve(process.cwd(),".env");return n&&n.path&&n.path.length>0&&(e=n.path),e.endsWith(".vault")?e:`${e}.vault`}function Kg(n){return n[0]==="~"?Es.join(Dg.homedir(),n.slice(1)):n}function Yg(n){Vg("Loading env from encrypted .env.vault");let e=he._parseVault(n),t=process.env;return n&&n.processEnv!=null&&(t=n.processEnv),he.populate(t,e,n),{parsed:e}}function Jg(n){let e=Es.resolve(process.cwd(),".env"),t="utf8",r=!!(n&&n.debug);n&&(n.path!=null&&(e=Kg(n.path)),n.encoding!=null&&(t=n.encoding));try{let i=he.parse(dc.readFileSync(e,{encoding:t})),s=process.env;return n&&n.processEnv!=null&&(s=n.processEnv),he.populate(s,i,n),{parsed:i}}catch(i){return r&&ys(`Failed to load ${e} ${i.message}`),{error:i}}}function Xg(n){let e=pc(n);return _c(n).length===0?he.configDotenv(n):dc.existsSync(e)?he._configVault(n):(Wg(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),he.configDotenv(n))}function zg(n,e){let t=Buffer.from(e.slice(-64),"hex"),r=Buffer.from(n,"base64"),i=r.slice(0,12),s=r.slice(-16);r=r.slice(12,-16);try{let o=Fg.createDecipheriv("aes-256-gcm",t,i);return o.setAuthTag(s),`${o.update(r)}${o.final()}`}catch(o){let a=o instanceof RangeError,l=o.message==="Invalid key length",c=o.message==="Unsupported state or unable to authenticate data";if(a||l){let u="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(u)}else if(c){let u="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(u)}else throw console.error("Error: ",o.code),console.error("Error: ",o.message),o}}function Qg(n,e,t={}){let r=!!(t&&t.debug),i=!!(t&&t.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let s of Object.keys(e))Object.prototype.hasOwnProperty.call(n,s)?(i===!0&&(n[s]=e[s]),r&&ys(i===!0?`"${s}" is already defined and WAS overwritten`:`"${s}" is already defined and was NOT overwritten`)):n[s]=e[s]}var he={configDotenv:Jg,_configVault:Yg,_parseVault:Ug,config:Xg,decrypt:zg,parse:Bg,populate:Qg};Ye.exports.configDotenv=he.configDotenv;Ye.exports._configVault=he._configVault;Ye.exports._parseVault=he._parseVault;Ye.exports.config=he.config;Ye.exports.decrypt=he.decrypt;Ye.exports.parse=he.parse;Ye.exports.populate=he.populate;Ye.exports=he});var Ie=p(Ls=>{"use strict";Ls.fromCallback=function(n){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")n.apply(this,e);else return new Promise((t,r)=>{n.call(this,...e,(i,s)=>i!=null?r(i):t(s))})},"name",{value:n.name})};Ls.fromPromise=function(n){return Object.defineProperty(function(...e){let t=e[e.length-1];if(typeof t!="function")return n.apply(this,e);n.apply(this,e.slice(0,-1)).then(r=>t(null,r),t)},"name",{value:n.name})}});var yc=p((Rb,gc)=>{var Qe=require("constants"),Zg=process.cwd,ar=null,e0=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return ar||(ar=Zg.call(process)),ar};try{process.cwd()}catch{}typeof process.chdir=="function"&&(Ss=process.chdir,process.chdir=function(n){ar=null,Ss.call(process,n)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,Ss));var Ss;gc.exports=t0;function t0(n){Qe.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(n),n.lutimes||t(n),n.chown=s(n.chown),n.fchown=s(n.fchown),n.lchown=s(n.lchown),n.chmod=r(n.chmod),n.fchmod=r(n.fchmod),n.lchmod=r(n.lchmod),n.chownSync=o(n.chownSync),n.fchownSync=o(n.fchownSync),n.lchownSync=o(n.lchownSync),n.chmodSync=i(n.chmodSync),n.fchmodSync=i(n.fchmodSync),n.lchmodSync=i(n.lchmodSync),n.stat=a(n.stat),n.fstat=a(n.fstat),n.lstat=a(n.lstat),n.statSync=l(n.statSync),n.fstatSync=l(n.fstatSync),n.lstatSync=l(n.lstatSync),n.chmod&&!n.lchmod&&(n.lchmod=function(u,f,_){_&&process.nextTick(_)},n.lchmodSync=function(){}),n.chown&&!n.lchown&&(n.lchown=function(u,f,_,h){h&&process.nextTick(h)},n.lchownSync=function(){}),e0==="win32"&&(n.rename=typeof n.rename!="function"?n.rename:function(u){function f(_,h,T){var g=Date.now(),m=0;u(_,h,function A(w){if(w&&(w.code==="EACCES"||w.code==="EPERM"||w.code==="EBUSY")&&Date.now()-g<6e4){setTimeout(function(){n.stat(h,function(b,$){b&&b.code==="ENOENT"?u(_,h,A):T(w)})},m),m<100&&(m+=10);return}T&&T(w)})}return Object.setPrototypeOf&&Object.setPrototypeOf(f,u),f}(n.rename)),n.read=typeof n.read!="function"?n.read:function(u){function f(_,h,T,g,m,A){var w;if(A&&typeof A=="function"){var b=0;w=function($,M,v){if($&&$.code==="EAGAIN"&&b<10)return b++,u.call(n,_,h,T,g,m,w);A.apply(this,arguments)}}return u.call(n,_,h,T,g,m,w)}return Object.setPrototypeOf&&Object.setPrototypeOf(f,u),f}(n.read),n.readSync=typeof n.readSync!="function"?n.readSync:function(u){return function(f,_,h,T,g){for(var m=0;;)try{return u.call(n,f,_,h,T,g)}catch(A){if(A.code==="EAGAIN"&&m<10){m++;continue}throw A}}}(n.readSync);function e(u){u.lchmod=function(f,_,h){u.open(f,Qe.O_WRONLY|Qe.O_SYMLINK,_,function(T,g){if(T){h&&h(T);return}u.fchmod(g,_,function(m){u.close(g,function(A){h&&h(m||A)})})})},u.lchmodSync=function(f,_){var h=u.openSync(f,Qe.O_WRONLY|Qe.O_SYMLINK,_),T=!0,g;try{g=u.fchmodSync(h,_),T=!1}finally{if(T)try{u.closeSync(h)}catch{}else u.closeSync(h)}return g}}function t(u){Qe.hasOwnProperty("O_SYMLINK")&&u.futimes?(u.lutimes=function(f,_,h,T){u.open(f,Qe.O_SYMLINK,function(g,m){if(g){T&&T(g);return}u.futimes(m,_,h,function(A){u.close(m,function(w){T&&T(A||w)})})})},u.lutimesSync=function(f,_,h){var T=u.openSync(f,Qe.O_SYMLINK),g,m=!0;try{g=u.futimesSync(T,_,h),m=!1}finally{if(m)try{u.closeSync(T)}catch{}else u.closeSync(T)}return g}):u.futimes&&(u.lutimes=function(f,_,h,T){T&&process.nextTick(T)},u.lutimesSync=function(){})}function r(u){return u&&function(f,_,h){return u.call(n,f,_,function(T){c(T)&&(T=null),h&&h.apply(this,arguments)})}}function i(u){return u&&function(f,_){try{return u.call(n,f,_)}catch(h){if(!c(h))throw h}}}function s(u){return u&&function(f,_,h,T){return u.call(n,f,_,h,function(g){c(g)&&(g=null),T&&T.apply(this,arguments)})}}function o(u){return u&&function(f,_,h){try{return u.call(n,f,_,h)}catch(T){if(!c(T))throw T}}}function a(u){return u&&function(f,_,h){typeof _=="function"&&(h=_,_=null);function T(g,m){m&&(m.uid<0&&(m.uid+=4294967296),m.gid<0&&(m.gid+=4294967296)),h&&h.apply(this,arguments)}return _?u.call(n,f,_,T):u.call(n,f,T)}}function l(u){return u&&function(f,_){var h=_?u.call(n,f,_):u.call(n,f);return h&&(h.uid<0&&(h.uid+=4294967296),h.gid<0&&(h.gid+=4294967296)),h}}function c(u){if(!u||u.code==="ENOSYS")return!0;var f=!process.getuid||process.getuid()!==0;return!!(f&&(u.code==="EINVAL"||u.code==="EPERM"))}}});var Lc=p((Cb,Tc)=>{var Ec=require("stream").Stream;Tc.exports=n0;function n0(n){return{ReadStream:e,WriteStream:t};function e(r,i){if(!(this instanceof e))return new e(r,i);Ec.call(this);var s=this;this.path=r,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var o=Object.keys(i),a=0,l=o.length;athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){s._read()});return}n.open(this.path,this.flags,this.mode,function(u,f){if(u){s.emit("error",u),s.readable=!1;return}s.fd=f,s.emit("open",f),s._read()})}function t(r,i){if(!(this instanceof t))return new t(r,i);Ec.call(this),this.path=r,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var s=Object.keys(i),o=0,a=s.length;o= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=n.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Ac=p((kb,Sc)=>{"use strict";Sc.exports=i0;var r0=Object.getPrototypeOf||function(n){return n.__proto__};function i0(n){if(n===null||typeof n!="object")return n;if(n instanceof Object)var e={__proto__:r0(n)};else var e=Object.create(null);return Object.getOwnPropertyNames(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}});var we=p((Pb,ws)=>{var se=require("fs"),s0=yc(),o0=Lc(),a0=Ac(),lr=require("util"),me,ur;typeof Symbol=="function"&&typeof Symbol.for=="function"?(me=Symbol.for("graceful-fs.queue"),ur=Symbol.for("graceful-fs.previous")):(me="___graceful-fs.queue",ur="___graceful-fs.previous");function l0(){}function vc(n,e){Object.defineProperty(n,me,{get:function(){return e}})}var dt=l0;lr.debuglog?dt=lr.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(dt=function(){var n=lr.format.apply(lr,arguments);n="GFS4: "+n.split(/\n/).join(` -GFS4: `),console.error(n)});se[me]||(Ic=global[me]||[],vc(se,Ic),se.close=function(n){function e(t,r){return n.call(se,t,function(i){i||wc(),typeof r=="function"&&r.apply(this,arguments)})}return Object.defineProperty(e,ur,{value:n}),e}(se.close),se.closeSync=function(n){function e(t){n.apply(se,arguments),wc()}return Object.defineProperty(e,ur,{value:n}),e}(se.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){dt(se[me]),require("assert").equal(se[me].length,0)}));var Ic;global[me]||vc(global,se[me]);ws.exports=As(a0(se));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!se.__patched&&(ws.exports=As(se),se.__patched=!0);function As(n){s0(n),n.gracefulify=As,n.createReadStream=M,n.createWriteStream=v;var e=n.readFile;n.readFile=t;function t(P,j,D){return typeof j=="function"&&(D=j,j=null),F(P,j,D);function F(X,ie,K,U){return e(X,ie,function(Y){Y&&(Y.code==="EMFILE"||Y.code==="ENFILE")?Nt([F,[X,ie,K],Y,U||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var r=n.writeFile;n.writeFile=i;function i(P,j,D,F){return typeof D=="function"&&(F=D,D=null),X(P,j,D,F);function X(ie,K,U,Y,ae){return r(ie,K,U,function(z){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Nt([X,[ie,K,U,Y],z,ae||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}var s=n.appendFile;s&&(n.appendFile=o);function o(P,j,D,F){return typeof D=="function"&&(F=D,D=null),X(P,j,D,F);function X(ie,K,U,Y,ae){return s(ie,K,U,function(z){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Nt([X,[ie,K,U,Y],z,ae||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}var a=n.copyFile;a&&(n.copyFile=l);function l(P,j,D,F){return typeof D=="function"&&(F=D,D=0),X(P,j,D,F);function X(ie,K,U,Y,ae){return a(ie,K,U,function(z){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Nt([X,[ie,K,U,Y],z,ae||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}var c=n.readdir;n.readdir=f;var u=/^v[0-5]\./;function f(P,j,D){typeof j=="function"&&(D=j,j=null);var F=u.test(process.version)?function(K,U,Y,ae){return c(K,X(K,U,Y,ae))}:function(K,U,Y,ae){return c(K,U,X(K,U,Y,ae))};return F(P,j,D);function X(ie,K,U,Y){return function(ae,z){ae&&(ae.code==="EMFILE"||ae.code==="ENFILE")?Nt([F,[ie,K,U],ae,Y||Date.now(),Date.now()]):(z&&z.sort&&z.sort(),typeof U=="function"&&U.call(this,ae,z))}}}if(process.version.substr(0,4)==="v0.8"){var _=o0(n);A=_.ReadStream,b=_.WriteStream}var h=n.ReadStream;h&&(A.prototype=Object.create(h.prototype),A.prototype.open=w);var T=n.WriteStream;T&&(b.prototype=Object.create(T.prototype),b.prototype.open=$),Object.defineProperty(n,"ReadStream",{get:function(){return A},set:function(P){A=P},enumerable:!0,configurable:!0}),Object.defineProperty(n,"WriteStream",{get:function(){return b},set:function(P){b=P},enumerable:!0,configurable:!0});var g=A;Object.defineProperty(n,"FileReadStream",{get:function(){return g},set:function(P){g=P},enumerable:!0,configurable:!0});var m=b;Object.defineProperty(n,"FileWriteStream",{get:function(){return m},set:function(P){m=P},enumerable:!0,configurable:!0});function A(P,j){return this instanceof A?(h.apply(this,arguments),this):A.apply(Object.create(A.prototype),arguments)}function w(){var P=this;G(P.path,P.flags,P.mode,function(j,D){j?(P.autoClose&&P.destroy(),P.emit("error",j)):(P.fd=D,P.emit("open",D),P.read())})}function b(P,j){return this instanceof b?(T.apply(this,arguments),this):b.apply(Object.create(b.prototype),arguments)}function $(){var P=this;G(P.path,P.flags,P.mode,function(j,D){j?(P.destroy(),P.emit("error",j)):(P.fd=D,P.emit("open",D))})}function M(P,j){return new n.ReadStream(P,j)}function v(P,j){return new n.WriteStream(P,j)}var V=n.open;n.open=G;function G(P,j,D,F){return typeof D=="function"&&(F=D,D=null),X(P,j,D,F);function X(ie,K,U,Y,ae){return V(ie,K,U,function(z,_e){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Nt([X,[ie,K,U,Y],z,ae||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}return n}function Nt(n){dt("ENQUEUE",n[0].name,n[1]),se[me].push(n),Is()}var cr;function wc(){for(var n=Date.now(),e=0;e2&&(se[me][e][3]=n,se[me][e][4]=n);Is()}function Is(){if(clearTimeout(cr),cr=void 0,se[me].length!==0){var n=se[me].shift(),e=n[0],t=n[1],r=n[2],i=n[3],s=n[4];if(i===void 0)dt("RETRY",e.name,t),e.apply(null,t);else if(Date.now()-i>=6e4){dt("TIMEOUT",e.name,t);var o=t.pop();typeof o=="function"&&o.call(null,r)}else{var a=Date.now()-s,l=Math.max(s-i,1),c=Math.min(l*1.2,100);a>=c?(dt("RETRY",e.name,t),e.apply(null,t.concat([i]))):se[me].push(n)}cr===void 0&&(cr=setTimeout(Is,0))}}});var _t=p(Je=>{"use strict";var bc=Ie().fromCallback,Ee=we(),c0=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(n=>typeof Ee[n]=="function");Object.assign(Je,Ee);c0.forEach(n=>{Je[n]=bc(Ee[n])});Je.exists=function(n,e){return typeof e=="function"?Ee.exists(n,e):new Promise(t=>Ee.exists(n,t))};Je.read=function(n,e,t,r,i,s){return typeof s=="function"?Ee.read(n,e,t,r,i,s):new Promise((o,a)=>{Ee.read(n,e,t,r,i,(l,c,u)=>{if(l)return a(l);o({bytesRead:c,buffer:u})})})};Je.write=function(n,e,...t){return typeof t[t.length-1]=="function"?Ee.write(n,e,...t):new Promise((r,i)=>{Ee.write(n,e,...t,(s,o,a)=>{if(s)return i(s);r({bytesWritten:o,buffer:a})})})};Je.readv=function(n,e,...t){return typeof t[t.length-1]=="function"?Ee.readv(n,e,...t):new Promise((r,i)=>{Ee.readv(n,e,...t,(s,o,a)=>{if(s)return i(s);r({bytesRead:o,buffers:a})})})};Je.writev=function(n,e,...t){return typeof t[t.length-1]=="function"?Ee.writev(n,e,...t):new Promise((r,i)=>{Ee.writev(n,e,...t,(s,o,a)=>{if(s)return i(s);r({bytesWritten:o,buffers:a})})})};typeof Ee.realpath.native=="function"?Je.realpath.native=bc(Ee.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Oc=p((qb,Nc)=>{"use strict";var u0=require("path");Nc.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(u0.parse(e).root,""))){let r=new Error(`Path contains invalid characters: ${e}`);throw r.code="EINVAL",r}}});var Pc=p((xb,vs)=>{"use strict";var Rc=_t(),{checkPath:Cc}=Oc(),kc=n=>{let e={mode:511};return typeof n=="number"?n:{...e,...n}.mode};vs.exports.makeDir=async(n,e)=>(Cc(n),Rc.mkdir(n,{mode:kc(e),recursive:!0}));vs.exports.makeDirSync=(n,e)=>(Cc(n),Rc.mkdirSync(n,{mode:kc(e),recursive:!0}))});var je=p((Mb,$c)=>{"use strict";var f0=Ie().fromPromise,{makeDir:h0,makeDirSync:bs}=Pc(),Ns=f0(h0);$c.exports={mkdirs:Ns,mkdirsSync:bs,mkdirp:Ns,mkdirpSync:bs,ensureDir:Ns,ensureDirSync:bs}});var Ze=p((Db,xc)=>{"use strict";var d0=Ie().fromPromise,qc=_t();function _0(n){return qc.access(n).then(()=>!0).catch(()=>!1)}xc.exports={pathExists:d0(_0),pathExistsSync:qc.existsSync}});var Os=p((Fb,Mc)=>{"use strict";var Ot=we();function p0(n,e,t,r){Ot.open(n,"r+",(i,s)=>{if(i)return r(i);Ot.futimes(s,e,t,o=>{Ot.close(s,a=>{r&&r(o||a)})})})}function m0(n,e,t){let r=Ot.openSync(n,"r+");return Ot.futimesSync(r,e,t),Ot.closeSync(r)}Mc.exports={utimesMillis:p0,utimesMillisSync:m0}});var pt=p((jb,jc)=>{"use strict";var Rt=_t(),de=require("path"),g0=require("util");function y0(n,e,t){let r=t.dereference?i=>Rt.stat(i,{bigint:!0}):i=>Rt.lstat(i,{bigint:!0});return Promise.all([r(n),r(e).catch(i=>{if(i.code==="ENOENT")return null;throw i})]).then(([i,s])=>({srcStat:i,destStat:s}))}function E0(n,e,t){let r,i=t.dereference?o=>Rt.statSync(o,{bigint:!0}):o=>Rt.lstatSync(o,{bigint:!0}),s=i(n);try{r=i(e)}catch(o){if(o.code==="ENOENT")return{srcStat:s,destStat:null};throw o}return{srcStat:s,destStat:r}}function T0(n,e,t,r,i){g0.callbackify(y0)(n,e,r,(s,o)=>{if(s)return i(s);let{srcStat:a,destStat:l}=o;if(l){if(zt(a,l)){let c=de.basename(n),u=de.basename(e);return t==="move"&&c!==u&&c.toLowerCase()===u.toLowerCase()?i(null,{srcStat:a,destStat:l,isChangingCase:!0}):i(new Error("Source and destination must not be the same."))}if(a.isDirectory()&&!l.isDirectory())return i(new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`));if(!a.isDirectory()&&l.isDirectory())return i(new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`))}return a.isDirectory()&&Rs(n,e)?i(new Error(fr(n,e,t))):i(null,{srcStat:a,destStat:l})})}function L0(n,e,t,r){let{srcStat:i,destStat:s}=E0(n,e,r);if(s){if(zt(i,s)){let o=de.basename(n),a=de.basename(e);if(t==="move"&&o!==a&&o.toLowerCase()===a.toLowerCase())return{srcStat:i,destStat:s,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!s.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`);if(!i.isDirectory()&&s.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`)}if(i.isDirectory()&&Rs(n,e))throw new Error(fr(n,e,t));return{srcStat:i,destStat:s}}function Dc(n,e,t,r,i){let s=de.resolve(de.dirname(n)),o=de.resolve(de.dirname(t));if(o===s||o===de.parse(o).root)return i();Rt.stat(o,{bigint:!0},(a,l)=>a?a.code==="ENOENT"?i():i(a):zt(e,l)?i(new Error(fr(n,t,r))):Dc(n,e,o,r,i))}function Fc(n,e,t,r){let i=de.resolve(de.dirname(n)),s=de.resolve(de.dirname(t));if(s===i||s===de.parse(s).root)return;let o;try{o=Rt.statSync(s,{bigint:!0})}catch(a){if(a.code==="ENOENT")return;throw a}if(zt(e,o))throw new Error(fr(n,t,r));return Fc(n,e,s,r)}function zt(n,e){return e.ino&&e.dev&&e.ino===n.ino&&e.dev===n.dev}function Rs(n,e){let t=de.resolve(n).split(de.sep).filter(i=>i),r=de.resolve(e).split(de.sep).filter(i=>i);return t.reduce((i,s,o)=>i&&r[o]===s,!0)}function fr(n,e,t){return`Cannot ${t} '${n}' to a subdirectory of itself, '${e}'.`}jc.exports={checkPaths:T0,checkPathsSync:L0,checkParentPaths:Dc,checkParentPathsSync:Fc,isSrcSubdir:Rs,areIdentical:zt}});var Gc=p((Hb,Wc)=>{"use strict";var ve=we(),Qt=require("path"),S0=je().mkdirs,A0=Ze().pathExists,I0=Os().utimesMillis,Zt=pt();function w0(n,e,t,r){typeof t=="function"&&!r?(r=t,t={}):typeof t=="function"&&(t={filter:t}),r=r||function(){},t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; +`,i)}while(r!==-1);return s+=n.substr(i),s};sc.exports={stringReplaceAll:Og,stringEncaseCRLFWithFirstIndex:Rg}});var fc=_((xb,uc)=>{"use strict";var Cg=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,ac=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,kg=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Pg=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,$g=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function cc(n){let e=n[0]==="u",t=n[1]==="{";return e&&!t&&n.length===5||n[0]==="x"&&n.length===3?String.fromCharCode(parseInt(n.slice(1),16)):e&&t?String.fromCodePoint(parseInt(n.slice(2,-1),16)):$g.get(n)||n}function qg(n,e){let t=[],r=e.trim().split(/\s*,\s*/g),i;for(let s of r){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(i=s.match(kg))t.push(i[2].replace(Pg,(a,l,c)=>l?cc(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${n}')`)}return t}function xg(n){ac.lastIndex=0;let e=[],t;for(;(t=ac.exec(n))!==null;){let r=t[1];if(t[2]){let i=qg(r,t[2]);e.push([r].concat(i))}else e.push([r])}return e}function lc(n,e){let t={};for(let i of e)for(let s of i.styles)t[s[0]]=i.inverse?null:s.slice(1);let r=n;for(let[i,s]of Object.entries(t))if(Array.isArray(s)){if(!(i in r))throw new Error(`Unknown Chalk style: ${i}`);r=s.length>0?r[i](...s):r[i]}return r}uc.exports=(n,e)=>{let t=[],r=[],i=[];if(e.replace(Cg,(s,o,a,l,c,u)=>{if(o)i.push(cc(o));else if(l){let f=i.join("");i=[],r.push(t.length===0?f:lc(n,t)(f)),t.push({inverse:a,styles:xg(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");r.push(lc(n,t)(i.join(""))),i=[],t.pop()}else i.push(u)}),r.push(i.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return r.join("")}});var yc=_((Mb,gc)=>{"use strict";var en=Zl(),{stdout:Ls,stderr:Ss}=ic(),{stringReplaceAll:Mg,stringEncaseCRLFWithFirstIndex:Fg}=oc(),{isArray:lr}=Array,dc=["ansi","ansi","ansi256","ansi16m"],Rt=Object.create(null),Dg=(n,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=Ls?Ls.level:0;n.level=e.level===void 0?t:e.level},As=class{constructor(e){return pc(e)}},pc=n=>{let e={};return Dg(e,n),e.template=(...t)=>mc(e.template,...t),Object.setPrototypeOf(e,cr.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=As,e.template};function cr(n){return pc(n)}for(let[n,e]of Object.entries(en))Rt[n]={get(){let t=ur(this,Is(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,n,{value:t}),t}};Rt.visible={get(){let n=ur(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:n}),n}};var _c=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let n of _c)Rt[n]={get(){let{level:e}=this;return function(...t){let r=Is(en.color[dc[e]][n](...t),en.color.close,this._styler);return ur(this,r,this._isEmpty)}}};for(let n of _c){let e="bg"+n[0].toUpperCase()+n.slice(1);Rt[e]={get(){let{level:t}=this;return function(...r){let i=Is(en.bgColor[dc[t]][n](...r),en.bgColor.close,this._styler);return ur(this,i,this._isEmpty)}}}}var jg=Object.defineProperties(()=>{},{...Rt,level:{enumerable:!0,get(){return this._generator.level},set(n){this._generator.level=n}}}),Is=(n,e,t)=>{let r,i;return t===void 0?(r=n,i=e):(r=t.openAll+n,i=e+t.closeAll),{open:n,close:e,openAll:r,closeAll:i,parent:t}},ur=(n,e,t)=>{let r=(...i)=>lr(i[0])&&lr(i[0].raw)?hc(r,mc(r,...i)):hc(r,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(r,jg),r._generator=n,r._styler=e,r._isEmpty=t,r},hc=(n,e)=>{if(n.level<=0||!e)return n._isEmpty?"":e;let t=n._styler;if(t===void 0)return e;let{openAll:r,closeAll:i}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Mg(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`);return s!==-1&&(e=Fg(e,i,r,s)),r+e+i},Ts,mc=(n,...e)=>{let[t]=e;if(!lr(t)||!lr(t.raw))return e.join(" ");let r=e.slice(1),i=[t.raw[0]];for(let s=1;s{Vg.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var Ic=_((jb,Je)=>{var Lc=require("fs"),vs=require("path"),Wg=require("os"),Gg=require("crypto"),Kg=Tc(),bs=Kg.version,Yg=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Jg(n){let e={},t=n.toString();t=t.replace(/\r\n?/mg,` +`);let r;for(;(r=Yg.exec(t))!=null;){let i=r[1],s=r[2]||"";s=s.trim();let o=s[0];s=s.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),o==='"'&&(s=s.replace(/\\n/g,` +`),s=s.replace(/\\r/g,"\r")),e[i]=s}return e}function Xg(n){let e=Ac(n),t=he.configDotenv({path:e});if(!t.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let r=Sc(n).split(","),i=r.length,s;for(let o=0;o=i)throw a}return he.parse(s)}function zg(n){console.log(`[dotenv@${bs}][INFO] ${n}`)}function Qg(n){console.log(`[dotenv@${bs}][WARN] ${n}`)}function ws(n){console.log(`[dotenv@${bs}][DEBUG] ${n}`)}function Sc(n){return n&&n.DOTENV_KEY&&n.DOTENV_KEY.length>0?n.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Zg(n,e){let t;try{t=new URL(e)}catch(a){throw a.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):a}let r=t.password;if(!r)throw new Error("INVALID_DOTENV_KEY: Missing key part");let i=t.searchParams.get("environment");if(!i)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let s=`DOTENV_VAULT_${i.toUpperCase()}`,o=n.parsed[s];if(!o)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${s} in your .env.vault file.`);return{ciphertext:o,key:r}}function Ac(n){let e=vs.resolve(process.cwd(),".env");return n&&n.path&&n.path.length>0&&(e=n.path),e.endsWith(".vault")?e:`${e}.vault`}function e0(n){return n[0]==="~"?vs.join(Wg.homedir(),n.slice(1)):n}function t0(n){zg("Loading env from encrypted .env.vault");let e=he._parseVault(n),t=process.env;return n&&n.processEnv!=null&&(t=n.processEnv),he.populate(t,e,n),{parsed:e}}function n0(n){let e=vs.resolve(process.cwd(),".env"),t="utf8",r=!!(n&&n.debug);n&&(n.path!=null&&(e=e0(n.path)),n.encoding!=null&&(t=n.encoding));try{let i=he.parse(Lc.readFileSync(e,{encoding:t})),s=process.env;return n&&n.processEnv!=null&&(s=n.processEnv),he.populate(s,i,n),{parsed:i}}catch(i){return r&&ws(`Failed to load ${e} ${i.message}`),{error:i}}}function r0(n){let e=Ac(n);return Sc(n).length===0?he.configDotenv(n):Lc.existsSync(e)?he._configVault(n):(Qg(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),he.configDotenv(n))}function i0(n,e){let t=Buffer.from(e.slice(-64),"hex"),r=Buffer.from(n,"base64"),i=r.slice(0,12),s=r.slice(-16);r=r.slice(12,-16);try{let o=Gg.createDecipheriv("aes-256-gcm",t,i);return o.setAuthTag(s),`${o.update(r)}${o.final()}`}catch(o){let a=o instanceof RangeError,l=o.message==="Invalid key length",c=o.message==="Unsupported state or unable to authenticate data";if(a||l){let u="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(u)}else if(c){let u="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(u)}else throw console.error("Error: ",o.code),console.error("Error: ",o.message),o}}function s0(n,e,t={}){let r=!!(t&&t.debug),i=!!(t&&t.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let s of Object.keys(e))Object.prototype.hasOwnProperty.call(n,s)?(i===!0&&(n[s]=e[s]),r&&ws(i===!0?`"${s}" is already defined and WAS overwritten`:`"${s}" is already defined and was NOT overwritten`)):n[s]=e[s]}var he={configDotenv:n0,_configVault:t0,_parseVault:Xg,config:r0,decrypt:i0,parse:Jg,populate:s0};Je.exports.configDotenv=he.configDotenv;Je.exports._configVault=he._configVault;Je.exports._parseVault=he._parseVault;Je.exports.config=he.config;Je.exports.decrypt=he.decrypt;Je.exports.parse=he.parse;Je.exports.populate=he.populate;Je.exports=he});var we=_(Ns=>{"use strict";Ns.fromCallback=function(n){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")n.apply(this,e);else return new Promise((t,r)=>{n.call(this,...e,(i,s)=>i!=null?r(i):t(s))})},"name",{value:n.name})};Ns.fromPromise=function(n){return Object.defineProperty(function(...e){let t=e[e.length-1];if(typeof t!="function")return n.apply(this,e);n.apply(this,e.slice(0,-1)).then(r=>t(null,r),t)},"name",{value:n.name})}});var vc=_((Bb,wc)=>{var et=require("constants"),o0=process.cwd,dr=null,a0=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return dr||(dr=o0.call(process)),dr};try{process.cwd()}catch{}typeof process.chdir=="function"&&(Os=process.chdir,process.chdir=function(n){dr=null,Os.call(process,n)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,Os));var Os;wc.exports=l0;function l0(n){et.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(n),n.lutimes||t(n),n.chown=s(n.chown),n.fchown=s(n.fchown),n.lchown=s(n.lchown),n.chmod=r(n.chmod),n.fchmod=r(n.fchmod),n.lchmod=r(n.lchmod),n.chownSync=o(n.chownSync),n.fchownSync=o(n.fchownSync),n.lchownSync=o(n.lchownSync),n.chmodSync=i(n.chmodSync),n.fchmodSync=i(n.fchmodSync),n.lchmodSync=i(n.lchmodSync),n.stat=a(n.stat),n.fstat=a(n.fstat),n.lstat=a(n.lstat),n.statSync=l(n.statSync),n.fstatSync=l(n.fstatSync),n.lstatSync=l(n.lstatSync),n.chmod&&!n.lchmod&&(n.lchmod=function(u,f,d){d&&process.nextTick(d)},n.lchmodSync=function(){}),n.chown&&!n.lchown&&(n.lchown=function(u,f,d,h){h&&process.nextTick(h)},n.lchownSync=function(){}),a0==="win32"&&(n.rename=typeof n.rename!="function"?n.rename:function(u){function f(d,h,y){var g=Date.now(),m=0;u(d,h,function A(w){if(w&&(w.code==="EACCES"||w.code==="EPERM"||w.code==="EBUSY")&&Date.now()-g<6e4){setTimeout(function(){n.stat(h,function(b,$){b&&b.code==="ENOENT"?u(d,h,A):y(w)})},m),m<100&&(m+=10);return}y&&y(w)})}return Object.setPrototypeOf&&Object.setPrototypeOf(f,u),f}(n.rename)),n.read=typeof n.read!="function"?n.read:function(u){function f(d,h,y,g,m,A){var w;if(A&&typeof A=="function"){var b=0;w=function($,M,v){if($&&$.code==="EAGAIN"&&b<10)return b++,u.call(n,d,h,y,g,m,w);A.apply(this,arguments)}}return u.call(n,d,h,y,g,m,w)}return Object.setPrototypeOf&&Object.setPrototypeOf(f,u),f}(n.read),n.readSync=typeof n.readSync!="function"?n.readSync:function(u){return function(f,d,h,y,g){for(var m=0;;)try{return u.call(n,f,d,h,y,g)}catch(A){if(A.code==="EAGAIN"&&m<10){m++;continue}throw A}}}(n.readSync);function e(u){u.lchmod=function(f,d,h){u.open(f,et.O_WRONLY|et.O_SYMLINK,d,function(y,g){if(y){h&&h(y);return}u.fchmod(g,d,function(m){u.close(g,function(A){h&&h(m||A)})})})},u.lchmodSync=function(f,d){var h=u.openSync(f,et.O_WRONLY|et.O_SYMLINK,d),y=!0,g;try{g=u.fchmodSync(h,d),y=!1}finally{if(y)try{u.closeSync(h)}catch{}else u.closeSync(h)}return g}}function t(u){et.hasOwnProperty("O_SYMLINK")&&u.futimes?(u.lutimes=function(f,d,h,y){u.open(f,et.O_SYMLINK,function(g,m){if(g){y&&y(g);return}u.futimes(m,d,h,function(A){u.close(m,function(w){y&&y(A||w)})})})},u.lutimesSync=function(f,d,h){var y=u.openSync(f,et.O_SYMLINK),g,m=!0;try{g=u.futimesSync(y,d,h),m=!1}finally{if(m)try{u.closeSync(y)}catch{}else u.closeSync(y)}return g}):u.futimes&&(u.lutimes=function(f,d,h,y){y&&process.nextTick(y)},u.lutimesSync=function(){})}function r(u){return u&&function(f,d,h){return u.call(n,f,d,function(y){c(y)&&(y=null),h&&h.apply(this,arguments)})}}function i(u){return u&&function(f,d){try{return u.call(n,f,d)}catch(h){if(!c(h))throw h}}}function s(u){return u&&function(f,d,h,y){return u.call(n,f,d,h,function(g){c(g)&&(g=null),y&&y.apply(this,arguments)})}}function o(u){return u&&function(f,d,h){try{return u.call(n,f,d,h)}catch(y){if(!c(y))throw y}}}function a(u){return u&&function(f,d,h){typeof d=="function"&&(h=d,d=null);function y(g,m){m&&(m.uid<0&&(m.uid+=4294967296),m.gid<0&&(m.gid+=4294967296)),h&&h.apply(this,arguments)}return d?u.call(n,f,d,y):u.call(n,f,y)}}function l(u){return u&&function(f,d){var h=d?u.call(n,f,d):u.call(n,f);return h&&(h.uid<0&&(h.uid+=4294967296),h.gid<0&&(h.gid+=4294967296)),h}}function c(u){if(!u||u.code==="ENOSYS")return!0;var f=!process.getuid||process.getuid()!==0;return!!(f&&(u.code==="EINVAL"||u.code==="EPERM"))}}});var Oc=_((Ub,Nc)=>{var bc=require("stream").Stream;Nc.exports=c0;function c0(n){return{ReadStream:e,WriteStream:t};function e(r,i){if(!(this instanceof e))return new e(r,i);bc.call(this);var s=this;this.path=r,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var o=Object.keys(i),a=0,l=o.length;athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){s._read()});return}n.open(this.path,this.flags,this.mode,function(u,f){if(u){s.emit("error",u),s.readable=!1;return}s.fd=f,s.emit("open",f),s._read()})}function t(r,i){if(!(this instanceof t))return new t(r,i);bc.call(this),this.path=r,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var s=Object.keys(i),o=0,a=s.length;o= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=n.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Cc=_((Vb,Rc)=>{"use strict";Rc.exports=f0;var u0=Object.getPrototypeOf||function(n){return n.__proto__};function f0(n){if(n===null||typeof n!="object")return n;if(n instanceof Object)var e={__proto__:u0(n)};else var e=Object.create(null);return Object.getOwnPropertyNames(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}});var ve=_((Wb,ks)=>{var se=require("fs"),h0=vc(),d0=Oc(),p0=Cc(),pr=require("util"),me,mr;typeof Symbol=="function"&&typeof Symbol.for=="function"?(me=Symbol.for("graceful-fs.queue"),mr=Symbol.for("graceful-fs.previous")):(me="___graceful-fs.queue",mr="___graceful-fs.previous");function _0(){}function $c(n,e){Object.defineProperty(n,me,{get:function(){return e}})}var gt=_0;pr.debuglog?gt=pr.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(gt=function(){var n=pr.format.apply(pr,arguments);n="GFS4: "+n.split(/\n/).join(` +GFS4: `),console.error(n)});se[me]||(kc=global[me]||[],$c(se,kc),se.close=function(n){function e(t,r){return n.call(se,t,function(i){i||Pc(),typeof r=="function"&&r.apply(this,arguments)})}return Object.defineProperty(e,mr,{value:n}),e}(se.close),se.closeSync=function(n){function e(t){n.apply(se,arguments),Pc()}return Object.defineProperty(e,mr,{value:n}),e}(se.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){gt(se[me]),require("assert").equal(se[me].length,0)}));var kc;global[me]||$c(global,se[me]);ks.exports=Rs(p0(se));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!se.__patched&&(ks.exports=Rs(se),se.__patched=!0);function Rs(n){h0(n),n.gracefulify=Rs,n.createReadStream=M,n.createWriteStream=v;var e=n.readFile;n.readFile=t;function t(P,j,F){return typeof j=="function"&&(F=j,j=null),D(P,j,F);function D(X,ie,K,U){return e(X,ie,function(Y){Y&&(Y.code==="EMFILE"||Y.code==="ENFILE")?Ct([D,[X,ie,K],Y,U||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var r=n.writeFile;n.writeFile=i;function i(P,j,F,D){return typeof F=="function"&&(D=F,F=null),X(P,j,F,D);function X(ie,K,U,Y,le){return r(ie,K,U,function(z){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Ct([X,[ie,K,U,Y],z,le||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}var s=n.appendFile;s&&(n.appendFile=o);function o(P,j,F,D){return typeof F=="function"&&(D=F,F=null),X(P,j,F,D);function X(ie,K,U,Y,le){return s(ie,K,U,function(z){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Ct([X,[ie,K,U,Y],z,le||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}var a=n.copyFile;a&&(n.copyFile=l);function l(P,j,F,D){return typeof F=="function"&&(D=F,F=0),X(P,j,F,D);function X(ie,K,U,Y,le){return a(ie,K,U,function(z){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Ct([X,[ie,K,U,Y],z,le||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}var c=n.readdir;n.readdir=f;var u=/^v[0-5]\./;function f(P,j,F){typeof j=="function"&&(F=j,j=null);var D=u.test(process.version)?function(K,U,Y,le){return c(K,X(K,U,Y,le))}:function(K,U,Y,le){return c(K,U,X(K,U,Y,le))};return D(P,j,F);function X(ie,K,U,Y){return function(le,z){le&&(le.code==="EMFILE"||le.code==="ENFILE")?Ct([D,[ie,K,U],le,Y||Date.now(),Date.now()]):(z&&z.sort&&z.sort(),typeof U=="function"&&U.call(this,le,z))}}}if(process.version.substr(0,4)==="v0.8"){var d=d0(n);A=d.ReadStream,b=d.WriteStream}var h=n.ReadStream;h&&(A.prototype=Object.create(h.prototype),A.prototype.open=w);var y=n.WriteStream;y&&(b.prototype=Object.create(y.prototype),b.prototype.open=$),Object.defineProperty(n,"ReadStream",{get:function(){return A},set:function(P){A=P},enumerable:!0,configurable:!0}),Object.defineProperty(n,"WriteStream",{get:function(){return b},set:function(P){b=P},enumerable:!0,configurable:!0});var g=A;Object.defineProperty(n,"FileReadStream",{get:function(){return g},set:function(P){g=P},enumerable:!0,configurable:!0});var m=b;Object.defineProperty(n,"FileWriteStream",{get:function(){return m},set:function(P){m=P},enumerable:!0,configurable:!0});function A(P,j){return this instanceof A?(h.apply(this,arguments),this):A.apply(Object.create(A.prototype),arguments)}function w(){var P=this;G(P.path,P.flags,P.mode,function(j,F){j?(P.autoClose&&P.destroy(),P.emit("error",j)):(P.fd=F,P.emit("open",F),P.read())})}function b(P,j){return this instanceof b?(y.apply(this,arguments),this):b.apply(Object.create(b.prototype),arguments)}function $(){var P=this;G(P.path,P.flags,P.mode,function(j,F){j?(P.destroy(),P.emit("error",j)):(P.fd=F,P.emit("open",F))})}function M(P,j){return new n.ReadStream(P,j)}function v(P,j){return new n.WriteStream(P,j)}var V=n.open;n.open=G;function G(P,j,F,D){return typeof F=="function"&&(D=F,F=null),X(P,j,F,D);function X(ie,K,U,Y,le){return V(ie,K,U,function(z,pe){z&&(z.code==="EMFILE"||z.code==="ENFILE")?Ct([X,[ie,K,U,Y],z,le||Date.now(),Date.now()]):typeof Y=="function"&&Y.apply(this,arguments)})}}return n}function Ct(n){gt("ENQUEUE",n[0].name,n[1]),se[me].push(n),Cs()}var _r;function Pc(){for(var n=Date.now(),e=0;e2&&(se[me][e][3]=n,se[me][e][4]=n);Cs()}function Cs(){if(clearTimeout(_r),_r=void 0,se[me].length!==0){var n=se[me].shift(),e=n[0],t=n[1],r=n[2],i=n[3],s=n[4];if(i===void 0)gt("RETRY",e.name,t),e.apply(null,t);else if(Date.now()-i>=6e4){gt("TIMEOUT",e.name,t);var o=t.pop();typeof o=="function"&&o.call(null,r)}else{var a=Date.now()-s,l=Math.max(s-i,1),c=Math.min(l*1.2,100);a>=c?(gt("RETRY",e.name,t),e.apply(null,t.concat([i]))):se[me].push(n)}_r===void 0&&(_r=setTimeout(Cs,0))}}});var yt=_(Xe=>{"use strict";var qc=we().fromCallback,Te=ve(),m0=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(n=>typeof Te[n]=="function");Object.assign(Xe,Te);m0.forEach(n=>{Xe[n]=qc(Te[n])});Xe.exists=function(n,e){return typeof e=="function"?Te.exists(n,e):new Promise(t=>Te.exists(n,t))};Xe.read=function(n,e,t,r,i,s){return typeof s=="function"?Te.read(n,e,t,r,i,s):new Promise((o,a)=>{Te.read(n,e,t,r,i,(l,c,u)=>{if(l)return a(l);o({bytesRead:c,buffer:u})})})};Xe.write=function(n,e,...t){return typeof t[t.length-1]=="function"?Te.write(n,e,...t):new Promise((r,i)=>{Te.write(n,e,...t,(s,o,a)=>{if(s)return i(s);r({bytesWritten:o,buffer:a})})})};Xe.readv=function(n,e,...t){return typeof t[t.length-1]=="function"?Te.readv(n,e,...t):new Promise((r,i)=>{Te.readv(n,e,...t,(s,o,a)=>{if(s)return i(s);r({bytesRead:o,buffers:a})})})};Xe.writev=function(n,e,...t){return typeof t[t.length-1]=="function"?Te.writev(n,e,...t):new Promise((r,i)=>{Te.writev(n,e,...t,(s,o,a)=>{if(s)return i(s);r({bytesWritten:o,buffers:a})})})};typeof Te.realpath.native=="function"?Xe.realpath.native=qc(Te.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Mc=_((Kb,xc)=>{"use strict";var g0=require("path");xc.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(g0.parse(e).root,""))){let r=new Error(`Path contains invalid characters: ${e}`);throw r.code="EINVAL",r}}});var Hc=_((Yb,Ps)=>{"use strict";var Fc=yt(),{checkPath:Dc}=Mc(),jc=n=>{let e={mode:511};return typeof n=="number"?n:{...e,...n}.mode};Ps.exports.makeDir=async(n,e)=>(Dc(n),Fc.mkdir(n,{mode:jc(e),recursive:!0}));Ps.exports.makeDirSync=(n,e)=>(Dc(n),Fc.mkdirSync(n,{mode:jc(e),recursive:!0}))});var je=_((Jb,Bc)=>{"use strict";var y0=we().fromPromise,{makeDir:E0,makeDirSync:$s}=Hc(),qs=y0(E0);Bc.exports={mkdirs:qs,mkdirsSync:$s,mkdirp:qs,mkdirpSync:$s,ensureDir:qs,ensureDirSync:$s}});var tt=_((Xb,Vc)=>{"use strict";var T0=we().fromPromise,Uc=yt();function L0(n){return Uc.access(n).then(()=>!0).catch(()=>!1)}Vc.exports={pathExists:T0(L0),pathExistsSync:Uc.existsSync}});var xs=_((zb,Wc)=>{"use strict";var kt=ve();function S0(n,e,t,r){kt.open(n,"r+",(i,s)=>{if(i)return r(i);kt.futimes(s,e,t,o=>{kt.close(s,a=>{r&&r(o||a)})})})}function A0(n,e,t){let r=kt.openSync(n,"r+");return kt.futimesSync(r,e,t),kt.closeSync(r)}Wc.exports={utimesMillis:S0,utimesMillisSync:A0}});var Et=_((Qb,Yc)=>{"use strict";var Pt=yt(),de=require("path"),I0=require("util");function w0(n,e,t){let r=t.dereference?i=>Pt.stat(i,{bigint:!0}):i=>Pt.lstat(i,{bigint:!0});return Promise.all([r(n),r(e).catch(i=>{if(i.code==="ENOENT")return null;throw i})]).then(([i,s])=>({srcStat:i,destStat:s}))}function v0(n,e,t){let r,i=t.dereference?o=>Pt.statSync(o,{bigint:!0}):o=>Pt.lstatSync(o,{bigint:!0}),s=i(n);try{r=i(e)}catch(o){if(o.code==="ENOENT")return{srcStat:s,destStat:null};throw o}return{srcStat:s,destStat:r}}function b0(n,e,t,r,i){I0.callbackify(w0)(n,e,r,(s,o)=>{if(s)return i(s);let{srcStat:a,destStat:l}=o;if(l){if(tn(a,l)){let c=de.basename(n),u=de.basename(e);return t==="move"&&c!==u&&c.toLowerCase()===u.toLowerCase()?i(null,{srcStat:a,destStat:l,isChangingCase:!0}):i(new Error("Source and destination must not be the same."))}if(a.isDirectory()&&!l.isDirectory())return i(new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`));if(!a.isDirectory()&&l.isDirectory())return i(new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`))}return a.isDirectory()&&Ms(n,e)?i(new Error(gr(n,e,t))):i(null,{srcStat:a,destStat:l})})}function N0(n,e,t,r){let{srcStat:i,destStat:s}=v0(n,e,r);if(s){if(tn(i,s)){let o=de.basename(n),a=de.basename(e);if(t==="move"&&o!==a&&o.toLowerCase()===a.toLowerCase())return{srcStat:i,destStat:s,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!s.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`);if(!i.isDirectory()&&s.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`)}if(i.isDirectory()&&Ms(n,e))throw new Error(gr(n,e,t));return{srcStat:i,destStat:s}}function Gc(n,e,t,r,i){let s=de.resolve(de.dirname(n)),o=de.resolve(de.dirname(t));if(o===s||o===de.parse(o).root)return i();Pt.stat(o,{bigint:!0},(a,l)=>a?a.code==="ENOENT"?i():i(a):tn(e,l)?i(new Error(gr(n,t,r))):Gc(n,e,o,r,i))}function Kc(n,e,t,r){let i=de.resolve(de.dirname(n)),s=de.resolve(de.dirname(t));if(s===i||s===de.parse(s).root)return;let o;try{o=Pt.statSync(s,{bigint:!0})}catch(a){if(a.code==="ENOENT")return;throw a}if(tn(e,o))throw new Error(gr(n,t,r));return Kc(n,e,s,r)}function tn(n,e){return e.ino&&e.dev&&e.ino===n.ino&&e.dev===n.dev}function Ms(n,e){let t=de.resolve(n).split(de.sep).filter(i=>i),r=de.resolve(e).split(de.sep).filter(i=>i);return t.reduce((i,s,o)=>i&&r[o]===s,!0)}function gr(n,e,t){return`Cannot ${t} '${n}' to a subdirectory of itself, '${e}'.`}Yc.exports={checkPaths:b0,checkPathsSync:N0,checkParentPaths:Gc,checkParentPathsSync:Kc,isSrcSubdir:Ms,areIdentical:tn}});var eu=_((Zb,Zc)=>{"use strict";var be=ve(),nn=require("path"),O0=je().mkdirs,R0=tt().pathExists,C0=xs().utimesMillis,rn=Et();function k0(n,e,t,r){typeof t=="function"&&!r?(r=t,t={}):typeof t=="function"&&(t={filter:t}),r=r||function(){},t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; - see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001"),Zt.checkPaths(n,e,"copy",t,(i,s)=>{if(i)return r(i);let{srcStat:o,destStat:a}=s;Zt.checkParentPaths(n,o,e,"copy",l=>{if(l)return r(l);Bc(n,e,t,(c,u)=>{if(c)return r(c);if(!u)return r();v0(a,n,e,t,r)})})})}function v0(n,e,t,r,i){let s=Qt.dirname(t);A0(s,(o,a)=>{if(o)return i(o);if(a)return Cs(n,e,t,r,i);S0(s,l=>l?i(l):Cs(n,e,t,r,i))})}function Bc(n,e,t,r){if(!t.filter)return r(null,!0);Promise.resolve(t.filter(n,e)).then(i=>r(null,i),i=>r(i))}function Cs(n,e,t,r,i){(r.dereference?ve.stat:ve.lstat)(e,(o,a)=>o?i(o):a.isDirectory()?P0(a,n,e,t,r,i):a.isFile()||a.isCharacterDevice()||a.isBlockDevice()?b0(a,n,e,t,r,i):a.isSymbolicLink()?x0(n,e,t,r,i):a.isSocket()?i(new Error(`Cannot copy a socket file: ${e}`)):a.isFIFO()?i(new Error(`Cannot copy a FIFO pipe: ${e}`)):i(new Error(`Unknown file: ${e}`)))}function b0(n,e,t,r,i,s){return e?N0(n,t,r,i,s):Uc(n,t,r,i,s)}function N0(n,e,t,r,i){if(r.overwrite)ve.unlink(t,s=>s?i(s):Uc(n,e,t,r,i));else return r.errorOnExist?i(new Error(`'${t}' already exists`)):i()}function Uc(n,e,t,r,i){ve.copyFile(e,t,s=>s?i(s):r.preserveTimestamps?O0(n.mode,e,t,i):hr(t,n.mode,i))}function O0(n,e,t,r){return R0(n)?C0(t,n,i=>i?r(i):Hc(n,e,t,r)):Hc(n,e,t,r)}function R0(n){return(n&128)===0}function C0(n,e,t){return hr(n,e|128,t)}function Hc(n,e,t,r){k0(e,t,i=>i?r(i):hr(t,n,r))}function hr(n,e,t){return ve.chmod(n,e,t)}function k0(n,e,t){ve.stat(n,(r,i)=>r?t(r):I0(e,i.atime,i.mtime,t))}function P0(n,e,t,r,i,s){return e?Vc(t,r,i,s):$0(n.mode,t,r,i,s)}function $0(n,e,t,r,i){ve.mkdir(t,s=>{if(s)return i(s);Vc(e,t,r,o=>o?i(o):hr(t,n,i))})}function Vc(n,e,t,r){ve.readdir(n,(i,s)=>i?r(i):ks(s,n,e,t,r))}function ks(n,e,t,r,i){let s=n.pop();return s?q0(n,s,e,t,r,i):i()}function q0(n,e,t,r,i,s){let o=Qt.join(t,e),a=Qt.join(r,e);Bc(o,a,i,(l,c)=>{if(l)return s(l);if(!c)return ks(n,t,r,i,s);Zt.checkPaths(o,a,"copy",i,(u,f)=>{if(u)return s(u);let{destStat:_}=f;Cs(_,o,a,i,h=>h?s(h):ks(n,t,r,i,s))})})}function x0(n,e,t,r,i){ve.readlink(e,(s,o)=>{if(s)return i(s);if(r.dereference&&(o=Qt.resolve(process.cwd(),o)),n)ve.readlink(t,(a,l)=>a?a.code==="EINVAL"||a.code==="UNKNOWN"?ve.symlink(o,t,i):i(a):(r.dereference&&(l=Qt.resolve(process.cwd(),l)),Zt.isSrcSubdir(o,l)?i(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${l}'.`)):Zt.isSrcSubdir(l,o)?i(new Error(`Cannot overwrite '${l}' with '${o}'.`)):M0(o,t,i)));else return ve.symlink(o,t,i)})}function M0(n,e,t){ve.unlink(e,r=>r?t(r):ve.symlink(n,e,t))}Wc.exports=w0});var zc=p((Bb,Xc)=>{"use strict";var Te=we(),en=require("path"),D0=je().mkdirsSync,F0=Os().utimesMillisSync,tn=pt();function j0(n,e,t){typeof t=="function"&&(t={filter:t}),t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; + see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001"),rn.checkPaths(n,e,"copy",t,(i,s)=>{if(i)return r(i);let{srcStat:o,destStat:a}=s;rn.checkParentPaths(n,o,e,"copy",l=>{if(l)return r(l);Xc(n,e,t,(c,u)=>{if(c)return r(c);if(!u)return r();P0(a,n,e,t,r)})})})}function P0(n,e,t,r,i){let s=nn.dirname(t);R0(s,(o,a)=>{if(o)return i(o);if(a)return Fs(n,e,t,r,i);O0(s,l=>l?i(l):Fs(n,e,t,r,i))})}function Xc(n,e,t,r){if(!t.filter)return r(null,!0);Promise.resolve(t.filter(n,e)).then(i=>r(null,i),i=>r(i))}function Fs(n,e,t,r,i){(r.dereference?be.stat:be.lstat)(e,(o,a)=>o?i(o):a.isDirectory()?j0(a,n,e,t,r,i):a.isFile()||a.isCharacterDevice()||a.isBlockDevice()?$0(a,n,e,t,r,i):a.isSymbolicLink()?U0(n,e,t,r,i):a.isSocket()?i(new Error(`Cannot copy a socket file: ${e}`)):a.isFIFO()?i(new Error(`Cannot copy a FIFO pipe: ${e}`)):i(new Error(`Unknown file: ${e}`)))}function $0(n,e,t,r,i,s){return e?q0(n,t,r,i,s):zc(n,t,r,i,s)}function q0(n,e,t,r,i){if(r.overwrite)be.unlink(t,s=>s?i(s):zc(n,e,t,r,i));else return r.errorOnExist?i(new Error(`'${t}' already exists`)):i()}function zc(n,e,t,r,i){be.copyFile(e,t,s=>s?i(s):r.preserveTimestamps?x0(n.mode,e,t,i):yr(t,n.mode,i))}function x0(n,e,t,r){return M0(n)?F0(t,n,i=>i?r(i):Jc(n,e,t,r)):Jc(n,e,t,r)}function M0(n){return(n&128)===0}function F0(n,e,t){return yr(n,e|128,t)}function Jc(n,e,t,r){D0(e,t,i=>i?r(i):yr(t,n,r))}function yr(n,e,t){return be.chmod(n,e,t)}function D0(n,e,t){be.stat(n,(r,i)=>r?t(r):C0(e,i.atime,i.mtime,t))}function j0(n,e,t,r,i,s){return e?Qc(t,r,i,s):H0(n.mode,t,r,i,s)}function H0(n,e,t,r,i){be.mkdir(t,s=>{if(s)return i(s);Qc(e,t,r,o=>o?i(o):yr(t,n,i))})}function Qc(n,e,t,r){be.readdir(n,(i,s)=>i?r(i):Ds(s,n,e,t,r))}function Ds(n,e,t,r,i){let s=n.pop();return s?B0(n,s,e,t,r,i):i()}function B0(n,e,t,r,i,s){let o=nn.join(t,e),a=nn.join(r,e);Xc(o,a,i,(l,c)=>{if(l)return s(l);if(!c)return Ds(n,t,r,i,s);rn.checkPaths(o,a,"copy",i,(u,f)=>{if(u)return s(u);let{destStat:d}=f;Fs(d,o,a,i,h=>h?s(h):Ds(n,t,r,i,s))})})}function U0(n,e,t,r,i){be.readlink(e,(s,o)=>{if(s)return i(s);if(r.dereference&&(o=nn.resolve(process.cwd(),o)),n)be.readlink(t,(a,l)=>a?a.code==="EINVAL"||a.code==="UNKNOWN"?be.symlink(o,t,i):i(a):(r.dereference&&(l=nn.resolve(process.cwd(),l)),rn.isSrcSubdir(o,l)?i(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${l}'.`)):rn.isSrcSubdir(l,o)?i(new Error(`Cannot overwrite '${l}' with '${o}'.`)):V0(o,t,i)));else return be.symlink(o,t,i)})}function V0(n,e,t){be.unlink(e,r=>r?t(r):be.symlink(n,e,t))}Zc.exports=k0});var su=_((eN,iu)=>{"use strict";var Le=ve(),sn=require("path"),W0=je().mkdirsSync,G0=xs().utimesMillisSync,on=Et();function K0(n,e,t){typeof t=="function"&&(t={filter:t}),t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; - see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:r,destStat:i}=tn.checkPathsSync(n,e,"copy",t);if(tn.checkParentPathsSync(n,r,e,"copy"),t.filter&&!t.filter(n,e))return;let s=en.dirname(e);return Te.existsSync(s)||D0(s),Kc(i,n,e,t)}function Kc(n,e,t,r){let s=(r.dereference?Te.statSync:Te.lstatSync)(e);if(s.isDirectory())return K0(s,n,e,t,r);if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return H0(s,n,e,t,r);if(s.isSymbolicLink())return X0(n,e,t,r);throw s.isSocket()?new Error(`Cannot copy a socket file: ${e}`):s.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}function H0(n,e,t,r,i){return e?B0(n,t,r,i):Yc(n,t,r,i)}function B0(n,e,t,r){if(r.overwrite)return Te.unlinkSync(t),Yc(n,e,t,r);if(r.errorOnExist)throw new Error(`'${t}' already exists`)}function Yc(n,e,t,r){return Te.copyFileSync(e,t),r.preserveTimestamps&&U0(n.mode,e,t),Ps(t,n.mode)}function U0(n,e,t){return V0(n)&&W0(t,n),G0(e,t)}function V0(n){return(n&128)===0}function W0(n,e){return Ps(n,e|128)}function Ps(n,e){return Te.chmodSync(n,e)}function G0(n,e){let t=Te.statSync(n);return F0(e,t.atime,t.mtime)}function K0(n,e,t,r,i){return e?Jc(t,r,i):Y0(n.mode,t,r,i)}function Y0(n,e,t,r){return Te.mkdirSync(t),Jc(e,t,r),Ps(t,n)}function Jc(n,e,t){Te.readdirSync(n).forEach(r=>J0(r,n,e,t))}function J0(n,e,t,r){let i=en.join(e,n),s=en.join(t,n);if(r.filter&&!r.filter(i,s))return;let{destStat:o}=tn.checkPathsSync(i,s,"copy",r);return Kc(o,i,s,r)}function X0(n,e,t,r){let i=Te.readlinkSync(e);if(r.dereference&&(i=en.resolve(process.cwd(),i)),n){let s;try{s=Te.readlinkSync(t)}catch(o){if(o.code==="EINVAL"||o.code==="UNKNOWN")return Te.symlinkSync(i,t);throw o}if(r.dereference&&(s=en.resolve(process.cwd(),s)),tn.isSrcSubdir(i,s))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${s}'.`);if(tn.isSrcSubdir(s,i))throw new Error(`Cannot overwrite '${s}' with '${i}'.`);return z0(i,t)}else return Te.symlinkSync(i,t)}function z0(n,e){return Te.unlinkSync(e),Te.symlinkSync(n,e)}Xc.exports=j0});var dr=p((Ub,Qc)=>{"use strict";var Q0=Ie().fromCallback;Qc.exports={copy:Q0(Gc()),copySync:zc()}});var nn=p((Vb,eu)=>{"use strict";var Zc=we(),Z0=Ie().fromCallback;function ey(n,e){Zc.rm(n,{recursive:!0,force:!0},e)}function ty(n){Zc.rmSync(n,{recursive:!0,force:!0})}eu.exports={remove:Z0(ey),removeSync:ty}});var lu=p((Wb,au)=>{"use strict";var ny=Ie().fromPromise,ru=_t(),iu=require("path"),su=je(),ou=nn(),tu=ny(async function(e){let t;try{t=await ru.readdir(e)}catch{return su.mkdirs(e)}return Promise.all(t.map(r=>ou.remove(iu.join(e,r))))});function nu(n){let e;try{e=ru.readdirSync(n)}catch{return su.mkdirsSync(n)}e.forEach(t=>{t=iu.join(n,t),ou.removeSync(t)})}au.exports={emptyDirSync:nu,emptydirSync:nu,emptyDir:tu,emptydir:tu}});var hu=p((Gb,fu)=>{"use strict";var ry=Ie().fromCallback,cu=require("path"),et=we(),uu=je();function iy(n,e){function t(){et.writeFile(n,"",r=>{if(r)return e(r);e()})}et.stat(n,(r,i)=>{if(!r&&i.isFile())return e();let s=cu.dirname(n);et.stat(s,(o,a)=>{if(o)return o.code==="ENOENT"?uu.mkdirs(s,l=>{if(l)return e(l);t()}):e(o);a.isDirectory()?t():et.readdir(s,l=>{if(l)return e(l)})})})}function sy(n){let e;try{e=et.statSync(n)}catch{}if(e&&e.isFile())return;let t=cu.dirname(n);try{et.statSync(t).isDirectory()||et.readdirSync(t)}catch(r){if(r&&r.code==="ENOENT")uu.mkdirsSync(t);else throw r}et.writeFileSync(n,"")}fu.exports={createFile:ry(iy),createFileSync:sy}});var gu=p((Kb,mu)=>{"use strict";var oy=Ie().fromCallback,du=require("path"),tt=we(),_u=je(),ay=Ze().pathExists,{areIdentical:pu}=pt();function ly(n,e,t){function r(i,s){tt.link(i,s,o=>{if(o)return t(o);t(null)})}tt.lstat(e,(i,s)=>{tt.lstat(n,(o,a)=>{if(o)return o.message=o.message.replace("lstat","ensureLink"),t(o);if(s&&pu(a,s))return t(null);let l=du.dirname(e);ay(l,(c,u)=>{if(c)return t(c);if(u)return r(n,e);_u.mkdirs(l,f=>{if(f)return t(f);r(n,e)})})})})}function cy(n,e){let t;try{t=tt.lstatSync(e)}catch{}try{let s=tt.lstatSync(n);if(t&&pu(s,t))return}catch(s){throw s.message=s.message.replace("lstat","ensureLink"),s}let r=du.dirname(e);return tt.existsSync(r)||_u.mkdirsSync(r),tt.linkSync(n,e)}mu.exports={createLink:oy(ly),createLinkSync:cy}});var Eu=p((Yb,yu)=>{"use strict";var nt=require("path"),rn=we(),uy=Ze().pathExists;function fy(n,e,t){if(nt.isAbsolute(n))return rn.lstat(n,r=>r?(r.message=r.message.replace("lstat","ensureSymlink"),t(r)):t(null,{toCwd:n,toDst:n}));{let r=nt.dirname(e),i=nt.join(r,n);return uy(i,(s,o)=>s?t(s):o?t(null,{toCwd:i,toDst:n}):rn.lstat(n,a=>a?(a.message=a.message.replace("lstat","ensureSymlink"),t(a)):t(null,{toCwd:n,toDst:nt.relative(r,n)})))}}function hy(n,e){let t;if(nt.isAbsolute(n)){if(t=rn.existsSync(n),!t)throw new Error("absolute srcpath does not exist");return{toCwd:n,toDst:n}}else{let r=nt.dirname(e),i=nt.join(r,n);if(t=rn.existsSync(i),t)return{toCwd:i,toDst:n};if(t=rn.existsSync(n),!t)throw new Error("relative srcpath does not exist");return{toCwd:n,toDst:nt.relative(r,n)}}}yu.exports={symlinkPaths:fy,symlinkPathsSync:hy}});var Su=p((Jb,Lu)=>{"use strict";var Tu=we();function dy(n,e,t){if(t=typeof e=="function"?e:t,e=typeof e=="function"?!1:e,e)return t(null,e);Tu.lstat(n,(r,i)=>{if(r)return t(null,"file");e=i&&i.isDirectory()?"dir":"file",t(null,e)})}function _y(n,e){let t;if(e)return e;try{t=Tu.lstatSync(n)}catch{return"file"}return t&&t.isDirectory()?"dir":"file"}Lu.exports={symlinkType:dy,symlinkTypeSync:_y}});var Ru=p((Xb,Ou)=>{"use strict";var py=Ie().fromCallback,Iu=require("path"),He=_t(),wu=je(),my=wu.mkdirs,gy=wu.mkdirsSync,vu=Eu(),yy=vu.symlinkPaths,Ey=vu.symlinkPathsSync,bu=Su(),Ty=bu.symlinkType,Ly=bu.symlinkTypeSync,Sy=Ze().pathExists,{areIdentical:Nu}=pt();function Ay(n,e,t,r){r=typeof t=="function"?t:r,t=typeof t=="function"?!1:t,He.lstat(e,(i,s)=>{!i&&s.isSymbolicLink()?Promise.all([He.stat(n),He.stat(e)]).then(([o,a])=>{if(Nu(o,a))return r(null);Au(n,e,t,r)}):Au(n,e,t,r)})}function Au(n,e,t,r){yy(n,e,(i,s)=>{if(i)return r(i);n=s.toDst,Ty(s.toCwd,t,(o,a)=>{if(o)return r(o);let l=Iu.dirname(e);Sy(l,(c,u)=>{if(c)return r(c);if(u)return He.symlink(n,e,a,r);my(l,f=>{if(f)return r(f);He.symlink(n,e,a,r)})})})})}function Iy(n,e,t){let r;try{r=He.lstatSync(e)}catch{}if(r&&r.isSymbolicLink()){let a=He.statSync(n),l=He.statSync(e);if(Nu(a,l))return}let i=Ey(n,e);n=i.toDst,t=Ly(i.toCwd,t);let s=Iu.dirname(e);return He.existsSync(s)||gy(s),He.symlinkSync(n,e,t)}Ou.exports={createSymlink:py(Ay),createSymlinkSync:Iy}});var Du=p((zb,Mu)=>{"use strict";var{createFile:Cu,createFileSync:ku}=hu(),{createLink:Pu,createLinkSync:$u}=gu(),{createSymlink:qu,createSymlinkSync:xu}=Ru();Mu.exports={createFile:Cu,createFileSync:ku,ensureFile:Cu,ensureFileSync:ku,createLink:Pu,createLinkSync:$u,ensureLink:Pu,ensureLinkSync:$u,createSymlink:qu,createSymlinkSync:xu,ensureSymlink:qu,ensureSymlinkSync:xu}});var _r=p((Qb,Fu)=>{function wy(n,{EOL:e=` -`,finalEOL:t=!0,replacer:r=null,spaces:i}={}){let s=t?e:"";return JSON.stringify(n,r,i).replace(/\n/g,e)+s}function vy(n){return Buffer.isBuffer(n)&&(n=n.toString("utf8")),n.replace(/^\uFEFF/,"")}Fu.exports={stringify:wy,stripBom:vy}});var Uu=p((Zb,Bu)=>{var Ct;try{Ct=we()}catch{Ct=require("fs")}var pr=Ie(),{stringify:ju,stripBom:Hu}=_r();async function by(n,e={}){typeof e=="string"&&(e={encoding:e});let t=e.fs||Ct,r="throws"in e?e.throws:!0,i=await pr.fromCallback(t.readFile)(n,e);i=Hu(i);let s;try{s=JSON.parse(i,e?e.reviver:null)}catch(o){if(r)throw o.message=`${n}: ${o.message}`,o;return null}return s}var Ny=pr.fromPromise(by);function Oy(n,e={}){typeof e=="string"&&(e={encoding:e});let t=e.fs||Ct,r="throws"in e?e.throws:!0;try{let i=t.readFileSync(n,e);return i=Hu(i),JSON.parse(i,e.reviver)}catch(i){if(r)throw i.message=`${n}: ${i.message}`,i;return null}}async function Ry(n,e,t={}){let r=t.fs||Ct,i=ju(e,t);await pr.fromCallback(r.writeFile)(n,i,t)}var Cy=pr.fromPromise(Ry);function ky(n,e,t={}){let r=t.fs||Ct,i=ju(e,t);return r.writeFileSync(n,i,t)}var Py={readFile:Ny,readFileSync:Oy,writeFile:Cy,writeFileSync:ky};Bu.exports=Py});var Wu=p((eN,Vu)=>{"use strict";var mr=Uu();Vu.exports={readJson:mr.readFile,readJsonSync:mr.readFileSync,writeJson:mr.writeFile,writeJsonSync:mr.writeFileSync}});var gr=p((tN,Yu)=>{"use strict";var $y=Ie().fromCallback,sn=we(),Gu=require("path"),Ku=je(),qy=Ze().pathExists;function xy(n,e,t,r){typeof t=="function"&&(r=t,t="utf8");let i=Gu.dirname(n);qy(i,(s,o)=>{if(s)return r(s);if(o)return sn.writeFile(n,e,t,r);Ku.mkdirs(i,a=>{if(a)return r(a);sn.writeFile(n,e,t,r)})})}function My(n,...e){let t=Gu.dirname(n);if(sn.existsSync(t))return sn.writeFileSync(n,...e);Ku.mkdirsSync(t),sn.writeFileSync(n,...e)}Yu.exports={outputFile:$y(xy),outputFileSync:My}});var Xu=p((nN,Ju)=>{"use strict";var{stringify:Dy}=_r(),{outputFile:Fy}=gr();async function jy(n,e,t={}){let r=Dy(e,t);await Fy(n,r,t)}Ju.exports=jy});var Qu=p((rN,zu)=>{"use strict";var{stringify:Hy}=_r(),{outputFileSync:By}=gr();function Uy(n,e,t){let r=Hy(e,t);By(n,r,t)}zu.exports=Uy});var ef=p((iN,Zu)=>{"use strict";var Vy=Ie().fromPromise,Le=Wu();Le.outputJson=Vy(Xu());Le.outputJsonSync=Qu();Le.outputJSON=Le.outputJson;Le.outputJSONSync=Le.outputJsonSync;Le.writeJSON=Le.writeJson;Le.writeJSONSync=Le.writeJsonSync;Le.readJSON=Le.readJson;Le.readJSONSync=Le.readJsonSync;Zu.exports=Le});var of=p((sN,sf)=>{"use strict";var Wy=we(),qs=require("path"),Gy=dr().copy,rf=nn().remove,Ky=je().mkdirp,Yy=Ze().pathExists,tf=pt();function Jy(n,e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};let i=t.overwrite||t.clobber||!1;tf.checkPaths(n,e,"move",t,(s,o)=>{if(s)return r(s);let{srcStat:a,isChangingCase:l=!1}=o;tf.checkParentPaths(n,a,e,"move",c=>{if(c)return r(c);if(Xy(e))return nf(n,e,i,l,r);Ky(qs.dirname(e),u=>u?r(u):nf(n,e,i,l,r))})})}function Xy(n){let e=qs.dirname(n);return qs.parse(e).root===e}function nf(n,e,t,r,i){if(r)return $s(n,e,t,i);if(t)return rf(e,s=>s?i(s):$s(n,e,t,i));Yy(e,(s,o)=>s?i(s):o?i(new Error("dest already exists.")):$s(n,e,t,i))}function $s(n,e,t,r){Wy.rename(n,e,i=>i?i.code!=="EXDEV"?r(i):zy(n,e,t,r):r())}function zy(n,e,t,r){Gy(n,e,{overwrite:t,errorOnExist:!0,preserveTimestamps:!0},s=>s?r(s):rf(n,r))}sf.exports=Jy});var ff=p((oN,uf)=>{"use strict";var lf=we(),Ms=require("path"),Qy=dr().copySync,cf=nn().removeSync,Zy=je().mkdirpSync,af=pt();function eE(n,e,t){t=t||{};let r=t.overwrite||t.clobber||!1,{srcStat:i,isChangingCase:s=!1}=af.checkPathsSync(n,e,"move",t);return af.checkParentPathsSync(n,i,e,"move"),tE(e)||Zy(Ms.dirname(e)),nE(n,e,r,s)}function tE(n){let e=Ms.dirname(n);return Ms.parse(e).root===e}function nE(n,e,t,r){if(r)return xs(n,e,t);if(t)return cf(e),xs(n,e,t);if(lf.existsSync(e))throw new Error("dest already exists.");return xs(n,e,t)}function xs(n,e,t){try{lf.renameSync(n,e)}catch(r){if(r.code!=="EXDEV")throw r;return rE(n,e,t)}}function rE(n,e,t){return Qy(n,e,{overwrite:t,errorOnExist:!0,preserveTimestamps:!0}),cf(n)}uf.exports=eE});var df=p((aN,hf)=>{"use strict";var iE=Ie().fromCallback;hf.exports={move:iE(of()),moveSync:ff()}});var mt=p((lN,_f)=>{"use strict";_f.exports={..._t(),...dr(),...lu(),...Du(),...ef(),...je(),...df(),...gr(),...Ze(),...nn()}});var mf=p((fN,Bs)=>{typeof Object.create=="function"?Bs.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Bs.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}});var gf=p((hN,Vs)=>{try{if(Us=require("util"),typeof Us.inherits!="function")throw"";Vs.exports=Us.inherits}catch{Vs.exports=mf()}var Us});var Ef=p((dN,Gs)=>{var aE=gf(),yf=require("events").EventEmitter;Gs.exports=ke;Gs.exports.default=ke;function ke(n){if(!(this instanceof ke))return new ke(n);yf.call(this),n=n||{},this.concurrency=n.concurrency||1/0,this.timeout=n.timeout||0,this.autostart=n.autostart||!1,this.results=n.results||null,this.pending=0,this.session=0,this.running=!1,this.jobs=[],this.timers={}}aE(ke,yf);var lE=["pop","shift","indexOf","lastIndexOf"];lE.forEach(function(n){ke.prototype[n]=function(){return Array.prototype[n].apply(this.jobs,arguments)}});ke.prototype.slice=function(n,e){return this.jobs=this.jobs.slice(n,e),this};ke.prototype.reverse=function(){return this.jobs.reverse(),this};var cE=["push","unshift","splice"];cE.forEach(function(n){ke.prototype[n]=function(){var e=Array.prototype[n].apply(this.jobs,arguments);return this.autostart&&this.start(),e}});Object.defineProperty(ke.prototype,"length",{get:function(){return this.pending+this.jobs.length}});ke.prototype.start=function(n){if(n&&fE.call(this,n),this.running=!0,this.pending>=this.concurrency)return;if(this.jobs.length===0){this.pending===0&&Ws.call(this);return}var e=this,t=this.jobs.shift(),r=!0,i=this.session,s=null,o=!1,a=null,l=t.hasOwnProperty("timeout")?t.timeout:this.timeout;function c(f,_){r&&e.session===i&&(r=!1,e.pending--,s!==null&&(delete e.timers[s],clearTimeout(s)),f?e.emit("error",f,t):o===!1&&(a!==null&&(e.results[a]=Array.prototype.slice.call(arguments,1)),e.emit("success",_,t)),e.session===i&&(e.pending===0&&e.jobs.length===0?Ws.call(e):e.running&&e.start()))}l&&(s=setTimeout(function(){o=!0,e.listeners("timeout").length>0?e.emit("timeout",c,t):c()},l),this.timers[s]=s),this.results&&(a=this.results.length,this.results[a]=null),this.pending++,e.emit("start",t);var u=t(c);u&&u.then&&typeof u.then=="function"&&u.then(function(f){return c(null,f)}).catch(function(f){return c(f||!0)}),this.running&&this.jobs.length>0&&this.start()};ke.prototype.stop=function(){this.running=!1};ke.prototype.end=function(n){uE.call(this),this.jobs.length=0,this.pending=0,Ws.call(this,n)};function uE(){for(var n in this.timers){var e=this.timers[n];delete this.timers[n],clearTimeout(e)}}function fE(n){var e=this;this.on("error",t),this.on("end",r);function t(i){e.end(i)}function r(i){e.removeListener("error",t),e.removeListener("end",r),n(i,this.results)}}function Ws(n){this.session++,this.running=!1,this.emit("end",n)}});var Tf=p(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.BMP=void 0;yr.BMP={validate(n){return n.toString("ascii",0,2)==="BM"},calculate(n){return{height:Math.abs(n.readInt32LE(22)),width:n.readUInt32LE(18)}}}});var Ks=p(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.ICO=void 0;var hE=1,dE=2+2+2,_E=1+1+1+1+2+2+4+4;function Lf(n,e){let t=n.readUInt8(e);return t===0?256:t}function Sf(n,e){let t=dE+e*_E;return{height:Lf(n,t+1),width:Lf(n,t)}}Er.ICO={validate(n){let e=n.readUInt16LE(0),t=n.readUInt16LE(4);return e!==0||t===0?!1:n.readUInt16LE(2)===hE},calculate(n){let e=n.readUInt16LE(4),t=Sf(n,0);if(e===1)return t;let r=[t];for(let s=1;s{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.CUR=void 0;var pE=Ks(),mE=2;Tr.CUR={validate(n){let e=n.readUInt16LE(0),t=n.readUInt16LE(4);return e!==0||t===0?!1:n.readUInt16LE(2)===mE},calculate(n){return pE.ICO.calculate(n)}}});var If=p(Lr=>{"use strict";Object.defineProperty(Lr,"__esModule",{value:!0});Lr.DDS=void 0;Lr.DDS={validate(n){return n.readUInt32LE(0)===542327876},calculate(n){return{height:n.readUInt32LE(12),width:n.readUInt32LE(16)}}}});var wf=p(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.GIF=void 0;var gE=/^GIF8[79]a/;Sr.GIF={validate(n){let e=n.toString("ascii",0,6);return gE.test(e)},calculate(n){return{height:n.readUInt16LE(8),width:n.readUInt16LE(6)}}}});var Nf=p(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});Ar.ICNS=void 0;var yE=4+4,EE=4,TE=4,LE={ICON:32,"ICN#":32,"icm#":16,icm4:16,icm8:16,"ics#":16,ics4:16,ics8:16,is32:16,s8mk:16,icp4:16,icl4:32,icl8:32,il32:32,l8mk:32,icp5:32,ic11:32,ich4:48,ich8:48,ih32:48,h8mk:48,icp6:64,ic12:32,it32:128,t8mk:128,ic07:128,ic08:256,ic13:256,ic09:512,ic14:512,ic10:1024};function vf(n,e){let t=e+TE;return[n.toString("ascii",e,t),n.readUInt32BE(t)]}function bf(n){let e=LE[n];return{width:e,height:e,type:n}}Ar.ICNS={validate(n){return n.toString("ascii",0,4)==="icns"},calculate(n){let e=n.length,t=n.readUInt32BE(EE),r=yE,i=vf(n,r),s=bf(i[0]);if(r+=i[1],r===t)return s;let o={height:s.height,images:[s],width:s.width};for(;r{"use strict";Object.defineProperty(Ir,"__esModule",{value:!0});Ir.J2C=void 0;Ir.J2C={validate(n){return n.toString("hex",0,4)==="ff4fff51"},calculate(n){return{height:n.readUInt32BE(12),width:n.readUInt32BE(8)}}}});var Cf=p(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.JP2=void 0;var wr={ftyp:"66747970",ihdr:"69686472",jp2h:"6a703268",jp__:"6a502020",rreq:"72726571",xml_:"786d6c20"},SE=n=>{let e=n.readUInt8(0),t=1+2*e,i=n.readUInt16BE(t)*(2+e);t=t+2+i;let o=n.readUInt16BE(t)*(16+e);return t+2+o},Rf=n=>({height:n.readUInt32BE(4),width:n.readUInt32BE(8)});vr.JP2={validate(n){let e=n.toString("hex",4,8),t=n.readUInt32BE(0);if(e!==wr.jp__||t<1)return!1;let r=t+4,i=n.readUInt32BE(t);return n.slice(r,r+i).toString("hex",0,4)===wr.ftyp},calculate(n){let e=n.readUInt32BE(0),t=n.readUInt16BE(e+2),r=e+4+t;switch(n.toString("hex",r,r+4)){case wr.rreq:return r=r+4+4+SE(n.slice(r+4)),Rf(n.slice(r+8,r+24));case wr.jp2h:return Rf(n.slice(r+8,r+24));default:throw new TypeError("Unsupported header found: "+n.toString("ascii",r,r+4))}}}});var Ys=p(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.readUInt=void 0;function AE(n,e,t,r){t=t||0;let i=r?"BE":"LE",s="readUInt"+e+i;return n[s].call(n,t)}br.readUInt=AE});var Pf=p(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.JPG=void 0;var ln=Ys(),IE="45786966",wE=2,Js=6,vE=2,bE="4d4d",NE="4949",kf=12,OE=2;function RE(n){return n.toString("hex",2,6)===IE}function CE(n,e){return{height:n.readUInt16BE(e),width:n.readUInt16BE(e+2)}}function kE(n,e){let r=Js+8,i=(0,ln.readUInt)(n,16,r,e);for(let s=0;sn.length)return;let l=n.slice(o,a);if((0,ln.readUInt)(l,16,0,e)===274)return(0,ln.readUInt)(l,16,2,e)!==3||(0,ln.readUInt)(l,32,4,e)!==1?void 0:(0,ln.readUInt)(l,16,8,e)}}function PE(n,e){let t=n.slice(wE,e),r=t.toString("hex",Js,Js+vE),i=r===bE;if(i||r===NE)return kE(t,i)}function $E(n,e){if(e>n.length)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(n[e]!==255)throw new TypeError("Invalid JPG, marker table corrupted")}Nr.JPG={validate(n){return n.toString("hex",0,2)==="ffd8"},calculate(n){n=n.slice(4);let e,t;for(;n.length;){let r=n.readUInt16BE(0);if(RE(n)&&(e=PE(n,r)),$E(n,r),t=n[r+1],t===192||t===193||t===194){let i=CE(n,r+5);return e?{height:i.height,orientation:e,width:i.width}:i}n=n.slice(r+2)}throw new TypeError("Invalid JPG, no size found")}}});var $f=p(Or=>{"use strict";Object.defineProperty(Or,"__esModule",{value:!0});Or.KTX=void 0;var qE="KTX 11";Or.KTX={validate(n){return qE===n.toString("ascii",1,7)},calculate(n){return{height:n.readUInt32LE(40),width:n.readUInt32LE(36)}}}});var xf=p(Rr=>{"use strict";Object.defineProperty(Rr,"__esModule",{value:!0});Rr.PNG=void 0;var xE=`PNG\r + see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:r,destStat:i}=on.checkPathsSync(n,e,"copy",t);if(on.checkParentPathsSync(n,r,e,"copy"),t.filter&&!t.filter(n,e))return;let s=sn.dirname(e);return Le.existsSync(s)||W0(s),tu(i,n,e,t)}function tu(n,e,t,r){let s=(r.dereference?Le.statSync:Le.lstatSync)(e);if(s.isDirectory())return ey(s,n,e,t,r);if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return Y0(s,n,e,t,r);if(s.isSymbolicLink())return ry(n,e,t,r);throw s.isSocket()?new Error(`Cannot copy a socket file: ${e}`):s.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}function Y0(n,e,t,r,i){return e?J0(n,t,r,i):nu(n,t,r,i)}function J0(n,e,t,r){if(r.overwrite)return Le.unlinkSync(t),nu(n,e,t,r);if(r.errorOnExist)throw new Error(`'${t}' already exists`)}function nu(n,e,t,r){return Le.copyFileSync(e,t),r.preserveTimestamps&&X0(n.mode,e,t),js(t,n.mode)}function X0(n,e,t){return z0(n)&&Q0(t,n),Z0(e,t)}function z0(n){return(n&128)===0}function Q0(n,e){return js(n,e|128)}function js(n,e){return Le.chmodSync(n,e)}function Z0(n,e){let t=Le.statSync(n);return G0(e,t.atime,t.mtime)}function ey(n,e,t,r,i){return e?ru(t,r,i):ty(n.mode,t,r,i)}function ty(n,e,t,r){return Le.mkdirSync(t),ru(e,t,r),js(t,n)}function ru(n,e,t){Le.readdirSync(n).forEach(r=>ny(r,n,e,t))}function ny(n,e,t,r){let i=sn.join(e,n),s=sn.join(t,n);if(r.filter&&!r.filter(i,s))return;let{destStat:o}=on.checkPathsSync(i,s,"copy",r);return tu(o,i,s,r)}function ry(n,e,t,r){let i=Le.readlinkSync(e);if(r.dereference&&(i=sn.resolve(process.cwd(),i)),n){let s;try{s=Le.readlinkSync(t)}catch(o){if(o.code==="EINVAL"||o.code==="UNKNOWN")return Le.symlinkSync(i,t);throw o}if(r.dereference&&(s=sn.resolve(process.cwd(),s)),on.isSrcSubdir(i,s))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${s}'.`);if(on.isSrcSubdir(s,i))throw new Error(`Cannot overwrite '${s}' with '${i}'.`);return iy(i,t)}else return Le.symlinkSync(i,t)}function iy(n,e){return Le.unlinkSync(e),Le.symlinkSync(n,e)}iu.exports=K0});var Er=_((tN,ou)=>{"use strict";var sy=we().fromCallback;ou.exports={copy:sy(eu()),copySync:su()}});var an=_((nN,lu)=>{"use strict";var au=ve(),oy=we().fromCallback;function ay(n,e){au.rm(n,{recursive:!0,force:!0},e)}function ly(n){au.rmSync(n,{recursive:!0,force:!0})}lu.exports={remove:oy(ay),removeSync:ly}});var mu=_((rN,_u)=>{"use strict";var cy=we().fromPromise,fu=yt(),hu=require("path"),du=je(),pu=an(),cu=cy(async function(e){let t;try{t=await fu.readdir(e)}catch{return du.mkdirs(e)}return Promise.all(t.map(r=>pu.remove(hu.join(e,r))))});function uu(n){let e;try{e=fu.readdirSync(n)}catch{return du.mkdirsSync(n)}e.forEach(t=>{t=hu.join(n,t),pu.removeSync(t)})}_u.exports={emptyDirSync:uu,emptydirSync:uu,emptyDir:cu,emptydir:cu}});var Tu=_((iN,Eu)=>{"use strict";var uy=we().fromCallback,gu=require("path"),nt=ve(),yu=je();function fy(n,e){function t(){nt.writeFile(n,"",r=>{if(r)return e(r);e()})}nt.stat(n,(r,i)=>{if(!r&&i.isFile())return e();let s=gu.dirname(n);nt.stat(s,(o,a)=>{if(o)return o.code==="ENOENT"?yu.mkdirs(s,l=>{if(l)return e(l);t()}):e(o);a.isDirectory()?t():nt.readdir(s,l=>{if(l)return e(l)})})})}function hy(n){let e;try{e=nt.statSync(n)}catch{}if(e&&e.isFile())return;let t=gu.dirname(n);try{nt.statSync(t).isDirectory()||nt.readdirSync(t)}catch(r){if(r&&r.code==="ENOENT")yu.mkdirsSync(t);else throw r}nt.writeFileSync(n,"")}Eu.exports={createFile:uy(fy),createFileSync:hy}});var wu=_((sN,Iu)=>{"use strict";var dy=we().fromCallback,Lu=require("path"),rt=ve(),Su=je(),py=tt().pathExists,{areIdentical:Au}=Et();function _y(n,e,t){function r(i,s){rt.link(i,s,o=>{if(o)return t(o);t(null)})}rt.lstat(e,(i,s)=>{rt.lstat(n,(o,a)=>{if(o)return o.message=o.message.replace("lstat","ensureLink"),t(o);if(s&&Au(a,s))return t(null);let l=Lu.dirname(e);py(l,(c,u)=>{if(c)return t(c);if(u)return r(n,e);Su.mkdirs(l,f=>{if(f)return t(f);r(n,e)})})})})}function my(n,e){let t;try{t=rt.lstatSync(e)}catch{}try{let s=rt.lstatSync(n);if(t&&Au(s,t))return}catch(s){throw s.message=s.message.replace("lstat","ensureLink"),s}let r=Lu.dirname(e);return rt.existsSync(r)||Su.mkdirsSync(r),rt.linkSync(n,e)}Iu.exports={createLink:dy(_y),createLinkSync:my}});var bu=_((oN,vu)=>{"use strict";var it=require("path"),ln=ve(),gy=tt().pathExists;function yy(n,e,t){if(it.isAbsolute(n))return ln.lstat(n,r=>r?(r.message=r.message.replace("lstat","ensureSymlink"),t(r)):t(null,{toCwd:n,toDst:n}));{let r=it.dirname(e),i=it.join(r,n);return gy(i,(s,o)=>s?t(s):o?t(null,{toCwd:i,toDst:n}):ln.lstat(n,a=>a?(a.message=a.message.replace("lstat","ensureSymlink"),t(a)):t(null,{toCwd:n,toDst:it.relative(r,n)})))}}function Ey(n,e){let t;if(it.isAbsolute(n)){if(t=ln.existsSync(n),!t)throw new Error("absolute srcpath does not exist");return{toCwd:n,toDst:n}}else{let r=it.dirname(e),i=it.join(r,n);if(t=ln.existsSync(i),t)return{toCwd:i,toDst:n};if(t=ln.existsSync(n),!t)throw new Error("relative srcpath does not exist");return{toCwd:n,toDst:it.relative(r,n)}}}vu.exports={symlinkPaths:yy,symlinkPathsSync:Ey}});var Ru=_((aN,Ou)=>{"use strict";var Nu=ve();function Ty(n,e,t){if(t=typeof e=="function"?e:t,e=typeof e=="function"?!1:e,e)return t(null,e);Nu.lstat(n,(r,i)=>{if(r)return t(null,"file");e=i&&i.isDirectory()?"dir":"file",t(null,e)})}function Ly(n,e){let t;if(e)return e;try{t=Nu.lstatSync(n)}catch{return"file"}return t&&t.isDirectory()?"dir":"file"}Ou.exports={symlinkType:Ty,symlinkTypeSync:Ly}});var Fu=_((lN,Mu)=>{"use strict";var Sy=we().fromCallback,ku=require("path"),He=yt(),Pu=je(),Ay=Pu.mkdirs,Iy=Pu.mkdirsSync,$u=bu(),wy=$u.symlinkPaths,vy=$u.symlinkPathsSync,qu=Ru(),by=qu.symlinkType,Ny=qu.symlinkTypeSync,Oy=tt().pathExists,{areIdentical:xu}=Et();function Ry(n,e,t,r){r=typeof t=="function"?t:r,t=typeof t=="function"?!1:t,He.lstat(e,(i,s)=>{!i&&s.isSymbolicLink()?Promise.all([He.stat(n),He.stat(e)]).then(([o,a])=>{if(xu(o,a))return r(null);Cu(n,e,t,r)}):Cu(n,e,t,r)})}function Cu(n,e,t,r){wy(n,e,(i,s)=>{if(i)return r(i);n=s.toDst,by(s.toCwd,t,(o,a)=>{if(o)return r(o);let l=ku.dirname(e);Oy(l,(c,u)=>{if(c)return r(c);if(u)return He.symlink(n,e,a,r);Ay(l,f=>{if(f)return r(f);He.symlink(n,e,a,r)})})})})}function Cy(n,e,t){let r;try{r=He.lstatSync(e)}catch{}if(r&&r.isSymbolicLink()){let a=He.statSync(n),l=He.statSync(e);if(xu(a,l))return}let i=vy(n,e);n=i.toDst,t=Ny(i.toCwd,t);let s=ku.dirname(e);return He.existsSync(s)||Iy(s),He.symlinkSync(n,e,t)}Mu.exports={createSymlink:Sy(Ry),createSymlinkSync:Cy}});var Gu=_((cN,Wu)=>{"use strict";var{createFile:Du,createFileSync:ju}=Tu(),{createLink:Hu,createLinkSync:Bu}=wu(),{createSymlink:Uu,createSymlinkSync:Vu}=Fu();Wu.exports={createFile:Du,createFileSync:ju,ensureFile:Du,ensureFileSync:ju,createLink:Hu,createLinkSync:Bu,ensureLink:Hu,ensureLinkSync:Bu,createSymlink:Uu,createSymlinkSync:Vu,ensureSymlink:Uu,ensureSymlinkSync:Vu}});var Tr=_((uN,Ku)=>{function ky(n,{EOL:e=` +`,finalEOL:t=!0,replacer:r=null,spaces:i}={}){let s=t?e:"";return JSON.stringify(n,r,i).replace(/\n/g,e)+s}function Py(n){return Buffer.isBuffer(n)&&(n=n.toString("utf8")),n.replace(/^\uFEFF/,"")}Ku.exports={stringify:ky,stripBom:Py}});var zu=_((fN,Xu)=>{var $t;try{$t=ve()}catch{$t=require("fs")}var Lr=we(),{stringify:Yu,stripBom:Ju}=Tr();async function $y(n,e={}){typeof e=="string"&&(e={encoding:e});let t=e.fs||$t,r="throws"in e?e.throws:!0,i=await Lr.fromCallback(t.readFile)(n,e);i=Ju(i);let s;try{s=JSON.parse(i,e?e.reviver:null)}catch(o){if(r)throw o.message=`${n}: ${o.message}`,o;return null}return s}var qy=Lr.fromPromise($y);function xy(n,e={}){typeof e=="string"&&(e={encoding:e});let t=e.fs||$t,r="throws"in e?e.throws:!0;try{let i=t.readFileSync(n,e);return i=Ju(i),JSON.parse(i,e.reviver)}catch(i){if(r)throw i.message=`${n}: ${i.message}`,i;return null}}async function My(n,e,t={}){let r=t.fs||$t,i=Yu(e,t);await Lr.fromCallback(r.writeFile)(n,i,t)}var Fy=Lr.fromPromise(My);function Dy(n,e,t={}){let r=t.fs||$t,i=Yu(e,t);return r.writeFileSync(n,i,t)}var jy={readFile:qy,readFileSync:xy,writeFile:Fy,writeFileSync:Dy};Xu.exports=jy});var Zu=_((hN,Qu)=>{"use strict";var Sr=zu();Qu.exports={readJson:Sr.readFile,readJsonSync:Sr.readFileSync,writeJson:Sr.writeFile,writeJsonSync:Sr.writeFileSync}});var Ar=_((dN,nf)=>{"use strict";var Hy=we().fromCallback,cn=ve(),ef=require("path"),tf=je(),By=tt().pathExists;function Uy(n,e,t,r){typeof t=="function"&&(r=t,t="utf8");let i=ef.dirname(n);By(i,(s,o)=>{if(s)return r(s);if(o)return cn.writeFile(n,e,t,r);tf.mkdirs(i,a=>{if(a)return r(a);cn.writeFile(n,e,t,r)})})}function Vy(n,...e){let t=ef.dirname(n);if(cn.existsSync(t))return cn.writeFileSync(n,...e);tf.mkdirsSync(t),cn.writeFileSync(n,...e)}nf.exports={outputFile:Hy(Uy),outputFileSync:Vy}});var sf=_((pN,rf)=>{"use strict";var{stringify:Wy}=Tr(),{outputFile:Gy}=Ar();async function Ky(n,e,t={}){let r=Wy(e,t);await Gy(n,r,t)}rf.exports=Ky});var af=_((_N,of)=>{"use strict";var{stringify:Yy}=Tr(),{outputFileSync:Jy}=Ar();function Xy(n,e,t){let r=Yy(e,t);Jy(n,r,t)}of.exports=Xy});var cf=_((mN,lf)=>{"use strict";var zy=we().fromPromise,Se=Zu();Se.outputJson=zy(sf());Se.outputJsonSync=af();Se.outputJSON=Se.outputJson;Se.outputJSONSync=Se.outputJsonSync;Se.writeJSON=Se.writeJson;Se.writeJSONSync=Se.writeJsonSync;Se.readJSON=Se.readJson;Se.readJSONSync=Se.readJsonSync;lf.exports=Se});var pf=_((gN,df)=>{"use strict";var Qy=ve(),Bs=require("path"),Zy=Er().copy,hf=an().remove,eE=je().mkdirp,tE=tt().pathExists,uf=Et();function nE(n,e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};let i=t.overwrite||t.clobber||!1;uf.checkPaths(n,e,"move",t,(s,o)=>{if(s)return r(s);let{srcStat:a,isChangingCase:l=!1}=o;uf.checkParentPaths(n,a,e,"move",c=>{if(c)return r(c);if(rE(e))return ff(n,e,i,l,r);eE(Bs.dirname(e),u=>u?r(u):ff(n,e,i,l,r))})})}function rE(n){let e=Bs.dirname(n);return Bs.parse(e).root===e}function ff(n,e,t,r,i){if(r)return Hs(n,e,t,i);if(t)return hf(e,s=>s?i(s):Hs(n,e,t,i));tE(e,(s,o)=>s?i(s):o?i(new Error("dest already exists.")):Hs(n,e,t,i))}function Hs(n,e,t,r){Qy.rename(n,e,i=>i?i.code!=="EXDEV"?r(i):iE(n,e,t,r):r())}function iE(n,e,t,r){Zy(n,e,{overwrite:t,errorOnExist:!0,preserveTimestamps:!0},s=>s?r(s):hf(n,r))}df.exports=nE});var Ef=_((yN,yf)=>{"use strict";var mf=ve(),Vs=require("path"),sE=Er().copySync,gf=an().removeSync,oE=je().mkdirpSync,_f=Et();function aE(n,e,t){t=t||{};let r=t.overwrite||t.clobber||!1,{srcStat:i,isChangingCase:s=!1}=_f.checkPathsSync(n,e,"move",t);return _f.checkParentPathsSync(n,i,e,"move"),lE(e)||oE(Vs.dirname(e)),cE(n,e,r,s)}function lE(n){let e=Vs.dirname(n);return Vs.parse(e).root===e}function cE(n,e,t,r){if(r)return Us(n,e,t);if(t)return gf(e),Us(n,e,t);if(mf.existsSync(e))throw new Error("dest already exists.");return Us(n,e,t)}function Us(n,e,t){try{mf.renameSync(n,e)}catch(r){if(r.code!=="EXDEV")throw r;return uE(n,e,t)}}function uE(n,e,t){return sE(n,e,{overwrite:t,errorOnExist:!0,preserveTimestamps:!0}),gf(n)}yf.exports=aE});var Lf=_((EN,Tf)=>{"use strict";var fE=we().fromCallback;Tf.exports={move:fE(pf()),moveSync:Ef()}});var st=_((TN,Sf)=>{"use strict";Sf.exports={...yt(),...Er(),...mu(),...Gu(),...cf(),...je(),...Lf(),...Ar(),...tt(),...an()}});var wf=_((bN,Xs)=>{typeof Object.create=="function"?Xs.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Xs.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}});var vf=_((NN,Qs)=>{try{if(zs=require("util"),typeof zs.inherits!="function")throw"";Qs.exports=zs.inherits}catch{Qs.exports=wf()}var zs});var Nf=_((ON,eo)=>{var yE=vf(),bf=require("events").EventEmitter;eo.exports=ke;eo.exports.default=ke;function ke(n){if(!(this instanceof ke))return new ke(n);bf.call(this),n=n||{},this.concurrency=n.concurrency||1/0,this.timeout=n.timeout||0,this.autostart=n.autostart||!1,this.results=n.results||null,this.pending=0,this.session=0,this.running=!1,this.jobs=[],this.timers={}}yE(ke,bf);var EE=["pop","shift","indexOf","lastIndexOf"];EE.forEach(function(n){ke.prototype[n]=function(){return Array.prototype[n].apply(this.jobs,arguments)}});ke.prototype.slice=function(n,e){return this.jobs=this.jobs.slice(n,e),this};ke.prototype.reverse=function(){return this.jobs.reverse(),this};var TE=["push","unshift","splice"];TE.forEach(function(n){ke.prototype[n]=function(){var e=Array.prototype[n].apply(this.jobs,arguments);return this.autostart&&this.start(),e}});Object.defineProperty(ke.prototype,"length",{get:function(){return this.pending+this.jobs.length}});ke.prototype.start=function(n){if(n&&SE.call(this,n),this.running=!0,this.pending>=this.concurrency)return;if(this.jobs.length===0){this.pending===0&&Zs.call(this);return}var e=this,t=this.jobs.shift(),r=!0,i=this.session,s=null,o=!1,a=null,l=t.hasOwnProperty("timeout")?t.timeout:this.timeout;function c(f,d){r&&e.session===i&&(r=!1,e.pending--,s!==null&&(delete e.timers[s],clearTimeout(s)),f?e.emit("error",f,t):o===!1&&(a!==null&&(e.results[a]=Array.prototype.slice.call(arguments,1)),e.emit("success",d,t)),e.session===i&&(e.pending===0&&e.jobs.length===0?Zs.call(e):e.running&&e.start()))}l&&(s=setTimeout(function(){o=!0,e.listeners("timeout").length>0?e.emit("timeout",c,t):c()},l),this.timers[s]=s),this.results&&(a=this.results.length,this.results[a]=null),this.pending++,e.emit("start",t);var u=t(c);u&&u.then&&typeof u.then=="function"&&u.then(function(f){return c(null,f)}).catch(function(f){return c(f||!0)}),this.running&&this.jobs.length>0&&this.start()};ke.prototype.stop=function(){this.running=!1};ke.prototype.end=function(n){LE.call(this),this.jobs.length=0,this.pending=0,Zs.call(this,n)};function LE(){for(var n in this.timers){var e=this.timers[n];delete this.timers[n],clearTimeout(e)}}function SE(n){var e=this;this.on("error",t),this.on("end",r);function t(i){e.end(i)}function r(i){e.removeListener("error",t),e.removeListener("end",r),n(i,this.results)}}function Zs(n){this.session++,this.running=!1,this.emit("end",n)}});var Of=_(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.BMP=void 0;wr.BMP={validate(n){return n.toString("ascii",0,2)==="BM"},calculate(n){return{height:Math.abs(n.readInt32LE(22)),width:n.readUInt32LE(18)}}}});var to=_(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.ICO=void 0;var AE=1,IE=2+2+2,wE=1+1+1+1+2+2+4+4;function Rf(n,e){let t=n.readUInt8(e);return t===0?256:t}function Cf(n,e){let t=IE+e*wE;return{height:Rf(n,t+1),width:Rf(n,t)}}vr.ICO={validate(n){let e=n.readUInt16LE(0),t=n.readUInt16LE(4);return e!==0||t===0?!1:n.readUInt16LE(2)===AE},calculate(n){let e=n.readUInt16LE(4),t=Cf(n,0);if(e===1)return t;let r=[t];for(let s=1;s{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.CUR=void 0;var vE=to(),bE=2;br.CUR={validate(n){let e=n.readUInt16LE(0),t=n.readUInt16LE(4);return e!==0||t===0?!1:n.readUInt16LE(2)===bE},calculate(n){return vE.ICO.calculate(n)}}});var Pf=_(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.DDS=void 0;Nr.DDS={validate(n){return n.readUInt32LE(0)===542327876},calculate(n){return{height:n.readUInt32LE(12),width:n.readUInt32LE(16)}}}});var $f=_(Or=>{"use strict";Object.defineProperty(Or,"__esModule",{value:!0});Or.GIF=void 0;var NE=/^GIF8[79]a/;Or.GIF={validate(n){let e=n.toString("ascii",0,6);return NE.test(e)},calculate(n){return{height:n.readUInt16LE(8),width:n.readUInt16LE(6)}}}});var Mf=_(Rr=>{"use strict";Object.defineProperty(Rr,"__esModule",{value:!0});Rr.ICNS=void 0;var OE=4+4,RE=4,CE=4,kE={ICON:32,"ICN#":32,"icm#":16,icm4:16,icm8:16,"ics#":16,ics4:16,ics8:16,is32:16,s8mk:16,icp4:16,icl4:32,icl8:32,il32:32,l8mk:32,icp5:32,ic11:32,ich4:48,ich8:48,ih32:48,h8mk:48,icp6:64,ic12:32,it32:128,t8mk:128,ic07:128,ic08:256,ic13:256,ic09:512,ic14:512,ic10:1024};function qf(n,e){let t=e+CE;return[n.toString("ascii",e,t),n.readUInt32BE(t)]}function xf(n){let e=kE[n];return{width:e,height:e,type:n}}Rr.ICNS={validate(n){return n.toString("ascii",0,4)==="icns"},calculate(n){let e=n.length,t=n.readUInt32BE(RE),r=OE,i=qf(n,r),s=xf(i[0]);if(r+=i[1],r===t)return s;let o={height:s.height,images:[s],width:s.width};for(;r{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});Cr.J2C=void 0;Cr.J2C={validate(n){return n.toString("hex",0,4)==="ff4fff51"},calculate(n){return{height:n.readUInt32BE(12),width:n.readUInt32BE(8)}}}});var jf=_(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.JP2=void 0;var kr={ftyp:"66747970",ihdr:"69686472",jp2h:"6a703268",jp__:"6a502020",rreq:"72726571",xml_:"786d6c20"},PE=n=>{let e=n.readUInt8(0),t=1+2*e,i=n.readUInt16BE(t)*(2+e);t=t+2+i;let o=n.readUInt16BE(t)*(16+e);return t+2+o},Df=n=>({height:n.readUInt32BE(4),width:n.readUInt32BE(8)});Pr.JP2={validate(n){let e=n.toString("hex",4,8),t=n.readUInt32BE(0);if(e!==kr.jp__||t<1)return!1;let r=t+4,i=n.readUInt32BE(t);return n.slice(r,r+i).toString("hex",0,4)===kr.ftyp},calculate(n){let e=n.readUInt32BE(0),t=n.readUInt16BE(e+2),r=e+4+t;switch(n.toString("hex",r,r+4)){case kr.rreq:return r=r+4+4+PE(n.slice(r+4)),Df(n.slice(r+8,r+24));case kr.jp2h:return Df(n.slice(r+8,r+24));default:throw new TypeError("Unsupported header found: "+n.toString("ascii",r,r+4))}}}});var no=_($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.readUInt=void 0;function $E(n,e,t,r){t=t||0;let i=r?"BE":"LE",s="readUInt"+e+i;return n[s].call(n,t)}$r.readUInt=$E});var Bf=_(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.JPG=void 0;var fn=no(),qE="45786966",xE=2,ro=6,ME=2,FE="4d4d",DE="4949",Hf=12,jE=2;function HE(n){return n.toString("hex",2,6)===qE}function BE(n,e){return{height:n.readUInt16BE(e),width:n.readUInt16BE(e+2)}}function UE(n,e){let r=ro+8,i=(0,fn.readUInt)(n,16,r,e);for(let s=0;sn.length)return;let l=n.slice(o,a);if((0,fn.readUInt)(l,16,0,e)===274)return(0,fn.readUInt)(l,16,2,e)!==3||(0,fn.readUInt)(l,32,4,e)!==1?void 0:(0,fn.readUInt)(l,16,8,e)}}function VE(n,e){let t=n.slice(xE,e),r=t.toString("hex",ro,ro+ME),i=r===FE;if(i||r===DE)return UE(t,i)}function WE(n,e){if(e>n.length)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(n[e]!==255)throw new TypeError("Invalid JPG, marker table corrupted")}qr.JPG={validate(n){return n.toString("hex",0,2)==="ffd8"},calculate(n){n=n.slice(4);let e,t;for(;n.length;){let r=n.readUInt16BE(0);if(HE(n)&&(e=VE(n,r)),WE(n,r),t=n[r+1],t===192||t===193||t===194){let i=BE(n,r+5);return e?{height:i.height,orientation:e,width:i.width}:i}n=n.slice(r+2)}throw new TypeError("Invalid JPG, no size found")}}});var Uf=_(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.KTX=void 0;var GE="KTX 11";xr.KTX={validate(n){return GE===n.toString("ascii",1,7)},calculate(n){return{height:n.readUInt32LE(40),width:n.readUInt32LE(36)}}}});var Wf=_(Mr=>{"use strict";Object.defineProperty(Mr,"__esModule",{value:!0});Mr.PNG=void 0;var KE=`PNG\r  -`,ME="IHDR",qf="CgBI";Rr.PNG={validate(n){if(xE===n.toString("ascii",1,8)){let e=n.toString("ascii",12,16);if(e===qf&&(e=n.toString("ascii",28,32)),e!==ME)throw new TypeError("Invalid PNG");return!0}return!1},calculate(n){return n.toString("ascii",12,16)===qf?{height:n.readUInt32BE(36),width:n.readUInt32BE(32)}:{height:n.readUInt32BE(20),width:n.readUInt32BE(16)}}}});var Ff=p(Cr=>{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});Cr.PNM=void 0;var Df={P1:"pbm/ascii",P2:"pgm/ascii",P3:"ppm/ascii",P4:"pbm",P5:"pgm",P6:"ppm",P7:"pam",PF:"pfm"},DE=Object.keys(Df),Mf={default:n=>{let e=[];for(;n.length>0;){let t=n.shift();if(t[0]!=="#"){e=t.split(" ");break}}if(e.length===2)return{height:parseInt(e[1],10),width:parseInt(e[0],10)};throw new TypeError("Invalid PNM")},pam:n=>{let e={};for(;n.length>0;){let t=n.shift();if(t.length>16||t.charCodeAt(0)>128)continue;let[r,i]=t.split(" ");if(r&&i&&(e[r.toLowerCase()]=parseInt(i,10)),e.height&&e.width)break}if(e.height&&e.width)return{height:e.height,width:e.width};throw new TypeError("Invalid PAM")}};Cr.PNM={validate(n){let e=n.toString("ascii",0,2);return DE.includes(e)},calculate(n){let e=n.toString("ascii",0,2),t=Df[e],r=n.toString("ascii",3).split(/[\r\n]+/);return(Mf[t]||Mf.default)(r)}}});var jf=p(kr=>{"use strict";Object.defineProperty(kr,"__esModule",{value:!0});kr.PSD=void 0;kr.PSD={validate(n){return n.toString("ascii",0,4)==="8BPS"},calculate(n){return{height:n.readUInt32BE(14),width:n.readUInt32BE(18)}}}});var Uf=p(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.SVG=void 0;var Hf=/"']|"[^"]*"|'[^']*')*>/,Pr={height:/\sheight=(['"])([^%]+?)\1/,root:Hf,viewbox:/\sviewBox=(['"])(.+?)\1/i,width:/\swidth=(['"])([^%]+?)\1/},Xs=2.54,Bf={in:96,cm:96/Xs,em:16,ex:8,m:96/Xs*100,mm:96/Xs/10,pc:96/72/12,pt:96/72,px:1},FE=new RegExp(`^([0-9.]+(?:e\\d+)?)(${Object.keys(Bf).join("|")})?$`);function $r(n){let e=FE.exec(n);if(e)return Math.round(Number(e[1])*(Bf[e[2]]||1))}function jE(n){let e=n.split(" ");return{height:$r(e[3]),width:$r(e[2])}}function HE(n){let e=n.match(Pr.width),t=n.match(Pr.height),r=n.match(Pr.viewbox);return{height:t&&$r(t[2]),viewbox:r&&jE(r[2]),width:e&&$r(e[2])}}function BE(n){return{height:n.height,width:n.width}}function UE(n,e){let t=e.width/e.height;return n.width?{height:Math.floor(n.width/t),width:n.width}:n.height?{height:n.height,width:Math.floor(n.height*t)}:{height:e.height,width:e.width}}qr.SVG={validate(n){let e=String(n);return Hf.test(e)},calculate(n){let e=n.toString("utf8").match(Pr.root);if(e){let t=HE(e[0]);if(t.width&&t.height)return BE(t);if(t.viewbox)return UE(t,t.viewbox)}throw new TypeError("Invalid SVG")}}});var Vf=p(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.TGA=void 0;xr.TGA={validate(n){return n.readUInt16LE(0)===0&&n.readUInt16LE(4)===0},calculate(n){return{height:n.readUInt16LE(14),width:n.readUInt16LE(12)}}}});var Wf=p(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.TIFF=void 0;var Mr=require("fs"),kt=Ys();function VE(n,e,t){let r=(0,kt.readUInt)(n,32,4,t),i=1024,s=Mr.statSync(e).size;r+i>s&&(i=s-r-10);let o=Buffer.alloc(i),a=Mr.openSync(e,"r");return Mr.readSync(a,o,0,i,r),Mr.closeSync(a),o.slice(2)}function WE(n,e){let t=(0,kt.readUInt)(n,16,8,e);return((0,kt.readUInt)(n,16,10,e)<<16)+t}function GE(n){if(n.length>24)return n.slice(12)}function KE(n,e){let t={},r=n;for(;r&&r.length;){let i=(0,kt.readUInt)(r,16,0,e),s=(0,kt.readUInt)(r,16,2,e),o=(0,kt.readUInt)(r,32,4,e);if(i===0)break;o===1&&(s===3||s===4)&&(t[i]=WE(r,e)),r=GE(r)}return t}function YE(n){let e=n.toString("ascii",0,2);if(e==="II")return"LE";if(e==="MM")return"BE"}var JE=["49492a00","4d4d002a"];Dr.TIFF={validate(n){return JE.includes(n.toString("hex",0,4))},calculate(n,e){if(!e)throw new TypeError("Tiff doesn't support buffer");let t=YE(n)==="BE",r=VE(n,e,t),i=KE(r,t),s=i[256],o=i[257];if(!s||!o)throw new TypeError("Invalid Tiff. Missing tags");return{height:o,width:s}}}});var Gf=p(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.WEBP=void 0;function XE(n){return{height:1+n.readUIntLE(7,3),width:1+n.readUIntLE(4,3)}}function zE(n){return{height:1+((n[4]&15)<<10|n[3]<<2|(n[2]&192)>>6),width:1+((n[2]&63)<<8|n[1])}}function QE(n){return{height:n.readInt16LE(8)&16383,width:n.readInt16LE(6)&16383}}Fr.WEBP={validate(n){let e=n.toString("ascii",0,4)==="RIFF",t=n.toString("ascii",8,12)==="WEBP",r=n.toString("ascii",12,15)==="VP8";return e&&t&&r},calculate(n){let e=n.toString("ascii",12,16);if(n=n.slice(20,30),e==="VP8X"){let r=n[0],i=(r&192)===0,s=(r&1)===0;if(i&&s)return XE(n);throw new TypeError("Invalid WebP")}if(e==="VP8 "&&n[0]!==47)return QE(n);let t=n.toString("hex",3,6);if(e==="VP8L"&&t!=="9d012a")return zE(n);throw new TypeError("Invalid WebP")}}});var zs=p(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.typeHandlers=void 0;var ZE=Tf(),e1=Af(),t1=If(),n1=wf(),r1=Nf(),i1=Ks(),s1=Of(),o1=Cf(),a1=Pf(),l1=$f(),c1=xf(),u1=Ff(),f1=jf(),h1=Uf(),d1=Vf(),_1=Wf(),p1=Gf();jr.typeHandlers={bmp:ZE.BMP,cur:e1.CUR,dds:t1.DDS,gif:n1.GIF,icns:r1.ICNS,ico:i1.ICO,j2c:s1.J2C,jp2:o1.JP2,jpg:a1.JPG,ktx:l1.KTX,png:c1.PNG,pnm:u1.PNM,psd:f1.PSD,svg:h1.SVG,tga:d1.TGA,tiff:_1.TIFF,webp:p1.WEBP}});var Yf=p(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.detector=void 0;var Qs=zs(),m1=Object.keys(Qs.typeHandlers),Kf={56:"psd",66:"bmp",68:"dds",71:"gif",73:"tiff",77:"tiff",82:"webp",105:"icns",137:"png",255:"jpg"};function g1(n){let e=n[0];if(e in Kf){let r=Kf[e];if(r&&Qs.typeHandlers[r].validate(n))return r}let t=r=>Qs.typeHandlers[r].validate(n);return m1.find(t)}Hr.detector=g1});var Qf=p((be,zf)=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.types=be.setConcurrency=be.disableTypes=be.disableFS=be.imageSize=void 0;var cn=require("fs"),y1=require("path"),E1=Ef(),eo=zs(),T1=Yf(),Jf=512*1024,Xf=new E1.default({concurrency:100,autostart:!0}),Br={disabledFS:!1,disabledTypes:[]};function Zs(n,e){let t=(0,T1.detector)(n);if(typeof t<"u"){if(Br.disabledTypes.indexOf(t)>-1)throw new TypeError("disabled file type: "+t);if(t in eo.typeHandlers){let r=eo.typeHandlers[t].calculate(n,e);if(r!==void 0)return r.type=t,r}}throw new TypeError("unsupported file type: "+t+" (file: "+e+")")}async function L1(n){let e=await cn.promises.open(n,"r");try{let{size:t}=await e.stat();if(t<=0)throw new Error("Empty file");let r=Math.min(t,Jf),i=Buffer.alloc(r);return await e.read(i,0,r,0),i}finally{await e.close()}}function S1(n){let e=cn.openSync(n,"r");try{let{size:t}=cn.fstatSync(e);if(t<=0)throw new Error("Empty file");let r=Math.min(t,Jf),i=Buffer.alloc(r);return cn.readSync(e,i,0,r,0),i}finally{cn.closeSync(e)}}zf.exports=be=to;be.default=to;function to(n,e){if(Buffer.isBuffer(n))return Zs(n);if(typeof n!="string"||Br.disabledFS)throw new TypeError("invalid invocation. input should be a Buffer");let t=y1.resolve(n);if(typeof e=="function")Xf.push(()=>L1(t).then(r=>process.nextTick(e,null,Zs(r,t))).catch(e));else{let r=S1(t);return Zs(r,t)}}be.imageSize=to;var A1=n=>{Br.disabledFS=n};be.disableFS=A1;var I1=n=>{Br.disabledTypes=n};be.disableTypes=I1;var w1=n=>{Xf.concurrency=n};be.setConcurrency=w1;be.types=Object.keys(eo.typeHandlers)});var nh=p((Ur,th)=>{(function(n,e){typeof Ur=="object"&&typeof th<"u"?e(Ur):typeof define=="function"&&define.amd?define(["exports"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n.compareVersions={}))})(Ur,function(n){"use strict";let e=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,t=m=>{if(typeof m!="string")throw new TypeError("Invalid argument expected string");let A=m.match(e);if(!A)throw new Error(`Invalid argument not valid semver ('${m}' received)`);return A.shift(),A},r=m=>m==="*"||m==="x"||m==="X",i=m=>{let A=parseInt(m,10);return isNaN(A)?m:A},s=(m,A)=>typeof m!=typeof A?[String(m),String(A)]:[m,A],o=(m,A)=>{if(r(m)||r(A))return 0;let[w,b]=s(i(m),i(A));return w>b?1:w{for(let w=0;w{let w=t(m),b=t(A),$=w.pop(),M=b.pop(),v=a(w,b);return v!==0?v:$&&M?a($.split("."),M.split(".")):$||M?$?-1:1:0},c=(m,A,w)=>{_(w);let b=l(m,A);return u[w].includes(b)},u={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},f=Object.keys(u),_=m=>{if(typeof m!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof m}`);if(f.indexOf(m)===-1)throw new Error(`Invalid operator, expected one of ${f.join("|")}`)},h=(m,A)=>{if(A=A.replace(/([><=]+)\s+/g,"$1"),A.includes("||"))return A.split("||").some(U=>h(m,U));if(A.includes(" - ")){let[U,Y]=A.split(" - ",2);return h(m,`>=${U} <=${Y}`)}else if(A.includes(" "))return A.trim().replace(/\s{2,}/g," ").split(" ").every(U=>h(m,U));let w=A.match(/^([<>=~^]+)/),b=w?w[1]:"=";if(b!=="^"&&b!=="~")return c(m,A,b);let[$,M,v,,V]=t(m),[G,P,j,,D]=t(A),F=[$,M,v],X=[G,P??"x",j??"x"];if(D&&(!V||a(F,X)!==0||a(V.split("."),D.split("."))===-1))return!1;let ie=X.findIndex(U=>U!=="0")+1,K=b==="~"?2:ie>1?ie:1;return!(a(F.slice(0,K),X.slice(0,K))!==0||a(F.slice(K),X.slice(K))===-1)},T=m=>typeof m=="string"&&/^[v\d]/.test(m)&&e.test(m),g=m=>typeof m=="string"&&/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/.test(m);n.compare=c,n.compareVersions=l,n.satisfies=h,n.validate=T,n.validateStrict=g})});var un=p((xN,sh)=>{"use strict";var v1="2.0.0",b1=Number.MAX_SAFE_INTEGER||9007199254740991,N1=16,O1=256-6,R1=["major","premajor","minor","preminor","patch","prepatch","prerelease"];sh.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:N1,MAX_SAFE_BUILD_LENGTH:O1,MAX_SAFE_INTEGER:b1,RELEASE_TYPES:R1,SEMVER_SPEC_VERSION:v1,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var fn=p((MN,oh)=>{"use strict";var C1=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...n)=>console.error("SEMVER",...n):()=>{};oh.exports=C1});var Pt=p((Ue,ah)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:oo,MAX_SAFE_BUILD_LENGTH:k1,MAX_LENGTH:P1}=un(),$1=fn();Ue=ah.exports={};var q1=Ue.re=[],x1=Ue.safeRe=[],R=Ue.src=[],M1=Ue.safeSrc=[],C=Ue.t={},D1=0,ao="[a-zA-Z0-9-]",F1=[["\\s",1],["\\d",P1],[ao,k1]],j1=n=>{for(let[e,t]of F1)n=n.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return n},H=(n,e,t)=>{let r=j1(e),i=D1++;$1(n,i,e),C[n]=i,R[i]=e,M1[i]=r,q1[i]=new RegExp(e,t?"g":void 0),x1[i]=new RegExp(r,t?"g":void 0)};H("NUMERICIDENTIFIER","0|[1-9]\\d*");H("NUMERICIDENTIFIERLOOSE","\\d+");H("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${ao}*`);H("MAINVERSION",`(${R[C.NUMERICIDENTIFIER]})\\.(${R[C.NUMERICIDENTIFIER]})\\.(${R[C.NUMERICIDENTIFIER]})`);H("MAINVERSIONLOOSE",`(${R[C.NUMERICIDENTIFIERLOOSE]})\\.(${R[C.NUMERICIDENTIFIERLOOSE]})\\.(${R[C.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASEIDENTIFIER",`(?:${R[C.NONNUMERICIDENTIFIER]}|${R[C.NUMERICIDENTIFIER]})`);H("PRERELEASEIDENTIFIERLOOSE",`(?:${R[C.NONNUMERICIDENTIFIER]}|${R[C.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASE",`(?:-(${R[C.PRERELEASEIDENTIFIER]}(?:\\.${R[C.PRERELEASEIDENTIFIER]})*))`);H("PRERELEASELOOSE",`(?:-?(${R[C.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${R[C.PRERELEASEIDENTIFIERLOOSE]})*))`);H("BUILDIDENTIFIER",`${ao}+`);H("BUILD",`(?:\\+(${R[C.BUILDIDENTIFIER]}(?:\\.${R[C.BUILDIDENTIFIER]})*))`);H("FULLPLAIN",`v?${R[C.MAINVERSION]}${R[C.PRERELEASE]}?${R[C.BUILD]}?`);H("FULL",`^${R[C.FULLPLAIN]}$`);H("LOOSEPLAIN",`[v=\\s]*${R[C.MAINVERSIONLOOSE]}${R[C.PRERELEASELOOSE]}?${R[C.BUILD]}?`);H("LOOSE",`^${R[C.LOOSEPLAIN]}$`);H("GTLT","((?:<|>)?=?)");H("XRANGEIDENTIFIERLOOSE",`${R[C.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);H("XRANGEIDENTIFIER",`${R[C.NUMERICIDENTIFIER]}|x|X|\\*`);H("XRANGEPLAIN",`[v=\\s]*(${R[C.XRANGEIDENTIFIER]})(?:\\.(${R[C.XRANGEIDENTIFIER]})(?:\\.(${R[C.XRANGEIDENTIFIER]})(?:${R[C.PRERELEASE]})?${R[C.BUILD]}?)?)?`);H("XRANGEPLAINLOOSE",`[v=\\s]*(${R[C.XRANGEIDENTIFIERLOOSE]})(?:\\.(${R[C.XRANGEIDENTIFIERLOOSE]})(?:\\.(${R[C.XRANGEIDENTIFIERLOOSE]})(?:${R[C.PRERELEASELOOSE]})?${R[C.BUILD]}?)?)?`);H("XRANGE",`^${R[C.GTLT]}\\s*${R[C.XRANGEPLAIN]}$`);H("XRANGELOOSE",`^${R[C.GTLT]}\\s*${R[C.XRANGEPLAINLOOSE]}$`);H("COERCEPLAIN",`(^|[^\\d])(\\d{1,${oo}})(?:\\.(\\d{1,${oo}}))?(?:\\.(\\d{1,${oo}}))?`);H("COERCE",`${R[C.COERCEPLAIN]}(?:$|[^\\d])`);H("COERCEFULL",R[C.COERCEPLAIN]+`(?:${R[C.PRERELEASE]})?(?:${R[C.BUILD]})?(?:$|[^\\d])`);H("COERCERTL",R[C.COERCE],!0);H("COERCERTLFULL",R[C.COERCEFULL],!0);H("LONETILDE","(?:~>?)");H("TILDETRIM",`(\\s*)${R[C.LONETILDE]}\\s+`,!0);Ue.tildeTrimReplace="$1~";H("TILDE",`^${R[C.LONETILDE]}${R[C.XRANGEPLAIN]}$`);H("TILDELOOSE",`^${R[C.LONETILDE]}${R[C.XRANGEPLAINLOOSE]}$`);H("LONECARET","(?:\\^)");H("CARETTRIM",`(\\s*)${R[C.LONECARET]}\\s+`,!0);Ue.caretTrimReplace="$1^";H("CARET",`^${R[C.LONECARET]}${R[C.XRANGEPLAIN]}$`);H("CARETLOOSE",`^${R[C.LONECARET]}${R[C.XRANGEPLAINLOOSE]}$`);H("COMPARATORLOOSE",`^${R[C.GTLT]}\\s*(${R[C.LOOSEPLAIN]})$|^$`);H("COMPARATOR",`^${R[C.GTLT]}\\s*(${R[C.FULLPLAIN]})$|^$`);H("COMPARATORTRIM",`(\\s*)${R[C.GTLT]}\\s*(${R[C.LOOSEPLAIN]}|${R[C.XRANGEPLAIN]})`,!0);Ue.comparatorTrimReplace="$1$2$3";H("HYPHENRANGE",`^\\s*(${R[C.XRANGEPLAIN]})\\s+-\\s+(${R[C.XRANGEPLAIN]})\\s*$`);H("HYPHENRANGELOOSE",`^\\s*(${R[C.XRANGEPLAINLOOSE]})\\s+-\\s+(${R[C.XRANGEPLAINLOOSE]})\\s*$`);H("STAR","(<|>)?=?\\s*\\*");H("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");H("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Vr=p((DN,lh)=>{"use strict";var H1=Object.freeze({loose:!0}),B1=Object.freeze({}),U1=n=>n?typeof n!="object"?H1:n:B1;lh.exports=U1});var lo=p((FN,fh)=>{"use strict";var ch=/^[0-9]+$/,uh=(n,e)=>{let t=ch.test(n),r=ch.test(e);return t&&r&&(n=+n,e=+e),n===e?0:t&&!r?-1:r&&!t?1:nuh(e,n);fh.exports={compareIdentifiers:uh,rcompareIdentifiers:V1}});var ye=p((jN,dh)=>{"use strict";var Wr=fn(),{MAX_LENGTH:hh,MAX_SAFE_INTEGER:Gr}=un(),{safeRe:Kr,t:Yr}=Pt(),W1=Vr(),{compareIdentifiers:$t}=lo(),co=class n{constructor(e,t){if(t=W1(t),e instanceof n){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>hh)throw new TypeError(`version is longer than ${hh} characters`);Wr("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let r=e.trim().match(t.loose?Kr[Yr.LOOSE]:Kr[Yr.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Gr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Gr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Gr||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&s=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(t){let s=[t,i];r===!1&&(s=[t]),$t(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};dh.exports=co});var gt=p((HN,ph)=>{"use strict";var _h=ye(),G1=(n,e,t=!1)=>{if(n instanceof _h)return n;try{return new _h(n,e)}catch(r){if(!t)return null;throw r}};ph.exports=G1});var gh=p((BN,mh)=>{"use strict";var K1=gt(),Y1=(n,e)=>{let t=K1(n,e);return t?t.version:null};mh.exports=Y1});var Eh=p((UN,yh)=>{"use strict";var J1=gt(),X1=(n,e)=>{let t=J1(n.trim().replace(/^[=v]+/,""),e);return t?t.version:null};yh.exports=X1});var Sh=p((VN,Lh)=>{"use strict";var Th=ye(),z1=(n,e,t,r,i)=>{typeof t=="string"&&(i=r,r=t,t=void 0);try{return new Th(n instanceof Th?n.version:n,t).inc(e,r,i).version}catch{return null}};Lh.exports=z1});var wh=p((WN,Ih)=>{"use strict";var Ah=gt(),Q1=(n,e)=>{let t=Ah(n,null,!0),r=Ah(e,null,!0),i=t.compare(r);if(i===0)return null;let s=i>0,o=s?t:r,a=s?r:t,l=!!o.prerelease.length;if(!!a.prerelease.length&&!l){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let u=l?"pre":"";return t.major!==r.major?u+"major":t.minor!==r.minor?u+"minor":t.patch!==r.patch?u+"patch":"prerelease"};Ih.exports=Q1});var bh=p((GN,vh)=>{"use strict";var Z1=ye(),eT=(n,e)=>new Z1(n,e).major;vh.exports=eT});var Oh=p((KN,Nh)=>{"use strict";var tT=ye(),nT=(n,e)=>new tT(n,e).minor;Nh.exports=nT});var Ch=p((YN,Rh)=>{"use strict";var rT=ye(),iT=(n,e)=>new rT(n,e).patch;Rh.exports=iT});var Ph=p((JN,kh)=>{"use strict";var sT=gt(),oT=(n,e)=>{let t=sT(n,e);return t&&t.prerelease.length?t.prerelease:null};kh.exports=oT});var $e=p((XN,qh)=>{"use strict";var $h=ye(),aT=(n,e,t)=>new $h(n,t).compare(new $h(e,t));qh.exports=aT});var Mh=p((zN,xh)=>{"use strict";var lT=$e(),cT=(n,e,t)=>lT(e,n,t);xh.exports=cT});var Fh=p((QN,Dh)=>{"use strict";var uT=$e(),fT=(n,e)=>uT(n,e,!0);Dh.exports=fT});var Jr=p((ZN,Hh)=>{"use strict";var jh=ye(),hT=(n,e,t)=>{let r=new jh(n,t),i=new jh(e,t);return r.compare(i)||r.compareBuild(i)};Hh.exports=hT});var Uh=p((eO,Bh)=>{"use strict";var dT=Jr(),_T=(n,e)=>n.sort((t,r)=>dT(t,r,e));Bh.exports=_T});var Wh=p((tO,Vh)=>{"use strict";var pT=Jr(),mT=(n,e)=>n.sort((t,r)=>pT(r,t,e));Vh.exports=mT});var hn=p((nO,Gh)=>{"use strict";var gT=$e(),yT=(n,e,t)=>gT(n,e,t)>0;Gh.exports=yT});var Xr=p((rO,Kh)=>{"use strict";var ET=$e(),TT=(n,e,t)=>ET(n,e,t)<0;Kh.exports=TT});var uo=p((iO,Yh)=>{"use strict";var LT=$e(),ST=(n,e,t)=>LT(n,e,t)===0;Yh.exports=ST});var fo=p((sO,Jh)=>{"use strict";var AT=$e(),IT=(n,e,t)=>AT(n,e,t)!==0;Jh.exports=IT});var zr=p((oO,Xh)=>{"use strict";var wT=$e(),vT=(n,e,t)=>wT(n,e,t)>=0;Xh.exports=vT});var Qr=p((aO,zh)=>{"use strict";var bT=$e(),NT=(n,e,t)=>bT(n,e,t)<=0;zh.exports=NT});var ho=p((lO,Qh)=>{"use strict";var OT=uo(),RT=fo(),CT=hn(),kT=zr(),PT=Xr(),$T=Qr(),qT=(n,e,t,r)=>{switch(e){case"===":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n===t;case"!==":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n!==t;case"":case"=":case"==":return OT(n,t,r);case"!=":return RT(n,t,r);case">":return CT(n,t,r);case">=":return kT(n,t,r);case"<":return PT(n,t,r);case"<=":return $T(n,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};Qh.exports=qT});var ed=p((cO,Zh)=>{"use strict";var xT=ye(),MT=gt(),{safeRe:Zr,t:ei}=Pt(),DT=(n,e)=>{if(n instanceof xT)return n;if(typeof n=="number"&&(n=String(n)),typeof n!="string")return null;e=e||{};let t=null;if(!e.rtl)t=n.match(e.includePrerelease?Zr[ei.COERCEFULL]:Zr[ei.COERCE]);else{let l=e.includePrerelease?Zr[ei.COERCERTLFULL]:Zr[ei.COERCERTL],c;for(;(c=l.exec(n))&&(!t||t.index+t[0].length!==n.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),l.lastIndex=c.index+c[1].length+c[2].length;l.lastIndex=-1}if(t===null)return null;let r=t[2],i=t[3]||"0",s=t[4]||"0",o=e.includePrerelease&&t[5]?`-${t[5]}`:"",a=e.includePrerelease&&t[6]?`+${t[6]}`:"";return MT(`${r}.${i}.${s}${o}${a}`,e)};Zh.exports=DT});var nd=p((uO,td)=>{"use strict";var _o=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};td.exports=_o});var qe=p((fO,od)=>{"use strict";var FT=/\s+/g,po=class n{constructor(e,t){if(t=HT(t),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof mo)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(FT," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(i=>!id(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&YT(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e0&&(this.formatted+="||");let t=this.set[e];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=t[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let r=((this.options.includePrerelease&>)|(this.options.loose&&KT))+":"+e,i=rd.get(r);if(i)return i;let s=this.options.loose,o=s?Ne[Se.HYPHENRANGELOOSE]:Ne[Se.HYPHENRANGE];e=e.replace(o,iL(this.options.includePrerelease)),te("hyphen replace",e),e=e.replace(Ne[Se.COMPARATORTRIM],UT),te("comparator trim",e),e=e.replace(Ne[Se.TILDETRIM],VT),te("tilde trim",e),e=e.replace(Ne[Se.CARETTRIM],WT),te("caret trim",e);let a=e.split(" ").map(f=>JT(f,this.options)).join(" ").split(/\s+/).map(f=>rL(f,this.options));s&&(a=a.filter(f=>(te("loose invalid filter",f,this.options),!!f.match(Ne[Se.COMPARATORLOOSE])))),te("range list",a);let l=new Map,c=a.map(f=>new mo(f,this.options));for(let f of c){if(id(f))return[f];l.set(f.value,f)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return rd.set(r,u),u}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Range is required");return this.set.some(r=>sd(r,t)&&e.set.some(i=>sd(i,t)&&r.every(s=>i.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new BT(e,this.options)}catch{return!1}for(let t=0;tn.value==="<0.0.0-0",YT=n=>n.value==="",sd=(n,e)=>{let t=!0,r=n.slice(),i=r.pop();for(;t&&r.length;)t=r.every(s=>i.intersects(s,e)),i=r.pop();return t},JT=(n,e)=>(te("comp",n,e),n=QT(n,e),te("caret",n),n=XT(n,e),te("tildes",n),n=eL(n,e),te("xrange",n),n=nL(n,e),te("stars",n),n),Ae=n=>!n||n.toLowerCase()==="x"||n==="*",XT=(n,e)=>n.trim().split(/\s+/).map(t=>zT(t,e)).join(" "),zT=(n,e)=>{let t=e.loose?Ne[Se.TILDELOOSE]:Ne[Se.TILDE];return n.replace(t,(r,i,s,o,a)=>{te("tilde",n,r,i,s,o,a);let l;return Ae(i)?l="":Ae(s)?l=`>=${i}.0.0 <${+i+1}.0.0-0`:Ae(o)?l=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:a?(te("replaceTilde pr",a),l=`>=${i}.${s}.${o}-${a} <${i}.${+s+1}.0-0`):l=`>=${i}.${s}.${o} <${i}.${+s+1}.0-0`,te("tilde return",l),l})},QT=(n,e)=>n.trim().split(/\s+/).map(t=>ZT(t,e)).join(" "),ZT=(n,e)=>{te("caret",n,e);let t=e.loose?Ne[Se.CARETLOOSE]:Ne[Se.CARET],r=e.includePrerelease?"-0":"";return n.replace(t,(i,s,o,a,l)=>{te("caret",n,i,s,o,a,l);let c;return Ae(s)?c="":Ae(o)?c=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Ae(a)?s==="0"?c=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:l?(te("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(te("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),te("caret return",c),c})},eL=(n,e)=>(te("replaceXRanges",n,e),n.split(/\s+/).map(t=>tL(t,e)).join(" ")),tL=(n,e)=>{n=n.trim();let t=e.loose?Ne[Se.XRANGELOOSE]:Ne[Se.XRANGE];return n.replace(t,(r,i,s,o,a,l)=>{te("xRange",n,r,i,s,o,a,l);let c=Ae(s),u=c||Ae(o),f=u||Ae(a),_=f;return i==="="&&_&&(i=""),l=e.includePrerelease?"-0":"",c?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&_?(u&&(o=0),a=0,i===">"?(i=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",u?s=+s+1:o=+o+1),i==="<"&&(l="-0"),r=`${i+s}.${o}.${a}${l}`):u?r=`>=${s}.0.0${l} <${+s+1}.0.0-0`:f&&(r=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),te("xRange return",r),r})},nL=(n,e)=>(te("replaceStars",n,e),n.trim().replace(Ne[Se.STAR],"")),rL=(n,e)=>(te("replaceGTE0",n,e),n.trim().replace(Ne[e.includePrerelease?Se.GTE0PRE:Se.GTE0],"")),iL=n=>(e,t,r,i,s,o,a,l,c,u,f,_)=>(Ae(r)?t="":Ae(i)?t=`>=${r}.0.0${n?"-0":""}`:Ae(s)?t=`>=${r}.${i}.0${n?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${n?"-0":""}`,Ae(c)?l="":Ae(u)?l=`<${+c+1}.0.0-0`:Ae(f)?l=`<${c}.${+u+1}.0-0`:_?l=`<=${c}.${u}.${f}-${_}`:n?l=`<${c}.${u}.${+f+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),sL=(n,e,t)=>{for(let r=0;r0){let i=n[r].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var dn=p((hO,hd)=>{"use strict";var _n=Symbol("SemVer ANY"),Eo=class n{static get ANY(){return _n}constructor(e,t){if(t=ad(t),e instanceof n){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),yo("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===_n?this.value="":this.value=this.operator+this.semver.version,yo("comp",this)}parse(e){let t=this.options.loose?ld[cd.COMPARATORLOOSE]:ld[cd.COMPARATOR],r=e.match(t);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new ud(r[2],this.options.loose):this.semver=_n}toString(){return this.value}test(e){if(yo("Comparator.test",e,this.options.loose),this.semver===_n||e===_n)return!0;if(typeof e=="string")try{e=new ud(e,this.options)}catch{return!1}return go(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new fd(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new fd(this.value,t).test(e.semver):(t=ad(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||go(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||go(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};hd.exports=Eo;var ad=Vr(),{safeRe:ld,t:cd}=Pt(),go=ho(),yo=fn(),ud=ye(),fd=qe()});var pn=p((dO,dd)=>{"use strict";var oL=qe(),aL=(n,e,t)=>{try{e=new oL(e,t)}catch{return!1}return e.test(n)};dd.exports=aL});var pd=p((_O,_d)=>{"use strict";var lL=qe(),cL=(n,e)=>new lL(n,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));_d.exports=cL});var gd=p((pO,md)=>{"use strict";var uL=ye(),fL=qe(),hL=(n,e,t)=>{let r=null,i=null,s=null;try{s=new fL(e,t)}catch{return null}return n.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new uL(r,t))}),r};md.exports=hL});var Ed=p((mO,yd)=>{"use strict";var dL=ye(),_L=qe(),pL=(n,e,t)=>{let r=null,i=null,s=null;try{s=new _L(e,t)}catch{return null}return n.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new dL(r,t))}),r};yd.exports=pL});var Sd=p((gO,Ld)=>{"use strict";var To=ye(),mL=qe(),Td=hn(),gL=(n,e)=>{n=new mL(n,e);let t=new To("0.0.0");if(n.test(t)||(t=new To("0.0.0-0"),n.test(t)))return t;t=null;for(let r=0;r{let a=new To(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Td(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||Td(t,s))&&(t=s)}return t&&n.test(t)?t:null};Ld.exports=gL});var Id=p((yO,Ad)=>{"use strict";var yL=qe(),EL=(n,e)=>{try{return new yL(n,e).range||"*"}catch{return null}};Ad.exports=EL});var ti=p((EO,Nd)=>{"use strict";var TL=ye(),bd=dn(),{ANY:LL}=bd,SL=qe(),AL=pn(),wd=hn(),vd=Xr(),IL=Qr(),wL=zr(),vL=(n,e,t,r)=>{n=new TL(n,r),e=new SL(e,r);let i,s,o,a,l;switch(t){case">":i=wd,s=IL,o=vd,a=">",l=">=";break;case"<":i=vd,s=wL,o=wd,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(AL(n,e,r))return!1;for(let c=0;c{h.semver===LL&&(h=new bd(">=0.0.0")),f=f||h,_=_||h,i(h.semver,f.semver,r)?f=h:o(h.semver,_.semver,r)&&(_=h)}),f.operator===a||f.operator===l||(!_.operator||_.operator===a)&&s(n,_.semver))return!1;if(_.operator===l&&o(n,_.semver))return!1}return!0};Nd.exports=vL});var Rd=p((TO,Od)=>{"use strict";var bL=ti(),NL=(n,e,t)=>bL(n,e,">",t);Od.exports=NL});var kd=p((LO,Cd)=>{"use strict";var OL=ti(),RL=(n,e,t)=>OL(n,e,"<",t);Cd.exports=RL});var qd=p((SO,$d)=>{"use strict";var Pd=qe(),CL=(n,e,t)=>(n=new Pd(n,t),e=new Pd(e,t),n.intersects(e,t));$d.exports=CL});var Md=p((AO,xd)=>{"use strict";var kL=pn(),PL=$e();xd.exports=(n,e,t)=>{let r=[],i=null,s=null,o=n.sort((u,f)=>PL(u,f,t));for(let u of o)kL(u,e,t)?(s=u,i||(i=u)):(s&&r.push([i,s]),s=null,i=null);i&&r.push([i,null]);let a=[];for(let[u,f]of r)u===f?a.push(u):!f&&u===o[0]?a.push("*"):f?u===o[0]?a.push(`<=${f}`):a.push(`${u} - ${f}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{"use strict";var Dd=qe(),So=dn(),{ANY:Lo}=So,mn=pn(),Ao=$e(),$L=(n,e,t={})=>{if(n===e)return!0;n=new Dd(n,t),e=new Dd(e,t);let r=!1;e:for(let i of n.set){for(let s of e.set){let o=xL(i,s,t);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},qL=[new So(">=0.0.0-0")],Fd=[new So(">=0.0.0")],xL=(n,e,t)=>{if(n===e)return!0;if(n.length===1&&n[0].semver===Lo){if(e.length===1&&e[0].semver===Lo)return!0;t.includePrerelease?n=qL:n=Fd}if(e.length===1&&e[0].semver===Lo){if(t.includePrerelease)return!0;e=Fd}let r=new Set,i,s;for(let h of n)h.operator===">"||h.operator===">="?i=jd(i,h,t):h.operator==="<"||h.operator==="<="?s=Hd(s,h,t):r.add(h.semver);if(r.size>1)return null;let o;if(i&&s){if(o=Ao(i.semver,s.semver,t),o>0)return null;if(o===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let h of r){if(i&&!mn(h,String(i),t)||s&&!mn(h,String(s),t))return null;for(let T of e)if(!mn(h,String(T),t))return!1;return!0}let a,l,c,u,f=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,_=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;f&&f.prerelease.length===1&&s.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",i){if(_&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===_.major&&h.semver.minor===_.minor&&h.semver.patch===_.patch&&(_=!1),h.operator===">"||h.operator===">="){if(a=jd(i,h,t),a===h&&a!==i)return!1}else if(i.operator===">="&&!mn(i.semver,String(h),t))return!1}if(s){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator==="<"||h.operator==="<="){if(l=Hd(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!mn(s.semver,String(h),t))return!1}if(!h.operator&&(s||i)&&o!==0)return!1}return!(i&&c&&!s&&o!==0||s&&u&&!i&&o!==0||_||f)},jd=(n,e,t)=>{if(!n)return e;let r=Ao(n.semver,e.semver,t);return r>0?n:r<0||e.operator===">"&&n.operator===">="?e:n},Hd=(n,e,t)=>{if(!n)return e;let r=Ao(n.semver,e.semver,t);return r<0?n:r>0||e.operator==="<"&&n.operator==="<="?e:n};Bd.exports=$L});var Kd=p((wO,Gd)=>{"use strict";var Io=Pt(),Vd=un(),ML=ye(),Wd=lo(),DL=gt(),FL=gh(),jL=Eh(),HL=Sh(),BL=wh(),UL=bh(),VL=Oh(),WL=Ch(),GL=Ph(),KL=$e(),YL=Mh(),JL=Fh(),XL=Jr(),zL=Uh(),QL=Wh(),ZL=hn(),eS=Xr(),tS=uo(),nS=fo(),rS=zr(),iS=Qr(),sS=ho(),oS=ed(),aS=dn(),lS=qe(),cS=pn(),uS=pd(),fS=gd(),hS=Ed(),dS=Sd(),_S=Id(),pS=ti(),mS=Rd(),gS=kd(),yS=qd(),ES=Md(),TS=Ud();Gd.exports={parse:DL,valid:FL,clean:jL,inc:HL,diff:BL,major:UL,minor:VL,patch:WL,prerelease:GL,compare:KL,rcompare:YL,compareLoose:JL,compareBuild:XL,sort:zL,rsort:QL,gt:ZL,lt:eS,eq:tS,neq:nS,gte:rS,lte:iS,cmp:sS,coerce:oS,Comparator:aS,Range:lS,satisfies:cS,toComparators:uS,maxSatisfying:fS,minSatisfying:hS,minVersion:dS,validRange:_S,outside:pS,gtr:mS,ltr:gS,intersects:yS,simplifyRange:ES,subset:TS,SemVer:ML,re:Io.re,src:Io.src,tokens:Io.t,SEMVER_SPEC_VERSION:Vd.SEMVER_SPEC_VERSION,RELEASE_TYPES:Vd.RELEASE_TYPES,compareIdentifiers:Wd.compareIdentifiers,rcompareIdentifiers:Wd.rcompareIdentifiers}});var W=p(ge=>{"use strict";var No=Symbol.for("yaml.alias"),zd=Symbol.for("yaml.document"),ni=Symbol.for("yaml.map"),Qd=Symbol.for("yaml.pair"),Oo=Symbol.for("yaml.scalar"),ri=Symbol.for("yaml.seq"),Xe=Symbol.for("yaml.node.type"),LS=n=>!!n&&typeof n=="object"&&n[Xe]===No,SS=n=>!!n&&typeof n=="object"&&n[Xe]===zd,AS=n=>!!n&&typeof n=="object"&&n[Xe]===ni,IS=n=>!!n&&typeof n=="object"&&n[Xe]===Qd,Zd=n=>!!n&&typeof n=="object"&&n[Xe]===Oo,wS=n=>!!n&&typeof n=="object"&&n[Xe]===ri;function e_(n){if(n&&typeof n=="object")switch(n[Xe]){case ni:case ri:return!0}return!1}function vS(n){if(n&&typeof n=="object")switch(n[Xe]){case No:case ni:case Oo:case ri:return!0}return!1}var bS=n=>(Zd(n)||e_(n))&&!!n.anchor;ge.ALIAS=No;ge.DOC=zd;ge.MAP=ni;ge.NODE_TYPE=Xe;ge.PAIR=Qd;ge.SCALAR=Oo;ge.SEQ=ri;ge.hasAnchor=bS;ge.isAlias=LS;ge.isCollection=e_;ge.isDocument=SS;ge.isMap=AS;ge.isNode=vS;ge.isPair=IS;ge.isScalar=Zd;ge.isSeq=wS});var gn=p(Ro=>{"use strict";var ue=W(),Oe=Symbol("break visit"),t_=Symbol("skip children"),Ve=Symbol("remove node");function ii(n,e){let t=n_(e);ue.isDocument(n)?qt(null,n.contents,t,Object.freeze([n]))===Ve&&(n.contents=null):qt(null,n,t,Object.freeze([]))}ii.BREAK=Oe;ii.SKIP=t_;ii.REMOVE=Ve;function qt(n,e,t,r){let i=r_(n,e,t,r);if(ue.isNode(i)||ue.isPair(i))return i_(n,r,i),qt(n,i,t,r);if(typeof i!="symbol"){if(ue.isCollection(e)){r=Object.freeze(r.concat(e));for(let s=0;s{"use strict";var s_=W(),NS=gn(),OS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},RS=n=>n.replace(/[!,[\]{}]/g,e=>OS[e]),yn=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let r=e.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;let[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{let o=/^\d+\.\d+$/.test(s);return t(6,`Unsupported YAML version ${s}`,o),!1}}default:return t(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,r,i]=e.match(/^(.*!)([^!]*)$/);i||t(`The ${e} tag has no suffix`);let s=this.tags[r];return s?s+decodeURIComponent(i):r==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,r]of Object.entries(this.tags))if(e.startsWith(r))return t+RS(e.substring(r.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags),i;if(e&&r.length>0&&s_.isNode(e.contents)){let s={};NS.visit(e.contents,(o,a)=>{s_.isNode(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(let[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(a=>a.startsWith(o)))&&t.push(`%TAG ${s} ${o}`);return t.join(` -`)}};yn.defaultYaml={explicit:!1,version:"1.2"};yn.defaultTags={"!!":"tag:yaml.org,2002:"};o_.Directives=yn});var oi=p(En=>{"use strict";var a_=W(),CS=gn();function kS(n){if(/[\x00-\x19\s,[\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function l_(n){let e=new Set;return CS.visit(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function c_(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function PS(n,e){let t=[],r=new Map,i=null;return{onAnchor:s=>{t.push(s),i||(i=l_(n));let o=c_(e,i);return i.add(o),o},setAnchors:()=>{for(let s of t){let o=r.get(s);if(typeof o=="object"&&o.anchor&&(a_.isScalar(o.node)||a_.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}En.anchorIsValid=kS;En.anchorNames=l_;En.createNodeAnchors=PS;En.findNewAnchor=c_});var ko=p(u_=>{"use strict";function Tn(n,e,t,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;i{"use strict";var $S=W();function f_(n,e,t){if(Array.isArray(n))return n.map((r,i)=>f_(r,String(i),t));if(n&&typeof n.toJSON=="function"){if(!t||!$S.hasAnchor(n))return n.toJSON(e,t);let r={aliasCount:0,count:1,res:void 0};t.anchors.set(n,r),t.onCreate=s=>{r.res=s,delete t.onCreate};let i=n.toJSON(e,t);return t.onCreate&&t.onCreate(i),i}return typeof n=="bigint"&&!t?.keep?Number(n):n}h_.toJS=f_});var ai=p(__=>{"use strict";var qS=ko(),d_=W(),xS=rt(),Po=class{constructor(e){Object.defineProperty(this,d_.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!d_.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=xS.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?qS.applyReviver(s,{"":a},"",a):a}};__.NodeBase=Po});var Ln=p(m_=>{"use strict";var MS=oi(),p_=gn(),li=W(),DS=ai(),FS=rt(),$o=class extends DS.NodeBase{constructor(e){super(li.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t;return p_.visit(e,{Node:(r,i)=>{if(i===this)return p_.visit.BREAK;i.anchor===this.source&&(t=i)}}),t}toJSON(e,t){if(!t)return{source:this.source};let{anchors:r,doc:i,maxAliasCount:s}=t,o=this.resolve(i);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(FS.toJS(o,null,t),a=r.get(o)),!a||a.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=ci(i,o,r)),a.count*a.aliasCount>s)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,t,r){let i=`*${this.source}`;if(e){if(MS.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(e.implicitKey)return`${i} `}return i}};function ci(n,e,t){if(li.isAlias(e)){let r=e.resolve(n),i=t&&r&&t.get(r);return i?i.count*i.aliasCount:0}else if(li.isCollection(e)){let r=0;for(let i of e.items){let s=ci(n,i,t);s>r&&(r=s)}return r}else if(li.isPair(e)){let r=ci(n,e.key,t),i=ci(n,e.value,t);return Math.max(r,i)}return 1}m_.Alias=$o});var ce=p(qo=>{"use strict";var jS=W(),HS=ai(),BS=rt(),US=n=>!n||typeof n!="function"&&typeof n!="object",it=class extends HS.NodeBase{constructor(e){super(jS.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:BS.toJS(this.value,e,t)}toString(){return String(this.value)}};it.BLOCK_FOLDED="BLOCK_FOLDED";it.BLOCK_LITERAL="BLOCK_LITERAL";it.PLAIN="PLAIN";it.QUOTE_DOUBLE="QUOTE_DOUBLE";it.QUOTE_SINGLE="QUOTE_SINGLE";qo.Scalar=it;qo.isScalarValue=US});var Sn=p(y_=>{"use strict";var VS=Ln(),yt=W(),g_=ce(),WS="tag:yaml.org,2002:";function GS(n,e,t){if(e){let r=t.filter(s=>s.tag===e),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(r=>r.identify?.(n)&&!r.format)}function KS(n,e,t){if(yt.isDocument(n)&&(n=n.contents),yt.isNode(n))return n;if(yt.isPair(n)){let f=t.schema[yt.MAP].createNode?.(t.schema,null,t);return f.items.push(n),f}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt<"u"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=t,l;if(r&&n&&typeof n=="object"){if(l=a.get(n),l)return l.anchor||(l.anchor=i(n)),new VS.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=WS+e.slice(2));let c=GS(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let f=new g_.Scalar(n);return l&&(l.node=f),f}c=n instanceof Map?o[yt.MAP]:Symbol.iterator in Object(n)?o[yt.SEQ]:o[yt.MAP]}s&&(s(c),delete t.onTagObj);let u=c?.createNode?c.createNode(t.schema,n,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,n,t):new g_.Scalar(n);return e?u.tag=e:c.default||(u.tag=c.tag),l&&(l.node=u),u}y_.createNode=KS});var An=p(fi=>{"use strict";var YS=Sn(),We=W(),JS=ai();function xo(n,e,t){let r=t;for(let i=e.length-1;i>=0;--i){let s=e[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){let o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return YS.createNode(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var E_=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,ui=class extends JS.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(r=>We.isNode(r)||We.isPair(r)?r.clone(e):r),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(E_(e))this.add(t);else{let[r,...i]=e,s=this.get(r,!0);if(We.isCollection(s))s.addIn(i,t);else if(s===void 0&&this.schema)this.set(r,xo(this.schema,i,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let i=this.get(t,!0);if(We.isCollection(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...i]=e,s=this.get(r,!0);return i.length===0?!t&&We.isScalar(s)?s.value:s:We.isCollection(s)?s.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!We.isPair(t))return!1;let r=t.value;return r==null||e&&We.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let i=this.get(t,!0);return We.isCollection(i)?i.hasIn(r):!1}setIn(e,t){let[r,...i]=e;if(i.length===0)this.set(r,t);else{let s=this.get(r,!0);if(We.isCollection(s))s.setIn(i,t);else if(s===void 0&&this.schema)this.set(r,xo(this.schema,i,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}};ui.maxFlowStringSingleLineLength=60;fi.Collection=ui;fi.collectionFromPath=xo;fi.isEmptyPath=E_});var In=p(hi=>{"use strict";var XS=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Mo(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var zS=(n,e,t)=>n.endsWith(` -`)?Mo(t,e):t.includes(` +`,YE="IHDR",Vf="CgBI";Mr.PNG={validate(n){if(KE===n.toString("ascii",1,8)){let e=n.toString("ascii",12,16);if(e===Vf&&(e=n.toString("ascii",28,32)),e!==YE)throw new TypeError("Invalid PNG");return!0}return!1},calculate(n){return n.toString("ascii",12,16)===Vf?{height:n.readUInt32BE(36),width:n.readUInt32BE(32)}:{height:n.readUInt32BE(20),width:n.readUInt32BE(16)}}}});var Yf=_(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.PNM=void 0;var Kf={P1:"pbm/ascii",P2:"pgm/ascii",P3:"ppm/ascii",P4:"pbm",P5:"pgm",P6:"ppm",P7:"pam",PF:"pfm"},JE=Object.keys(Kf),Gf={default:n=>{let e=[];for(;n.length>0;){let t=n.shift();if(t[0]!=="#"){e=t.split(" ");break}}if(e.length===2)return{height:parseInt(e[1],10),width:parseInt(e[0],10)};throw new TypeError("Invalid PNM")},pam:n=>{let e={};for(;n.length>0;){let t=n.shift();if(t.length>16||t.charCodeAt(0)>128)continue;let[r,i]=t.split(" ");if(r&&i&&(e[r.toLowerCase()]=parseInt(i,10)),e.height&&e.width)break}if(e.height&&e.width)return{height:e.height,width:e.width};throw new TypeError("Invalid PAM")}};Fr.PNM={validate(n){let e=n.toString("ascii",0,2);return JE.includes(e)},calculate(n){let e=n.toString("ascii",0,2),t=Kf[e],r=n.toString("ascii",3).split(/[\r\n]+/);return(Gf[t]||Gf.default)(r)}}});var Jf=_(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.PSD=void 0;Dr.PSD={validate(n){return n.toString("ascii",0,4)==="8BPS"},calculate(n){return{height:n.readUInt32BE(14),width:n.readUInt32BE(18)}}}});var Qf=_(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.SVG=void 0;var Xf=/"']|"[^"]*"|'[^']*')*>/,jr={height:/\sheight=(['"])([^%]+?)\1/,root:Xf,viewbox:/\sviewBox=(['"])(.+?)\1/i,width:/\swidth=(['"])([^%]+?)\1/},io=2.54,zf={in:96,cm:96/io,em:16,ex:8,m:96/io*100,mm:96/io/10,pc:96/72/12,pt:96/72,px:1},XE=new RegExp(`^([0-9.]+(?:e\\d+)?)(${Object.keys(zf).join("|")})?$`);function Hr(n){let e=XE.exec(n);if(e)return Math.round(Number(e[1])*(zf[e[2]]||1))}function zE(n){let e=n.split(" ");return{height:Hr(e[3]),width:Hr(e[2])}}function QE(n){let e=n.match(jr.width),t=n.match(jr.height),r=n.match(jr.viewbox);return{height:t&&Hr(t[2]),viewbox:r&&zE(r[2]),width:e&&Hr(e[2])}}function ZE(n){return{height:n.height,width:n.width}}function e1(n,e){let t=e.width/e.height;return n.width?{height:Math.floor(n.width/t),width:n.width}:n.height?{height:n.height,width:Math.floor(n.height*t)}:{height:e.height,width:e.width}}Br.SVG={validate(n){let e=String(n);return Xf.test(e)},calculate(n){let e=n.toString("utf8").match(jr.root);if(e){let t=QE(e[0]);if(t.width&&t.height)return ZE(t);if(t.viewbox)return e1(t,t.viewbox)}throw new TypeError("Invalid SVG")}}});var Zf=_(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.TGA=void 0;Ur.TGA={validate(n){return n.readUInt16LE(0)===0&&n.readUInt16LE(4)===0},calculate(n){return{height:n.readUInt16LE(14),width:n.readUInt16LE(12)}}}});var eh=_(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.TIFF=void 0;var Vr=require("fs"),Mt=no();function t1(n,e,t){let r=(0,Mt.readUInt)(n,32,4,t),i=1024,s=Vr.statSync(e).size;r+i>s&&(i=s-r-10);let o=Buffer.alloc(i),a=Vr.openSync(e,"r");return Vr.readSync(a,o,0,i,r),Vr.closeSync(a),o.slice(2)}function n1(n,e){let t=(0,Mt.readUInt)(n,16,8,e);return((0,Mt.readUInt)(n,16,10,e)<<16)+t}function r1(n){if(n.length>24)return n.slice(12)}function i1(n,e){let t={},r=n;for(;r&&r.length;){let i=(0,Mt.readUInt)(r,16,0,e),s=(0,Mt.readUInt)(r,16,2,e),o=(0,Mt.readUInt)(r,32,4,e);if(i===0)break;o===1&&(s===3||s===4)&&(t[i]=n1(r,e)),r=r1(r)}return t}function s1(n){let e=n.toString("ascii",0,2);if(e==="II")return"LE";if(e==="MM")return"BE"}var o1=["49492a00","4d4d002a"];Wr.TIFF={validate(n){return o1.includes(n.toString("hex",0,4))},calculate(n,e){if(!e)throw new TypeError("Tiff doesn't support buffer");let t=s1(n)==="BE",r=t1(n,e,t),i=i1(r,t),s=i[256],o=i[257];if(!s||!o)throw new TypeError("Invalid Tiff. Missing tags");return{height:o,width:s}}}});var th=_(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.WEBP=void 0;function a1(n){return{height:1+n.readUIntLE(7,3),width:1+n.readUIntLE(4,3)}}function l1(n){return{height:1+((n[4]&15)<<10|n[3]<<2|(n[2]&192)>>6),width:1+((n[2]&63)<<8|n[1])}}function c1(n){return{height:n.readInt16LE(8)&16383,width:n.readInt16LE(6)&16383}}Gr.WEBP={validate(n){let e=n.toString("ascii",0,4)==="RIFF",t=n.toString("ascii",8,12)==="WEBP",r=n.toString("ascii",12,15)==="VP8";return e&&t&&r},calculate(n){let e=n.toString("ascii",12,16);if(n=n.slice(20,30),e==="VP8X"){let r=n[0],i=(r&192)===0,s=(r&1)===0;if(i&&s)return a1(n);throw new TypeError("Invalid WebP")}if(e==="VP8 "&&n[0]!==47)return c1(n);let t=n.toString("hex",3,6);if(e==="VP8L"&&t!=="9d012a")return l1(n);throw new TypeError("Invalid WebP")}}});var so=_(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.typeHandlers=void 0;var u1=Of(),f1=kf(),h1=Pf(),d1=$f(),p1=Mf(),_1=to(),m1=Ff(),g1=jf(),y1=Bf(),E1=Uf(),T1=Wf(),L1=Yf(),S1=Jf(),A1=Qf(),I1=Zf(),w1=eh(),v1=th();Kr.typeHandlers={bmp:u1.BMP,cur:f1.CUR,dds:h1.DDS,gif:d1.GIF,icns:p1.ICNS,ico:_1.ICO,j2c:m1.J2C,jp2:g1.JP2,jpg:y1.JPG,ktx:E1.KTX,png:T1.PNG,pnm:L1.PNM,psd:S1.PSD,svg:A1.SVG,tga:I1.TGA,tiff:w1.TIFF,webp:v1.WEBP}});var rh=_(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.detector=void 0;var oo=so(),b1=Object.keys(oo.typeHandlers),nh={56:"psd",66:"bmp",68:"dds",71:"gif",73:"tiff",77:"tiff",82:"webp",105:"icns",137:"png",255:"jpg"};function N1(n){let e=n[0];if(e in nh){let r=nh[e];if(r&&oo.typeHandlers[r].validate(n))return r}let t=r=>oo.typeHandlers[r].validate(n);return b1.find(t)}Yr.detector=N1});var ah=_((Ne,oh)=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.types=Ne.setConcurrency=Ne.disableTypes=Ne.disableFS=Ne.imageSize=void 0;var hn=require("fs"),O1=require("path"),R1=Nf(),lo=so(),C1=rh(),ih=512*1024,sh=new R1.default({concurrency:100,autostart:!0}),Jr={disabledFS:!1,disabledTypes:[]};function ao(n,e){let t=(0,C1.detector)(n);if(typeof t<"u"){if(Jr.disabledTypes.indexOf(t)>-1)throw new TypeError("disabled file type: "+t);if(t in lo.typeHandlers){let r=lo.typeHandlers[t].calculate(n,e);if(r!==void 0)return r.type=t,r}}throw new TypeError("unsupported file type: "+t+" (file: "+e+")")}async function k1(n){let e=await hn.promises.open(n,"r");try{let{size:t}=await e.stat();if(t<=0)throw new Error("Empty file");let r=Math.min(t,ih),i=Buffer.alloc(r);return await e.read(i,0,r,0),i}finally{await e.close()}}function P1(n){let e=hn.openSync(n,"r");try{let{size:t}=hn.fstatSync(e);if(t<=0)throw new Error("Empty file");let r=Math.min(t,ih),i=Buffer.alloc(r);return hn.readSync(e,i,0,r,0),i}finally{hn.closeSync(e)}}oh.exports=Ne=co;Ne.default=co;function co(n,e){if(Buffer.isBuffer(n))return ao(n);if(typeof n!="string"||Jr.disabledFS)throw new TypeError("invalid invocation. input should be a Buffer");let t=O1.resolve(n);if(typeof e=="function")sh.push(()=>k1(t).then(r=>process.nextTick(e,null,ao(r,t))).catch(e));else{let r=P1(t);return ao(r,t)}}Ne.imageSize=co;var $1=n=>{Jr.disabledFS=n};Ne.disableFS=$1;var q1=n=>{Jr.disabledTypes=n};Ne.disableTypes=q1;var x1=n=>{sh.concurrency=n};Ne.setConcurrency=x1;Ne.types=Object.keys(lo.typeHandlers)});var ch=_((Xr,lh)=>{(function(n,e){typeof Xr=="object"&&typeof lh<"u"?e(Xr):typeof define=="function"&&define.amd?define(["exports"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n.compareVersions={}))})(Xr,function(n){"use strict";let e=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,t=m=>{if(typeof m!="string")throw new TypeError("Invalid argument expected string");let A=m.match(e);if(!A)throw new Error(`Invalid argument not valid semver ('${m}' received)`);return A.shift(),A},r=m=>m==="*"||m==="x"||m==="X",i=m=>{let A=parseInt(m,10);return isNaN(A)?m:A},s=(m,A)=>typeof m!=typeof A?[String(m),String(A)]:[m,A],o=(m,A)=>{if(r(m)||r(A))return 0;let[w,b]=s(i(m),i(A));return w>b?1:w{for(let w=0;w{let w=t(m),b=t(A),$=w.pop(),M=b.pop(),v=a(w,b);return v!==0?v:$&&M?a($.split("."),M.split(".")):$||M?$?-1:1:0},c=(m,A,w)=>{d(w);let b=l(m,A);return u[w].includes(b)},u={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},f=Object.keys(u),d=m=>{if(typeof m!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof m}`);if(f.indexOf(m)===-1)throw new Error(`Invalid operator, expected one of ${f.join("|")}`)},h=(m,A)=>{if(A=A.replace(/([><=]+)\s+/g,"$1"),A.includes("||"))return A.split("||").some(U=>h(m,U));if(A.includes(" - ")){let[U,Y]=A.split(" - ",2);return h(m,`>=${U} <=${Y}`)}else if(A.includes(" "))return A.trim().replace(/\s{2,}/g," ").split(" ").every(U=>h(m,U));let w=A.match(/^([<>=~^]+)/),b=w?w[1]:"=";if(b!=="^"&&b!=="~")return c(m,A,b);let[$,M,v,,V]=t(m),[G,P,j,,F]=t(A),D=[$,M,v],X=[G,P??"x",j??"x"];if(F&&(!V||a(D,X)!==0||a(V.split("."),F.split("."))===-1))return!1;let ie=X.findIndex(U=>U!=="0")+1,K=b==="~"?2:ie>1?ie:1;return!(a(D.slice(0,K),X.slice(0,K))!==0||a(D.slice(K),X.slice(K))===-1)},y=m=>typeof m=="string"&&/^[v\d]/.test(m)&&e.test(m),g=m=>typeof m=="string"&&/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/.test(m);n.compare=c,n.compareVersions=l,n.satisfies=h,n.validate=y,n.validateStrict=g})});var mn=_((eO,hh)=>{"use strict";var M1="2.0.0",F1=Number.MAX_SAFE_INTEGER||9007199254740991,D1=16,j1=256-6,H1=["major","premajor","minor","preminor","patch","prepatch","prerelease"];hh.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:D1,MAX_SAFE_BUILD_LENGTH:j1,MAX_SAFE_INTEGER:F1,RELEASE_TYPES:H1,SEMVER_SPEC_VERSION:M1,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var gn=_((tO,dh)=>{"use strict";var B1=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...n)=>console.error("SEMVER",...n):()=>{};dh.exports=B1});var Ft=_((Ve,ph)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:po,MAX_SAFE_BUILD_LENGTH:U1,MAX_LENGTH:V1}=mn(),W1=gn();Ve=ph.exports={};var G1=Ve.re=[],K1=Ve.safeRe=[],R=Ve.src=[],Y1=Ve.safeSrc=[],C=Ve.t={},J1=0,_o="[a-zA-Z0-9-]",X1=[["\\s",1],["\\d",V1],[_o,U1]],z1=n=>{for(let[e,t]of X1)n=n.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return n},H=(n,e,t)=>{let r=z1(e),i=J1++;W1(n,i,e),C[n]=i,R[i]=e,Y1[i]=r,G1[i]=new RegExp(e,t?"g":void 0),K1[i]=new RegExp(r,t?"g":void 0)};H("NUMERICIDENTIFIER","0|[1-9]\\d*");H("NUMERICIDENTIFIERLOOSE","\\d+");H("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${_o}*`);H("MAINVERSION",`(${R[C.NUMERICIDENTIFIER]})\\.(${R[C.NUMERICIDENTIFIER]})\\.(${R[C.NUMERICIDENTIFIER]})`);H("MAINVERSIONLOOSE",`(${R[C.NUMERICIDENTIFIERLOOSE]})\\.(${R[C.NUMERICIDENTIFIERLOOSE]})\\.(${R[C.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASEIDENTIFIER",`(?:${R[C.NONNUMERICIDENTIFIER]}|${R[C.NUMERICIDENTIFIER]})`);H("PRERELEASEIDENTIFIERLOOSE",`(?:${R[C.NONNUMERICIDENTIFIER]}|${R[C.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASE",`(?:-(${R[C.PRERELEASEIDENTIFIER]}(?:\\.${R[C.PRERELEASEIDENTIFIER]})*))`);H("PRERELEASELOOSE",`(?:-?(${R[C.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${R[C.PRERELEASEIDENTIFIERLOOSE]})*))`);H("BUILDIDENTIFIER",`${_o}+`);H("BUILD",`(?:\\+(${R[C.BUILDIDENTIFIER]}(?:\\.${R[C.BUILDIDENTIFIER]})*))`);H("FULLPLAIN",`v?${R[C.MAINVERSION]}${R[C.PRERELEASE]}?${R[C.BUILD]}?`);H("FULL",`^${R[C.FULLPLAIN]}$`);H("LOOSEPLAIN",`[v=\\s]*${R[C.MAINVERSIONLOOSE]}${R[C.PRERELEASELOOSE]}?${R[C.BUILD]}?`);H("LOOSE",`^${R[C.LOOSEPLAIN]}$`);H("GTLT","((?:<|>)?=?)");H("XRANGEIDENTIFIERLOOSE",`${R[C.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);H("XRANGEIDENTIFIER",`${R[C.NUMERICIDENTIFIER]}|x|X|\\*`);H("XRANGEPLAIN",`[v=\\s]*(${R[C.XRANGEIDENTIFIER]})(?:\\.(${R[C.XRANGEIDENTIFIER]})(?:\\.(${R[C.XRANGEIDENTIFIER]})(?:${R[C.PRERELEASE]})?${R[C.BUILD]}?)?)?`);H("XRANGEPLAINLOOSE",`[v=\\s]*(${R[C.XRANGEIDENTIFIERLOOSE]})(?:\\.(${R[C.XRANGEIDENTIFIERLOOSE]})(?:\\.(${R[C.XRANGEIDENTIFIERLOOSE]})(?:${R[C.PRERELEASELOOSE]})?${R[C.BUILD]}?)?)?`);H("XRANGE",`^${R[C.GTLT]}\\s*${R[C.XRANGEPLAIN]}$`);H("XRANGELOOSE",`^${R[C.GTLT]}\\s*${R[C.XRANGEPLAINLOOSE]}$`);H("COERCEPLAIN",`(^|[^\\d])(\\d{1,${po}})(?:\\.(\\d{1,${po}}))?(?:\\.(\\d{1,${po}}))?`);H("COERCE",`${R[C.COERCEPLAIN]}(?:$|[^\\d])`);H("COERCEFULL",R[C.COERCEPLAIN]+`(?:${R[C.PRERELEASE]})?(?:${R[C.BUILD]})?(?:$|[^\\d])`);H("COERCERTL",R[C.COERCE],!0);H("COERCERTLFULL",R[C.COERCEFULL],!0);H("LONETILDE","(?:~>?)");H("TILDETRIM",`(\\s*)${R[C.LONETILDE]}\\s+`,!0);Ve.tildeTrimReplace="$1~";H("TILDE",`^${R[C.LONETILDE]}${R[C.XRANGEPLAIN]}$`);H("TILDELOOSE",`^${R[C.LONETILDE]}${R[C.XRANGEPLAINLOOSE]}$`);H("LONECARET","(?:\\^)");H("CARETTRIM",`(\\s*)${R[C.LONECARET]}\\s+`,!0);Ve.caretTrimReplace="$1^";H("CARET",`^${R[C.LONECARET]}${R[C.XRANGEPLAIN]}$`);H("CARETLOOSE",`^${R[C.LONECARET]}${R[C.XRANGEPLAINLOOSE]}$`);H("COMPARATORLOOSE",`^${R[C.GTLT]}\\s*(${R[C.LOOSEPLAIN]})$|^$`);H("COMPARATOR",`^${R[C.GTLT]}\\s*(${R[C.FULLPLAIN]})$|^$`);H("COMPARATORTRIM",`(\\s*)${R[C.GTLT]}\\s*(${R[C.LOOSEPLAIN]}|${R[C.XRANGEPLAIN]})`,!0);Ve.comparatorTrimReplace="$1$2$3";H("HYPHENRANGE",`^\\s*(${R[C.XRANGEPLAIN]})\\s+-\\s+(${R[C.XRANGEPLAIN]})\\s*$`);H("HYPHENRANGELOOSE",`^\\s*(${R[C.XRANGEPLAINLOOSE]})\\s+-\\s+(${R[C.XRANGEPLAINLOOSE]})\\s*$`);H("STAR","(<|>)?=?\\s*\\*");H("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");H("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var zr=_((nO,_h)=>{"use strict";var Q1=Object.freeze({loose:!0}),Z1=Object.freeze({}),eT=n=>n?typeof n!="object"?Q1:n:Z1;_h.exports=eT});var mo=_((rO,yh)=>{"use strict";var mh=/^[0-9]+$/,gh=(n,e)=>{if(typeof n=="number"&&typeof e=="number")return n===e?0:ngh(e,n);yh.exports={compareIdentifiers:gh,rcompareIdentifiers:tT}});var ye=_((iO,Th)=>{"use strict";var Qr=gn(),{MAX_LENGTH:Eh,MAX_SAFE_INTEGER:Zr}=mn(),{safeRe:ei,t:ti}=Ft(),nT=zr(),{compareIdentifiers:go}=mo(),yo=class n{constructor(e,t){if(t=nT(t),e instanceof n){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Eh)throw new TypeError(`version is longer than ${Eh} characters`);Qr("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let r=e.trim().match(t.loose?ei[ti.LOOSE]:ei[ti.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Zr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Zr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Zr||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&se.major?1:this.minore.minor?1:this.patche.patch?1:0}comparePre(e){if(e instanceof n||(e=new n(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let r=this.prerelease[t],i=e.prerelease[t];if(Qr("prerelease compare",t,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return go(r,i)}while(++t)}compareBuild(e){e instanceof n||(e=new n(e,this.options));let t=0;do{let r=this.build[t],i=e.build[t];if(Qr("build compare",t,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return go(r,i)}while(++t)}inc(e,t,r){if(e.startsWith("pre")){if(!t&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let i=`-${t}`.match(this.options.loose?ei[ti.PRERELEASELOOSE]:ei[ti.PRERELEASE]);if(!i||i[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,r),this.inc("pre",t,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,r),this.inc("pre",t,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(t){let s=[t,i];r===!1&&(s=[t]),go(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Th.exports=yo});var Tt=_((sO,Sh)=>{"use strict";var Lh=ye(),rT=(n,e,t=!1)=>{if(n instanceof Lh)return n;try{return new Lh(n,e)}catch(r){if(!t)return null;throw r}};Sh.exports=rT});var Ih=_((oO,Ah)=>{"use strict";var iT=Tt(),sT=(n,e)=>{let t=iT(n,e);return t?t.version:null};Ah.exports=sT});var vh=_((aO,wh)=>{"use strict";var oT=Tt(),aT=(n,e)=>{let t=oT(n.trim().replace(/^[=v]+/,""),e);return t?t.version:null};wh.exports=aT});var Oh=_((lO,Nh)=>{"use strict";var bh=ye(),lT=(n,e,t,r,i)=>{typeof t=="string"&&(i=r,r=t,t=void 0);try{return new bh(n instanceof bh?n.version:n,t).inc(e,r,i).version}catch{return null}};Nh.exports=lT});var kh=_((cO,Ch)=>{"use strict";var Rh=Tt(),cT=(n,e)=>{let t=Rh(n,null,!0),r=Rh(e,null,!0),i=t.compare(r);if(i===0)return null;let s=i>0,o=s?t:r,a=s?r:t,l=!!o.prerelease.length;if(!!a.prerelease.length&&!l){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let u=l?"pre":"";return t.major!==r.major?u+"major":t.minor!==r.minor?u+"minor":t.patch!==r.patch?u+"patch":"prerelease"};Ch.exports=cT});var $h=_((uO,Ph)=>{"use strict";var uT=ye(),fT=(n,e)=>new uT(n,e).major;Ph.exports=fT});var xh=_((fO,qh)=>{"use strict";var hT=ye(),dT=(n,e)=>new hT(n,e).minor;qh.exports=dT});var Fh=_((hO,Mh)=>{"use strict";var pT=ye(),_T=(n,e)=>new pT(n,e).patch;Mh.exports=_T});var jh=_((dO,Dh)=>{"use strict";var mT=Tt(),gT=(n,e)=>{let t=mT(n,e);return t&&t.prerelease.length?t.prerelease:null};Dh.exports=gT});var $e=_((pO,Bh)=>{"use strict";var Hh=ye(),yT=(n,e,t)=>new Hh(n,t).compare(new Hh(e,t));Bh.exports=yT});var Vh=_((_O,Uh)=>{"use strict";var ET=$e(),TT=(n,e,t)=>ET(e,n,t);Uh.exports=TT});var Gh=_((mO,Wh)=>{"use strict";var LT=$e(),ST=(n,e)=>LT(n,e,!0);Wh.exports=ST});var ni=_((gO,Yh)=>{"use strict";var Kh=ye(),AT=(n,e,t)=>{let r=new Kh(n,t),i=new Kh(e,t);return r.compare(i)||r.compareBuild(i)};Yh.exports=AT});var Xh=_((yO,Jh)=>{"use strict";var IT=ni(),wT=(n,e)=>n.sort((t,r)=>IT(t,r,e));Jh.exports=wT});var Qh=_((EO,zh)=>{"use strict";var vT=ni(),bT=(n,e)=>n.sort((t,r)=>vT(r,t,e));zh.exports=bT});var yn=_((TO,Zh)=>{"use strict";var NT=$e(),OT=(n,e,t)=>NT(n,e,t)>0;Zh.exports=OT});var ri=_((LO,ed)=>{"use strict";var RT=$e(),CT=(n,e,t)=>RT(n,e,t)<0;ed.exports=CT});var Eo=_((SO,td)=>{"use strict";var kT=$e(),PT=(n,e,t)=>kT(n,e,t)===0;td.exports=PT});var To=_((AO,nd)=>{"use strict";var $T=$e(),qT=(n,e,t)=>$T(n,e,t)!==0;nd.exports=qT});var ii=_((IO,rd)=>{"use strict";var xT=$e(),MT=(n,e,t)=>xT(n,e,t)>=0;rd.exports=MT});var si=_((wO,id)=>{"use strict";var FT=$e(),DT=(n,e,t)=>FT(n,e,t)<=0;id.exports=DT});var Lo=_((vO,sd)=>{"use strict";var jT=Eo(),HT=To(),BT=yn(),UT=ii(),VT=ri(),WT=si(),GT=(n,e,t,r)=>{switch(e){case"===":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n===t;case"!==":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n!==t;case"":case"=":case"==":return jT(n,t,r);case"!=":return HT(n,t,r);case">":return BT(n,t,r);case">=":return UT(n,t,r);case"<":return VT(n,t,r);case"<=":return WT(n,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};sd.exports=GT});var ad=_((bO,od)=>{"use strict";var KT=ye(),YT=Tt(),{safeRe:oi,t:ai}=Ft(),JT=(n,e)=>{if(n instanceof KT)return n;if(typeof n=="number"&&(n=String(n)),typeof n!="string")return null;e=e||{};let t=null;if(!e.rtl)t=n.match(e.includePrerelease?oi[ai.COERCEFULL]:oi[ai.COERCE]);else{let l=e.includePrerelease?oi[ai.COERCERTLFULL]:oi[ai.COERCERTL],c;for(;(c=l.exec(n))&&(!t||t.index+t[0].length!==n.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),l.lastIndex=c.index+c[1].length+c[2].length;l.lastIndex=-1}if(t===null)return null;let r=t[2],i=t[3]||"0",s=t[4]||"0",o=e.includePrerelease&&t[5]?`-${t[5]}`:"",a=e.includePrerelease&&t[6]?`+${t[6]}`:"";return YT(`${r}.${i}.${s}${o}${a}`,e)};od.exports=JT});var cd=_((NO,ld)=>{"use strict";var So=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};ld.exports=So});var qe=_((OO,dd)=>{"use strict";var XT=/\s+/g,Ao=class n{constructor(e,t){if(t=QT(t),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof Io)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(XT," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(i=>!fd(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&sL(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e0&&(this.formatted+="||");let t=this.set[e];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=t[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let r=((this.options.includePrerelease&&rL)|(this.options.loose&&iL))+":"+e,i=ud.get(r);if(i)return i;let s=this.options.loose,o=s?Ae[Ee.HYPHENRANGELOOSE]:Ae[Ee.HYPHENRANGE];e=e.replace(o,_L(this.options.includePrerelease)),te("hyphen replace",e),e=e.replace(Ae[Ee.COMPARATORTRIM],eL),te("comparator trim",e),e=e.replace(Ae[Ee.TILDETRIM],tL),te("tilde trim",e),e=e.replace(Ae[Ee.CARETTRIM],nL),te("caret trim",e);let a=e.split(" ").map(f=>oL(f,this.options)).join(" ").split(/\s+/).map(f=>pL(f,this.options));s&&(a=a.filter(f=>(te("loose invalid filter",f,this.options),!!f.match(Ae[Ee.COMPARATORLOOSE])))),te("range list",a);let l=new Map,c=a.map(f=>new Io(f,this.options));for(let f of c){if(fd(f))return[f];l.set(f.value,f)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return ud.set(r,u),u}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Range is required");return this.set.some(r=>hd(r,t)&&e.set.some(i=>hd(i,t)&&r.every(s=>i.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new ZT(e,this.options)}catch{return!1}for(let t=0;tn.value==="<0.0.0-0",sL=n=>n.value==="",hd=(n,e)=>{let t=!0,r=n.slice(),i=r.pop();for(;t&&r.length;)t=r.every(s=>i.intersects(s,e)),i=r.pop();return t},oL=(n,e)=>(n=n.replace(Ae[Ee.BUILD],""),te("comp",n,e),n=cL(n,e),te("caret",n),n=aL(n,e),te("tildes",n),n=fL(n,e),te("xrange",n),n=dL(n,e),te("stars",n),n),Ie=n=>!n||n.toLowerCase()==="x"||n==="*",aL=(n,e)=>n.trim().split(/\s+/).map(t=>lL(t,e)).join(" "),lL=(n,e)=>{let t=e.loose?Ae[Ee.TILDELOOSE]:Ae[Ee.TILDE];return n.replace(t,(r,i,s,o,a)=>{te("tilde",n,r,i,s,o,a);let l;return Ie(i)?l="":Ie(s)?l=`>=${i}.0.0 <${+i+1}.0.0-0`:Ie(o)?l=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:a?(te("replaceTilde pr",a),l=`>=${i}.${s}.${o}-${a} <${i}.${+s+1}.0-0`):l=`>=${i}.${s}.${o} <${i}.${+s+1}.0-0`,te("tilde return",l),l})},cL=(n,e)=>n.trim().split(/\s+/).map(t=>uL(t,e)).join(" "),uL=(n,e)=>{te("caret",n,e);let t=e.loose?Ae[Ee.CARETLOOSE]:Ae[Ee.CARET],r=e.includePrerelease?"-0":"";return n.replace(t,(i,s,o,a,l)=>{te("caret",n,i,s,o,a,l);let c;return Ie(s)?c="":Ie(o)?c=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Ie(a)?s==="0"?c=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:l?(te("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(te("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),te("caret return",c),c})},fL=(n,e)=>(te("replaceXRanges",n,e),n.split(/\s+/).map(t=>hL(t,e)).join(" ")),hL=(n,e)=>{n=n.trim();let t=e.loose?Ae[Ee.XRANGELOOSE]:Ae[Ee.XRANGE];return n.replace(t,(r,i,s,o,a,l)=>{te("xRange",n,r,i,s,o,a,l);let c=Ie(s),u=c||Ie(o),f=u||Ie(a),d=f;return i==="="&&d&&(i=""),l=e.includePrerelease?"-0":"",c?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&d?(u&&(o=0),a=0,i===">"?(i=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",u?s=+s+1:o=+o+1),i==="<"&&(l="-0"),r=`${i+s}.${o}.${a}${l}`):u?r=`>=${s}.0.0${l} <${+s+1}.0.0-0`:f&&(r=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),te("xRange return",r),r})},dL=(n,e)=>(te("replaceStars",n,e),n.trim().replace(Ae[Ee.STAR],"")),pL=(n,e)=>(te("replaceGTE0",n,e),n.trim().replace(Ae[e.includePrerelease?Ee.GTE0PRE:Ee.GTE0],"")),_L=n=>(e,t,r,i,s,o,a,l,c,u,f,d)=>(Ie(r)?t="":Ie(i)?t=`>=${r}.0.0${n?"-0":""}`:Ie(s)?t=`>=${r}.${i}.0${n?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${n?"-0":""}`,Ie(c)?l="":Ie(u)?l=`<${+c+1}.0.0-0`:Ie(f)?l=`<${c}.${+u+1}.0-0`:d?l=`<=${c}.${u}.${f}-${d}`:n?l=`<${c}.${u}.${+f+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),mL=(n,e,t)=>{for(let r=0;r0){let i=n[r].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var En=_((RO,Ed)=>{"use strict";var Tn=Symbol("SemVer ANY"),bo=class n{static get ANY(){return Tn}constructor(e,t){if(t=pd(t),e instanceof n){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),vo("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Tn?this.value="":this.value=this.operator+this.semver.version,vo("comp",this)}parse(e){let t=this.options.loose?_d[md.COMPARATORLOOSE]:_d[md.COMPARATOR],r=e.match(t);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new gd(r[2],this.options.loose):this.semver=Tn}toString(){return this.value}test(e){if(vo("Comparator.test",e,this.options.loose),this.semver===Tn||e===Tn)return!0;if(typeof e=="string")try{e=new gd(e,this.options)}catch{return!1}return wo(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new yd(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new yd(this.value,t).test(e.semver):(t=pd(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||wo(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||wo(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Ed.exports=bo;var pd=zr(),{safeRe:_d,t:md}=Ft(),wo=Lo(),vo=gn(),gd=ye(),yd=qe()});var Ln=_((CO,Td)=>{"use strict";var gL=qe(),yL=(n,e,t)=>{try{e=new gL(e,t)}catch{return!1}return e.test(n)};Td.exports=yL});var Sd=_((kO,Ld)=>{"use strict";var EL=qe(),TL=(n,e)=>new EL(n,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));Ld.exports=TL});var Id=_((PO,Ad)=>{"use strict";var LL=ye(),SL=qe(),AL=(n,e,t)=>{let r=null,i=null,s=null;try{s=new SL(e,t)}catch{return null}return n.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new LL(r,t))}),r};Ad.exports=AL});var vd=_(($O,wd)=>{"use strict";var IL=ye(),wL=qe(),vL=(n,e,t)=>{let r=null,i=null,s=null;try{s=new wL(e,t)}catch{return null}return n.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new IL(r,t))}),r};wd.exports=vL});var Od=_((qO,Nd)=>{"use strict";var No=ye(),bL=qe(),bd=yn(),NL=(n,e)=>{n=new bL(n,e);let t=new No("0.0.0");if(n.test(t)||(t=new No("0.0.0-0"),n.test(t)))return t;t=null;for(let r=0;r{let a=new No(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||bd(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||bd(t,s))&&(t=s)}return t&&n.test(t)?t:null};Nd.exports=NL});var Cd=_((xO,Rd)=>{"use strict";var OL=qe(),RL=(n,e)=>{try{return new OL(n,e).range||"*"}catch{return null}};Rd.exports=RL});var li=_((MO,qd)=>{"use strict";var CL=ye(),$d=En(),{ANY:kL}=$d,PL=qe(),$L=Ln(),kd=yn(),Pd=ri(),qL=si(),xL=ii(),ML=(n,e,t,r)=>{n=new CL(n,r),e=new PL(e,r);let i,s,o,a,l;switch(t){case">":i=kd,s=qL,o=Pd,a=">",l=">=";break;case"<":i=Pd,s=xL,o=kd,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if($L(n,e,r))return!1;for(let c=0;c{h.semver===kL&&(h=new $d(">=0.0.0")),f=f||h,d=d||h,i(h.semver,f.semver,r)?f=h:o(h.semver,d.semver,r)&&(d=h)}),f.operator===a||f.operator===l||(!d.operator||d.operator===a)&&s(n,d.semver))return!1;if(d.operator===l&&o(n,d.semver))return!1}return!0};qd.exports=ML});var Md=_((FO,xd)=>{"use strict";var FL=li(),DL=(n,e,t)=>FL(n,e,">",t);xd.exports=DL});var Dd=_((DO,Fd)=>{"use strict";var jL=li(),HL=(n,e,t)=>jL(n,e,"<",t);Fd.exports=HL});var Bd=_((jO,Hd)=>{"use strict";var jd=qe(),BL=(n,e,t)=>(n=new jd(n,t),e=new jd(e,t),n.intersects(e,t));Hd.exports=BL});var Vd=_((HO,Ud)=>{"use strict";var UL=Ln(),VL=$e();Ud.exports=(n,e,t)=>{let r=[],i=null,s=null,o=n.sort((u,f)=>VL(u,f,t));for(let u of o)UL(u,e,t)?(s=u,i||(i=u)):(s&&r.push([i,s]),s=null,i=null);i&&r.push([i,null]);let a=[];for(let[u,f]of r)u===f?a.push(u):!f&&u===o[0]?a.push("*"):f?u===o[0]?a.push(`<=${f}`):a.push(`${u} - ${f}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{"use strict";var Wd=qe(),Ro=En(),{ANY:Oo}=Ro,Sn=Ln(),Co=$e(),WL=(n,e,t={})=>{if(n===e)return!0;n=new Wd(n,t),e=new Wd(e,t);let r=!1;e:for(let i of n.set){for(let s of e.set){let o=KL(i,s,t);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},GL=[new Ro(">=0.0.0-0")],Gd=[new Ro(">=0.0.0")],KL=(n,e,t)=>{if(n===e)return!0;if(n.length===1&&n[0].semver===Oo){if(e.length===1&&e[0].semver===Oo)return!0;t.includePrerelease?n=GL:n=Gd}if(e.length===1&&e[0].semver===Oo){if(t.includePrerelease)return!0;e=Gd}let r=new Set,i,s;for(let h of n)h.operator===">"||h.operator===">="?i=Kd(i,h,t):h.operator==="<"||h.operator==="<="?s=Yd(s,h,t):r.add(h.semver);if(r.size>1)return null;let o;if(i&&s){if(o=Co(i.semver,s.semver,t),o>0)return null;if(o===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let h of r){if(i&&!Sn(h,String(i),t)||s&&!Sn(h,String(s),t))return null;for(let y of e)if(!Sn(h,String(y),t))return!1;return!0}let a,l,c,u,f=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,d=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;f&&f.prerelease.length===1&&s.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",i){if(d&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===d.major&&h.semver.minor===d.minor&&h.semver.patch===d.patch&&(d=!1),h.operator===">"||h.operator===">="){if(a=Kd(i,h,t),a===h&&a!==i)return!1}else if(i.operator===">="&&!Sn(i.semver,String(h),t))return!1}if(s){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator==="<"||h.operator==="<="){if(l=Yd(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Sn(s.semver,String(h),t))return!1}if(!h.operator&&(s||i)&&o!==0)return!1}return!(i&&c&&!s&&o!==0||s&&u&&!i&&o!==0||d||f)},Kd=(n,e,t)=>{if(!n)return e;let r=Co(n.semver,e.semver,t);return r>0?n:r<0||e.operator===">"&&n.operator===">="?e:n},Yd=(n,e,t)=>{if(!n)return e;let r=Co(n.semver,e.semver,t);return r<0?n:r>0||e.operator==="<"&&n.operator==="<="?e:n};Jd.exports=WL});var ep=_((UO,Zd)=>{"use strict";var ko=Ft(),zd=mn(),YL=ye(),Qd=mo(),JL=Tt(),XL=Ih(),zL=vh(),QL=Oh(),ZL=kh(),eS=$h(),tS=xh(),nS=Fh(),rS=jh(),iS=$e(),sS=Vh(),oS=Gh(),aS=ni(),lS=Xh(),cS=Qh(),uS=yn(),fS=ri(),hS=Eo(),dS=To(),pS=ii(),_S=si(),mS=Lo(),gS=ad(),yS=En(),ES=qe(),TS=Ln(),LS=Sd(),SS=Id(),AS=vd(),IS=Od(),wS=Cd(),vS=li(),bS=Md(),NS=Dd(),OS=Bd(),RS=Vd(),CS=Xd();Zd.exports={parse:JL,valid:XL,clean:zL,inc:QL,diff:ZL,major:eS,minor:tS,patch:nS,prerelease:rS,compare:iS,rcompare:sS,compareLoose:oS,compareBuild:aS,sort:lS,rsort:cS,gt:uS,lt:fS,eq:hS,neq:dS,gte:pS,lte:_S,cmp:mS,coerce:gS,Comparator:yS,Range:ES,satisfies:TS,toComparators:LS,maxSatisfying:SS,minSatisfying:AS,minVersion:IS,validRange:wS,outside:vS,gtr:bS,ltr:NS,intersects:OS,simplifyRange:RS,subset:CS,SemVer:YL,re:ko.re,src:ko.src,tokens:ko.t,SEMVER_SPEC_VERSION:zd.SEMVER_SPEC_VERSION,RELEASE_TYPES:zd.RELEASE_TYPES,compareIdentifiers:Qd.compareIdentifiers,rcompareIdentifiers:Qd.rcompareIdentifiers}});var W=_(ge=>{"use strict";var xo=Symbol.for("yaml.alias"),ip=Symbol.for("yaml.document"),ci=Symbol.for("yaml.map"),sp=Symbol.for("yaml.pair"),Mo=Symbol.for("yaml.scalar"),ui=Symbol.for("yaml.seq"),Qe=Symbol.for("yaml.node.type"),kS=n=>!!n&&typeof n=="object"&&n[Qe]===xo,PS=n=>!!n&&typeof n=="object"&&n[Qe]===ip,$S=n=>!!n&&typeof n=="object"&&n[Qe]===ci,qS=n=>!!n&&typeof n=="object"&&n[Qe]===sp,op=n=>!!n&&typeof n=="object"&&n[Qe]===Mo,xS=n=>!!n&&typeof n=="object"&&n[Qe]===ui;function ap(n){if(n&&typeof n=="object")switch(n[Qe]){case ci:case ui:return!0}return!1}function MS(n){if(n&&typeof n=="object")switch(n[Qe]){case xo:case ci:case Mo:case ui:return!0}return!1}var FS=n=>(op(n)||ap(n))&&!!n.anchor;ge.ALIAS=xo;ge.DOC=ip;ge.MAP=ci;ge.NODE_TYPE=Qe;ge.PAIR=sp;ge.SCALAR=Mo;ge.SEQ=ui;ge.hasAnchor=FS;ge.isAlias=kS;ge.isCollection=ap;ge.isDocument=PS;ge.isMap=$S;ge.isNode=MS;ge.isPair=qS;ge.isScalar=op;ge.isSeq=xS});var An=_(Fo=>{"use strict";var ue=W(),Oe=Symbol("break visit"),lp=Symbol("skip children"),We=Symbol("remove node");function fi(n,e){let t=cp(e);ue.isDocument(n)?Dt(null,n.contents,t,Object.freeze([n]))===We&&(n.contents=null):Dt(null,n,t,Object.freeze([]))}fi.BREAK=Oe;fi.SKIP=lp;fi.REMOVE=We;function Dt(n,e,t,r){let i=up(n,e,t,r);if(ue.isNode(i)||ue.isPair(i))return fp(n,r,i),Dt(n,i,t,r);if(typeof i!="symbol"){if(ue.isCollection(e)){r=Object.freeze(r.concat(e));for(let s=0;s{"use strict";var hp=W(),DS=An(),jS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},HS=n=>n.replace(/[!,[\]{}]/g,e=>jS[e]),In=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let r=e.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;let[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{let o=/^\d+\.\d+$/.test(s);return t(6,`Unsupported YAML version ${s}`,o),!1}}default:return t(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,r,i]=e.match(/^(.*!)([^!]*)$/);i||t(`The ${e} tag has no suffix`);let s=this.tags[r];return s?s+decodeURIComponent(i):r==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,r]of Object.entries(this.tags))if(e.startsWith(r))return t+HS(e.substring(r.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags),i;if(e&&r.length>0&&hp.isNode(e.contents)){let s={};DS.visit(e.contents,(o,a)=>{hp.isNode(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(let[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(a=>a.startsWith(o)))&&t.push(`%TAG ${s} ${o}`);return t.join(` +`)}};In.defaultYaml={explicit:!1,version:"1.2"};In.defaultTags={"!!":"tag:yaml.org,2002:"};dp.Directives=In});var di=_(wn=>{"use strict";var pp=W(),BS=An();function US(n){if(/[\x00-\x19\s,[\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function _p(n){let e=new Set;return BS.visit(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function mp(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function VS(n,e){let t=[],r=new Map,i=null;return{onAnchor:s=>{t.push(s),i||(i=_p(n));let o=mp(e,i);return i.add(o),o},setAnchors:()=>{for(let s of t){let o=r.get(s);if(typeof o=="object"&&o.anchor&&(pp.isScalar(o.node)||pp.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}wn.anchorIsValid=US;wn.anchorNames=_p;wn.createNodeAnchors=VS;wn.findNewAnchor=mp});var jo=_(gp=>{"use strict";function vn(n,e,t,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;i{"use strict";var WS=W();function yp(n,e,t){if(Array.isArray(n))return n.map((r,i)=>yp(r,String(i),t));if(n&&typeof n.toJSON=="function"){if(!t||!WS.hasAnchor(n))return n.toJSON(e,t);let r={aliasCount:0,count:1,res:void 0};t.anchors.set(n,r),t.onCreate=s=>{r.res=s,delete t.onCreate};let i=n.toJSON(e,t);return t.onCreate&&t.onCreate(i),i}return typeof n=="bigint"&&!t?.keep?Number(n):n}Ep.toJS=yp});var pi=_(Lp=>{"use strict";var GS=jo(),Tp=W(),KS=at(),Ho=class{constructor(e){Object.defineProperty(this,Tp.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!Tp.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=KS.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?GS.applyReviver(s,{"":a},"",a):a}};Lp.NodeBase=Ho});var bn=_(Ap=>{"use strict";var YS=di(),Sp=An(),_i=W(),JS=pi(),XS=at(),Bo=class extends JS.NodeBase{constructor(e){super(_i.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t;return Sp.visit(e,{Node:(r,i)=>{if(i===this)return Sp.visit.BREAK;i.anchor===this.source&&(t=i)}}),t}toJSON(e,t){if(!t)return{source:this.source};let{anchors:r,doc:i,maxAliasCount:s}=t,o=this.resolve(i);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(XS.toJS(o,null,t),a=r.get(o)),!a||a.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=mi(i,o,r)),a.count*a.aliasCount>s)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,t,r){let i=`*${this.source}`;if(e){if(YS.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(e.implicitKey)return`${i} `}return i}};function mi(n,e,t){if(_i.isAlias(e)){let r=e.resolve(n),i=t&&r&&t.get(r);return i?i.count*i.aliasCount:0}else if(_i.isCollection(e)){let r=0;for(let i of e.items){let s=mi(n,i,t);s>r&&(r=s)}return r}else if(_i.isPair(e)){let r=mi(n,e.key,t),i=mi(n,e.value,t);return Math.max(r,i)}return 1}Ap.Alias=Bo});var ce=_(Uo=>{"use strict";var zS=W(),QS=pi(),ZS=at(),eA=n=>!n||typeof n!="function"&&typeof n!="object",lt=class extends QS.NodeBase{constructor(e){super(zS.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:ZS.toJS(this.value,e,t)}toString(){return String(this.value)}};lt.BLOCK_FOLDED="BLOCK_FOLDED";lt.BLOCK_LITERAL="BLOCK_LITERAL";lt.PLAIN="PLAIN";lt.QUOTE_DOUBLE="QUOTE_DOUBLE";lt.QUOTE_SINGLE="QUOTE_SINGLE";Uo.Scalar=lt;Uo.isScalarValue=eA});var Nn=_(wp=>{"use strict";var tA=bn(),Lt=W(),Ip=ce(),nA="tag:yaml.org,2002:";function rA(n,e,t){if(e){let r=t.filter(s=>s.tag===e),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(r=>r.identify?.(n)&&!r.format)}function iA(n,e,t){if(Lt.isDocument(n)&&(n=n.contents),Lt.isNode(n))return n;if(Lt.isPair(n)){let f=t.schema[Lt.MAP].createNode?.(t.schema,null,t);return f.items.push(n),f}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt<"u"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=t,l;if(r&&n&&typeof n=="object"){if(l=a.get(n),l)return l.anchor||(l.anchor=i(n)),new tA.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=nA+e.slice(2));let c=rA(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let f=new Ip.Scalar(n);return l&&(l.node=f),f}c=n instanceof Map?o[Lt.MAP]:Symbol.iterator in Object(n)?o[Lt.SEQ]:o[Lt.MAP]}s&&(s(c),delete t.onTagObj);let u=c?.createNode?c.createNode(t.schema,n,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,n,t):new Ip.Scalar(n);return e?u.tag=e:c.default||(u.tag=c.tag),l&&(l.node=u),u}wp.createNode=iA});var On=_(yi=>{"use strict";var sA=Nn(),Ge=W(),oA=pi();function Vo(n,e,t){let r=t;for(let i=e.length-1;i>=0;--i){let s=e[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){let o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return sA.createNode(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var vp=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,gi=class extends oA.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(r=>Ge.isNode(r)||Ge.isPair(r)?r.clone(e):r),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(vp(e))this.add(t);else{let[r,...i]=e,s=this.get(r,!0);if(Ge.isCollection(s))s.addIn(i,t);else if(s===void 0&&this.schema)this.set(r,Vo(this.schema,i,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let i=this.get(t,!0);if(Ge.isCollection(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...i]=e,s=this.get(r,!0);return i.length===0?!t&&Ge.isScalar(s)?s.value:s:Ge.isCollection(s)?s.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!Ge.isPair(t))return!1;let r=t.value;return r==null||e&&Ge.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let i=this.get(t,!0);return Ge.isCollection(i)?i.hasIn(r):!1}setIn(e,t){let[r,...i]=e;if(i.length===0)this.set(r,t);else{let s=this.get(r,!0);if(Ge.isCollection(s))s.setIn(i,t);else if(s===void 0&&this.schema)this.set(r,Vo(this.schema,i,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}};gi.maxFlowStringSingleLineLength=60;yi.Collection=gi;yi.collectionFromPath=Vo;yi.isEmptyPath=vp});var Rn=_(Ei=>{"use strict";var aA=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Wo(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var lA=(n,e,t)=>n.endsWith(` +`)?Wo(t,e):t.includes(` `)?` -`+Mo(t,e):(n.endsWith(" ")?"":" ")+t;hi.indentComment=Mo;hi.lineComment=zS;hi.stringifyComment=XS});var L_=p(wn=>{"use strict";var QS="flow",Do="block",di="quoted";function ZS(n,e,t="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return n;let l=Math.max(1+s,1+i-e.length);if(n.length<=l)return n;let c=[],u={},f=i-e.length;typeof r=="number"&&(r>i-Math.max(2,s)?c.push(0):f=i-r);let _,h,T=!1,g=-1,m=-1,A=-1;t===Do&&(g=T_(n,g),g!==-1&&(f=g+l));for(let b;b=n[g+=1];){if(t===di&&b==="\\"){switch(m=g,n[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}A=g}if(b===` -`)t===Do&&(g=T_(n,g)),f=g+l,_=void 0;else{if(b===" "&&h&&h!==" "&&h!==` +`+Wo(t,e):(n.endsWith(" ")?"":" ")+t;Ei.indentComment=Wo;Ei.lineComment=lA;Ei.stringifyComment=aA});var Np=_(Cn=>{"use strict";var cA="flow",Go="block",Ti="quoted";function uA(n,e,t="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return n;let l=Math.max(1+s,1+i-e.length);if(n.length<=l)return n;let c=[],u={},f=i-e.length;typeof r=="number"&&(r>i-Math.max(2,s)?c.push(0):f=i-r);let d,h,y=!1,g=-1,m=-1,A=-1;t===Go&&(g=bp(n,g),g!==-1&&(f=g+l));for(let b;b=n[g+=1];){if(t===Ti&&b==="\\"){switch(m=g,n[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}A=g}if(b===` +`)t===Go&&(g=bp(n,g)),f=g+l,d=void 0;else{if(b===" "&&h&&h!==" "&&h!==` `&&h!==" "){let $=n[g+1];$&&$!==" "&&$!==` -`&&$!==" "&&(_=g)}if(g>=f)if(_)c.push(_),f=_+l,_=void 0;else if(t===di){for(;h===" "||h===" ";)h=b,b=n[g+=1],T=!0;let $=g>A+1?g-2:m-1;if(u[$])return n;c.push($),u[$]=!0,f=$+l,_=void 0}else T=!0}h=b}if(T&&a&&a(),c.length===0)return n;o&&o();let w=n.slice(0,c[0]);for(let b=0;b{"use strict";var Ge=ce(),st=L_(),pi=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),mi=n=>/^(%|---|\.\.\.)/m.test(n);function eA(n,e,t){if(!e||e<0)return!1;let r=e-t,i=n.length;if(i<=r)return!1;for(let s=0,o=0;sr)return!0;if(o=s+1,i-o<=r)return!1}return!0}function vn(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:r}=e,i=e.options.doubleQuotedMinMultiLineLength,s=e.indent||(mi(n)?" ":""),o="",a=0;for(let l=0,c=t[l];c;c=t[++l])if(c===" "&&t[l+1]==="\\"&&t[l+2]==="n"&&(o+=t.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(t[l+1]){case"u":{o+=t.slice(a,l);let u=t.substr(l+2,4);switch(u){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:u.substr(0,2)==="00"?o+="\\x"+u.substr(2):o+=t.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||t[l+2]==='"'||t.length=f)if(d)c.push(d),f=d+l,d=void 0;else if(t===Ti){for(;h===" "||h===" ";)h=b,b=n[g+=1],y=!0;let $=g>A+1?g-2:m-1;if(u[$])return n;c.push($),u[$]=!0,f=$+l,d=void 0}else y=!0}h=b}if(y&&a&&a(),c.length===0)return n;o&&o();let w=n.slice(0,c[0]);for(let b=0;b{"use strict";var Ke=ce(),ct=Np(),Si=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),Ai=n=>/^(%|---|\.\.\.)/m.test(n);function fA(n,e,t){if(!e||e<0)return!1;let r=e-t,i=n.length;if(i<=r)return!1;for(let s=0,o=0;sr)return!0;if(o=s+1,i-o<=r)return!1}return!0}function kn(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:r}=e,i=e.options.doubleQuotedMinMultiLineLength,s=e.indent||(Ai(n)?" ":""),o="",a=0;for(let l=0,c=t[l];c;c=t[++l])if(c===" "&&t[l+1]==="\\"&&t[l+2]==="n"&&(o+=t.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(t[l+1]){case"u":{o+=t.slice(a,l);let u=t.substr(l+2,4);switch(u){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:u.substr(0,2)==="00"?o+="\\x"+u.substr(2):o+=t.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||t[l+2]==='"'||t.length -`;let f,_;for(_=t.length;_>0;--_){let v=t[_-1];if(v!==` -`&&v!==" "&&v!==" ")break}let h=t.substring(_),T=h.indexOf(` -`);T===-1?f="-":t===h||T!==h.length-1?(f="+",s&&s()):f="",h&&(t=t.slice(0,-h.length),h[h.length-1]===` -`&&(h=h.slice(0,-1)),h=h.replace(jo,`$&${c}`));let g=!1,m,A=-1;for(m=0;m0;--d){let v=t[d-1];if(v!==` +`&&v!==" "&&v!==" ")break}let h=t.substring(d),y=h.indexOf(` +`);y===-1?f="-":t===h||y!==h.length-1?(f="+",s&&s()):f="",h&&(t=t.slice(0,-h.length),h[h.length-1]===` +`&&(h=h.slice(0,-1)),h=h.replace(Yo,`$&${c}`));let g=!1,m,A=-1;for(m=0;m")+(g?c?"2":"1":"")+f;if(n&&($+=" "+a(n.replace(/ ?[\r\n]+/g," ")),i&&i()),u)return t=t.replace(/\n+/g,`$&${c}`),`${$} ${c}${w}${t}${h}`;t=t.replace(/\n+/g,` -$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`);let M=st.foldFlowLines(`${w}${t}${h}`,c,st.FOLD_BLOCK,pi(r,!0));return`${$} -${c}${M}`}function tA(n,e,t,r){let{type:i,value:s}=n,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:u}=e;if(a&&/[\n[\]{},]/.test(s)||u&&/[[\]{},]/.test(s))return Mt(s,e);if(!s||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||u||!s.includes(` -`)?Mt(s,e):_i(n,e,t,r);if(!a&&!u&&i!==Ge.Scalar.PLAIN&&s.includes(` -`))return _i(n,e,t,r);if(mi(s)){if(l==="")return e.forceBlockIndent=!0,_i(n,e,t,r);if(a&&l===c)return Mt(s,e)}let f=s.replace(/\n+/g,`$& -${l}`);if(o){let _=g=>g.default&&g.tag!=="tag:yaml.org,2002:str"&&g.test?.test(f),{compat:h,tags:T}=e.doc.schema;if(T.some(_)||h?.some(_))return Mt(s,e)}return a?f:st.foldFlowLines(f,l,st.FOLD_FLOW,pi(e,!1))}function nA(n,e,t,r){let{implicitKey:i,inFlow:s}=e,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==Ge.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ge.Scalar.QUOTE_DOUBLE);let l=u=>{switch(u){case Ge.Scalar.BLOCK_FOLDED:case Ge.Scalar.BLOCK_LITERAL:return i||s?Mt(o.value,e):_i(o,e,t,r);case Ge.Scalar.QUOTE_DOUBLE:return vn(o.value,e);case Ge.Scalar.QUOTE_SINGLE:return Fo(o.value,e);case Ge.Scalar.PLAIN:return tA(o,e,t,r);default:return null}},c=l(a);if(c===null){let{defaultKeyType:u,defaultStringType:f}=e.options,_=i&&u||f;if(c=l(_),c===null)throw new Error(`Unsupported default string type ${_}`)}return c}S_.stringifyString=nA});var Nn=p(Ho=>{"use strict";var rA=oi(),ot=W(),iA=In(),sA=bn();function oA(n,e){let t=Object.assign({blockQuote:!0,commentString:iA.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},n.schema.toStringOptions,e),r;switch(t.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:r,options:t}}function aA(n,e){if(e.tag){let i=n.filter(s=>s.tag===e.tag);if(i.length>0)return i.find(s=>s.format===e.format)??i[0]}let t,r;if(ot.isScalar(e)){r=e.value;let i=n.filter(s=>s.identify?.(r));t=i.find(s=>s.format===e.format)??i.find(s=>!s.format)}else r=e,t=n.find(i=>i.nodeClass&&r instanceof i.nodeClass);if(!t){let i=r?.constructor?.name??typeof r;throw new Error(`Tag not resolved for ${i} value`)}return t}function lA(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let i=[],s=(ot.isScalar(n)||ot.isCollection(n))&&n.anchor;s&&rA.anchorIsValid(s)&&(t.add(s),i.push(`&${s}`));let o=n.tag?n.tag:e.default?null:e.tag;return o&&i.push(r.directives.tagString(o)),i.join(" ")}function cA(n,e,t,r){if(ot.isPair(n))return n.toString(e,t,r);if(ot.isAlias(n)){if(e.doc.directives)return n.toString(e);if(e.resolvedAliases?.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let i,s=ot.isNode(n)?n:e.doc.createNode(n,{onTagObj:l=>i=l});i||(i=aA(e.doc.schema.tags,s));let o=lA(s,i,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(s,e,t,r):ot.isScalar(s)?sA.stringifyString(s,e,t,r):s.toString(e,t,r);return o?ot.isScalar(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} -${e.indent}${a}`:a}Ho.createStringifyContext=oA;Ho.stringify=cA});var v_=p(w_=>{"use strict";var at=W(),A_=ce(),I_=Nn(),On=In();function uA({key:n,value:e},t,r,i){let{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:u,simpleKeys:f}}=t,_=at.isNode(n)&&n.comment||null;if(f){if(_)throw new Error("With simple keys, key nodes cannot have comments");if(at.isCollection(n)){let V="With simple keys, collection cannot be used as a key value";throw new Error(V)}}let h=!f&&(!n||_&&e==null&&!t.inFlow||at.isCollection(n)||(at.isScalar(n)?n.type===A_.Scalar.BLOCK_FOLDED||n.type===A_.Scalar.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!h&&(f||!s),indent:a+l});let T=!1,g=!1,m=I_.stringify(n,t,()=>T=!0,()=>g=!0);if(!h&&!t.inFlow&&m.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(t.inFlow){if(s||e==null)return T&&r&&r(),m===""?"?":h?`? ${m}`:m}else if(s&&!f||e==null&&h)return m=`? ${m}`,_&&!T?m+=On.lineComment(m,t.indent,c(_)):g&&i&&i(),m;T&&(_=null),h?(_&&(m+=On.lineComment(m,t.indent,c(_))),m=`? ${m} -${a}:`):(m=`${m}:`,_&&(m+=On.lineComment(m,t.indent,c(_))));let A,w,b;at.isNode(e)?(A=!!e.spaceBefore,w=e.commentBefore,b=e.comment):(A=!1,w=null,b=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!h&&!_&&at.isScalar(e)&&(t.indentAtStart=m.length+1),g=!1,!u&&l.length>=2&&!t.inFlow&&!h&&at.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let $=!1,M=I_.stringify(e,t,()=>$=!0,()=>g=!0),v=" ";if(_||A||w){if(v=A?` +$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`);let M=ct.foldFlowLines(`${w}${t}${h}`,c,ct.FOLD_BLOCK,Si(r,!0));return`${$} +${c}${M}`}function hA(n,e,t,r){let{type:i,value:s}=n,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:u}=e;if(a&&/[\n[\]{},]/.test(s)||u&&/[[\]{},]/.test(s))return Ht(s,e);if(!s||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||u||!s.includes(` +`)?Ht(s,e):Li(n,e,t,r);if(!a&&!u&&i!==Ke.Scalar.PLAIN&&s.includes(` +`))return Li(n,e,t,r);if(Ai(s)){if(l==="")return e.forceBlockIndent=!0,Li(n,e,t,r);if(a&&l===c)return Ht(s,e)}let f=s.replace(/\n+/g,`$& +${l}`);if(o){let d=g=>g.default&&g.tag!=="tag:yaml.org,2002:str"&&g.test?.test(f),{compat:h,tags:y}=e.doc.schema;if(y.some(d)||h?.some(d))return Ht(s,e)}return a?f:ct.foldFlowLines(f,l,ct.FOLD_FLOW,Si(e,!1))}function dA(n,e,t,r){let{implicitKey:i,inFlow:s}=e,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==Ke.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ke.Scalar.QUOTE_DOUBLE);let l=u=>{switch(u){case Ke.Scalar.BLOCK_FOLDED:case Ke.Scalar.BLOCK_LITERAL:return i||s?Ht(o.value,e):Li(o,e,t,r);case Ke.Scalar.QUOTE_DOUBLE:return kn(o.value,e);case Ke.Scalar.QUOTE_SINGLE:return Ko(o.value,e);case Ke.Scalar.PLAIN:return hA(o,e,t,r);default:return null}},c=l(a);if(c===null){let{defaultKeyType:u,defaultStringType:f}=e.options,d=i&&u||f;if(c=l(d),c===null)throw new Error(`Unsupported default string type ${d}`)}return c}Op.stringifyString=dA});var $n=_(Jo=>{"use strict";var pA=di(),ut=W(),_A=Rn(),mA=Pn();function gA(n,e){let t=Object.assign({blockQuote:!0,commentString:_A.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},n.schema.toStringOptions,e),r;switch(t.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:r,options:t}}function yA(n,e){if(e.tag){let i=n.filter(s=>s.tag===e.tag);if(i.length>0)return i.find(s=>s.format===e.format)??i[0]}let t,r;if(ut.isScalar(e)){r=e.value;let i=n.filter(s=>s.identify?.(r));t=i.find(s=>s.format===e.format)??i.find(s=>!s.format)}else r=e,t=n.find(i=>i.nodeClass&&r instanceof i.nodeClass);if(!t){let i=r?.constructor?.name??typeof r;throw new Error(`Tag not resolved for ${i} value`)}return t}function EA(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let i=[],s=(ut.isScalar(n)||ut.isCollection(n))&&n.anchor;s&&pA.anchorIsValid(s)&&(t.add(s),i.push(`&${s}`));let o=n.tag?n.tag:e.default?null:e.tag;return o&&i.push(r.directives.tagString(o)),i.join(" ")}function TA(n,e,t,r){if(ut.isPair(n))return n.toString(e,t,r);if(ut.isAlias(n)){if(e.doc.directives)return n.toString(e);if(e.resolvedAliases?.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let i,s=ut.isNode(n)?n:e.doc.createNode(n,{onTagObj:l=>i=l});i||(i=yA(e.doc.schema.tags,s));let o=EA(s,i,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(s,e,t,r):ut.isScalar(s)?mA.stringifyString(s,e,t,r):s.toString(e,t,r);return o?ut.isScalar(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} +${e.indent}${a}`:a}Jo.createStringifyContext=gA;Jo.stringify=TA});var Pp=_(kp=>{"use strict";var ft=W(),Rp=ce(),Cp=$n(),qn=Rn();function LA({key:n,value:e},t,r,i){let{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:u,simpleKeys:f}}=t,d=ft.isNode(n)&&n.comment||null;if(f){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(ft.isCollection(n)){let V="With simple keys, collection cannot be used as a key value";throw new Error(V)}}let h=!f&&(!n||d&&e==null&&!t.inFlow||ft.isCollection(n)||(ft.isScalar(n)?n.type===Rp.Scalar.BLOCK_FOLDED||n.type===Rp.Scalar.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!h&&(f||!s),indent:a+l});let y=!1,g=!1,m=Cp.stringify(n,t,()=>y=!0,()=>g=!0);if(!h&&!t.inFlow&&m.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(t.inFlow){if(s||e==null)return y&&r&&r(),m===""?"?":h?`? ${m}`:m}else if(s&&!f||e==null&&h)return m=`? ${m}`,d&&!y?m+=qn.lineComment(m,t.indent,c(d)):g&&i&&i(),m;y&&(d=null),h?(d&&(m+=qn.lineComment(m,t.indent,c(d))),m=`? ${m} +${a}:`):(m=`${m}:`,d&&(m+=qn.lineComment(m,t.indent,c(d))));let A,w,b;ft.isNode(e)?(A=!!e.spaceBefore,w=e.commentBefore,b=e.comment):(A=!1,w=null,b=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!h&&!d&&ft.isScalar(e)&&(t.indentAtStart=m.length+1),g=!1,!u&&l.length>=2&&!t.inFlow&&!h&&ft.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let $=!1,M=Cp.stringify(e,t,()=>$=!0,()=>g=!0),v=" ";if(d||A||w){if(v=A?` `:"",w){let V=c(w);v+=` -${On.indentComment(V,t.indent)}`}M===""&&!t.inFlow?v===` +${qn.indentComment(V,t.indent)}`}M===""&&!t.inFlow?v===` `&&(v=` `):v+=` -${t.indent}`}else if(!h&&at.isCollection(e)){let V=M[0],G=M.indexOf(` -`),P=G!==-1,j=t.inFlow??e.flow??e.items.length===0;if(P||!j){let D=!1;if(P&&(V==="&"||V==="!")){let F=M.indexOf(" ");V==="&"&&F!==-1&&F{"use strict";function fA(n,...e){n==="debug"&&console.log(...e)}function hA(n,e){(n==="debug"||n==="warn")&&(typeof process<"u"&&process.emitWarning?process.emitWarning(e):console.warn(e))}Bo.debug=fA;Bo.warn=hA});var Go=p(N_=>{"use strict";var dA=Uo(),_A=Nn(),Dt=W(),pA=ce(),Vo=rt(),b_="<<";function mA(n,e,{key:t,value:r}){if(n?.doc.schema.merge&&gA(t))if(r=Dt.isAlias(r)?r.resolve(n.doc):r,Dt.isSeq(r))for(let i of r.items)Wo(n,e,i);else if(Array.isArray(r))for(let i of r)Wo(n,e,i);else Wo(n,e,r);else{let i=Vo.toJS(t,"",n);if(e instanceof Map)e.set(i,Vo.toJS(r,i,n));else if(e instanceof Set)e.add(i);else{let s=yA(t,i,n),o=Vo.toJS(r,s,n);s in e?Object.defineProperty(e,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[s]=o}}return e}var gA=n=>n===b_||Dt.isScalar(n)&&n.value===b_&&(!n.type||n.type===pA.Scalar.PLAIN);function Wo(n,e,t){let r=n&&Dt.isAlias(t)?t.resolve(n.doc):t;if(!Dt.isMap(r))throw new Error("Merge sources must be maps or map aliases");let i=r.toJSON(null,n,Map);for(let[s,o]of i)e instanceof Map?e.has(s)||e.set(s,o):e instanceof Set?e.add(s):Object.prototype.hasOwnProperty.call(e,s)||Object.defineProperty(e,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}function yA(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Dt.isNode(n)&&t&&t.doc){let r=_A.createStringifyContext(t.doc,{});r.anchors=new Set;for(let s of t.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;let i=n.toString(r);if(!t.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),dA.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return i}return JSON.stringify(e)}N_.addPairToJSMap=mA});var lt=p(Ko=>{"use strict";var O_=Sn(),EA=v_(),TA=Go(),gi=W();function LA(n,e,t){let r=O_.createNode(n,void 0,t),i=O_.createNode(e,void 0,t);return new yi(r,i)}var yi=class n{constructor(e,t=null){Object.defineProperty(this,gi.NODE_TYPE,{value:gi.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return gi.isNode(t)&&(t=t.clone(e)),gi.isNode(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t?.mapAsMap?new Map:{};return TA.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?EA.stringifyPair(this,e,t,r):JSON.stringify(this)}};Ko.Pair=yi;Ko.createPair=LA});var Yo=p(C_=>{"use strict";var SA=An(),Et=W(),R_=Nn(),Rn=In();function AA(n,e,t){return(e.inFlow??n.flow?wA:IA)(n,e,t)}function IA({comment:n,items:e},t,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=t,u=Object.assign({},t,{indent:s,type:null}),f=!1,_=[];for(let T=0;Tm=null,()=>f=!0);m&&(A+=Rn.lineComment(A,s,c(m))),f&&m&&(f=!1),_.push(r+A)}let h;if(_.length===0)h=i.start+i.end;else{h=_[0];for(let T=1;T<_.length;++T){let g=_[T];h+=g?` +`)&&(v="");return m+=v+M,t.inFlow?$&&r&&r():b&&!$?m+=qn.lineComment(m,t.indent,c(b)):g&&i&&i(),m}kp.stringifyPair=LA});var zo=_(Xo=>{"use strict";function SA(n,...e){n==="debug"&&console.log(...e)}function AA(n,e){(n==="debug"||n==="warn")&&(typeof process<"u"&&process.emitWarning?process.emitWarning(e):console.warn(e))}Xo.debug=SA;Xo.warn=AA});var ea=_(qp=>{"use strict";var IA=zo(),wA=$n(),Bt=W(),vA=ce(),Qo=at(),$p="<<";function bA(n,e,{key:t,value:r}){if(n?.doc.schema.merge&&NA(t))if(r=Bt.isAlias(r)?r.resolve(n.doc):r,Bt.isSeq(r))for(let i of r.items)Zo(n,e,i);else if(Array.isArray(r))for(let i of r)Zo(n,e,i);else Zo(n,e,r);else{let i=Qo.toJS(t,"",n);if(e instanceof Map)e.set(i,Qo.toJS(r,i,n));else if(e instanceof Set)e.add(i);else{let s=OA(t,i,n),o=Qo.toJS(r,s,n);s in e?Object.defineProperty(e,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[s]=o}}return e}var NA=n=>n===$p||Bt.isScalar(n)&&n.value===$p&&(!n.type||n.type===vA.Scalar.PLAIN);function Zo(n,e,t){let r=n&&Bt.isAlias(t)?t.resolve(n.doc):t;if(!Bt.isMap(r))throw new Error("Merge sources must be maps or map aliases");let i=r.toJSON(null,n,Map);for(let[s,o]of i)e instanceof Map?e.has(s)||e.set(s,o):e instanceof Set?e.add(s):Object.prototype.hasOwnProperty.call(e,s)||Object.defineProperty(e,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}function OA(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Bt.isNode(n)&&t&&t.doc){let r=wA.createStringifyContext(t.doc,{});r.anchors=new Set;for(let s of t.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;let i=n.toString(r);if(!t.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),IA.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return i}return JSON.stringify(e)}qp.addPairToJSMap=bA});var ht=_(ta=>{"use strict";var xp=Nn(),RA=Pp(),CA=ea(),Ii=W();function kA(n,e,t){let r=xp.createNode(n,void 0,t),i=xp.createNode(e,void 0,t);return new wi(r,i)}var wi=class n{constructor(e,t=null){Object.defineProperty(this,Ii.NODE_TYPE,{value:Ii.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return Ii.isNode(t)&&(t=t.clone(e)),Ii.isNode(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t?.mapAsMap?new Map:{};return CA.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?RA.stringifyPair(this,e,t,r):JSON.stringify(this)}};ta.Pair=wi;ta.createPair=kA});var na=_(Fp=>{"use strict";var PA=On(),St=W(),Mp=$n(),xn=Rn();function $A(n,e,t){return(e.inFlow??n.flow?xA:qA)(n,e,t)}function qA({comment:n,items:e},t,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=t,u=Object.assign({},t,{indent:s,type:null}),f=!1,d=[];for(let y=0;ym=null,()=>f=!0);m&&(A+=xn.lineComment(A,s,c(m))),f&&m&&(f=!1),d.push(r+A)}let h;if(d.length===0)h=i.start+i.end;else{h=d[0];for(let y=1;yb=null);A_||$.includes(` -`))&&(f=!0),h.push($),_=h.length}let T,{start:g,end:m}=r;if(h.length===0)T=g+m;else if(f||(f=h.reduce((w,b)=>w+b.length+2,2)>SA.Collection.maxFlowStringSingleLineLength),f){T=g;for(let A of h)T+=A?` +`+xn.indentComment(c(n),l),a&&a()):f&&o&&o(),h}function xA({comment:n,items:e},t,{flowChars:r,itemIndent:i,onComment:s}){let{indent:o,indentStep:a,flowCollectionPadding:l,options:{commentString:c}}=t;i+=a;let u=Object.assign({},t,{indent:i,inFlow:!0,type:null}),f=!1,d=0,h=[];for(let A=0;Ab=null);Ad||$.includes(` +`))&&(f=!0),h.push($),d=h.length}let y,{start:g,end:m}=r;if(h.length===0)y=g+m;else if(f||(f=h.reduce((w,b)=>w+b.length+2,2)>PA.Collection.maxFlowStringSingleLineLength),f){y=g;for(let A of h)y+=A?` ${a}${o}${A}`:` -`;T+=` -${o}${m}`}else T=`${g}${l}${h.join(" ")}${l}${m}`;return n&&(T+=Rn.lineComment(T,o,c(n)),s&&s()),T}function Ei({indent:n,options:{commentString:e}},t,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){let s=Rn.indentComment(e(r),n);t.push(s.trimStart())}}C_.stringifyCollection=AA});var ut=p(Xo=>{"use strict";var vA=Yo(),bA=Go(),NA=An(),ct=W(),Ti=lt(),OA=ce();function Cn(n,e){let t=ct.isScalar(e)?e.value:e;for(let r of n)if(ct.isPair(r)&&(r.key===e||r.key===t||ct.isScalar(r.key)&&r.key.value===t))return r}var Jo=class extends NA.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(ct.MAP,e),this.items=[]}static from(e,t,r){let{keepUndefined:i,replacer:s}=r,o=new this(e),a=(l,c)=>{if(typeof s=="function")c=s.call(t,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(Ti.createPair(l,c,r))};if(t instanceof Map)for(let[l,c]of t)a(l,c);else if(t&&typeof t=="object")for(let l of Object.keys(t))a(l,t[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let r;ct.isPair(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new Ti.Pair(e,e?.value):r=new Ti.Pair(e.key,e.value);let i=Cn(this.items,r.key),s=this.schema?.sortMapEntries;if(i){if(!t)throw new Error(`Key ${r.key} already set`);ct.isScalar(i.value)&&OA.isScalarValue(r.value)?i.value.value=r.value:i.value=r.value}else if(s){let o=this.items.findIndex(a=>s(r,a)<0);o===-1?this.items.push(r):this.items.splice(o,0,r)}else this.items.push(r)}delete(e){let t=Cn(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let i=Cn(this.items,e)?.value;return(!t&&ct.isScalar(i)?i.value:i)??void 0}has(e){return!!Cn(this.items,e)}set(e,t){this.add(new Ti.Pair(e,t),!0)}toJSON(e,t,r){let i=r?new r:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(i);for(let s of this.items)bA.addPairToJSMap(t,i,s);return i}toString(e,t,r){if(!e)return JSON.stringify(this);for(let i of this.items)if(!ct.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),vA.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};Xo.YAMLMap=Jo;Xo.findPair=Cn});var Ft=p(P_=>{"use strict";var RA=W(),k_=ut(),CA={collection:"map",default:!0,nodeClass:k_.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return RA.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>k_.YAMLMap.from(n,e,t)};P_.map=CA});var ft=p($_=>{"use strict";var kA=Sn(),PA=Yo(),$A=An(),Si=W(),qA=ce(),xA=rt(),zo=class extends $A.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Si.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Li(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=Li(e);if(typeof r!="number")return;let i=this.items[r];return!t&&Si.isScalar(i)?i.value:i}has(e){let t=Li(e);return typeof t=="number"&&t=0?e:null}$_.YAMLSeq=zo});var jt=p(x_=>{"use strict";var MA=W(),q_=ft(),DA={collection:"seq",default:!0,nodeClass:q_.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return MA.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>q_.YAMLSeq.from(n,e,t)};x_.seq=DA});var kn=p(M_=>{"use strict";var FA=bn(),jA={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,r){return e=Object.assign({actualString:!0},e),FA.stringifyString(n,e,t,r)}};M_.string=jA});var Ai=p(j_=>{"use strict";var D_=ce(),F_={identify:n=>n==null,createNode:()=>new D_.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new D_.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&F_.test.test(n)?n:e.options.nullStr};j_.nullTag=F_});var Qo=p(B_=>{"use strict";var HA=ce(),H_={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new HA.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&H_.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};B_.boolTag=H_});var Ht=p(U_=>{"use strict";function BA({format:n,minFractionDigits:e,tag:t,value:r}){if(typeof r=="bigint")return String(r);let i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=JSON.stringify(r);if(!n&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(s)){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=e-(s.length-o-1);for(;a-- >0;)s+="0"}return s}U_.stringifyNumber=BA});var ea=p(Ii=>{"use strict";var UA=ce(),Zo=Ht(),VA={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Zo.stringifyNumber},WA={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Zo.stringifyNumber(n)}},GA={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(n){let e=new UA.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:Zo.stringifyNumber};Ii.float=GA;Ii.floatExp=WA;Ii.floatNaN=VA});var na=p(vi=>{"use strict";var V_=Ht(),wi=n=>typeof n=="bigint"||Number.isInteger(n),ta=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function W_(n,e,t){let{value:r}=n;return wi(r)&&r>=0?t+r.toString(e):V_.stringifyNumber(n)}var KA={identify:n=>wi(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>ta(n,2,8,t),stringify:n=>W_(n,8,"0o")},YA={identify:wi,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>ta(n,0,10,t),stringify:V_.stringifyNumber},JA={identify:n=>wi(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>ta(n,2,16,t),stringify:n=>W_(n,16,"0x")};vi.int=YA;vi.intHex=JA;vi.intOct=KA});var K_=p(G_=>{"use strict";var XA=Ft(),zA=Ai(),QA=jt(),ZA=kn(),eI=Qo(),ra=ea(),ia=na(),tI=[XA.map,QA.seq,ZA.string,zA.nullTag,eI.boolTag,ia.intOct,ia.int,ia.intHex,ra.floatNaN,ra.floatExp,ra.float];G_.schema=tI});var X_=p(J_=>{"use strict";var nI=ce(),rI=Ft(),iI=jt();function Y_(n){return typeof n=="bigint"||Number.isInteger(n)}var bi=({value:n})=>JSON.stringify(n),sI=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:bi},{identify:n=>n==null,createNode:()=>new nI.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:bi},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:n=>n==="true",stringify:bi},{identify:Y_,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>Y_(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:bi}],oI={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},aI=[rI.map,iI.seq].concat(sI,oI);J_.schema=aI});var oa=p(z_=>{"use strict";var sa=ce(),lI=bn(),cI={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof Buffer=="function")return Buffer.from(n,"base64");if(typeof atob=="function"){let t=atob(n.replace(/[\n\r]/g,"")),r=new Uint8Array(t.length);for(let i=0;i{"use strict";var Ni=W(),aa=lt(),uI=ce(),fI=ft();function Q_(n,e){if(Ni.isSeq(n))for(let t=0;t1&&e("Each pair must have its own sequence indicator");let i=r.items[0]||new aa.Pair(new uI.Scalar(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} +`;y+=` +${o}${m}`}else y=`${g}${l}${h.join(" ")}${l}${m}`;return n&&(y+=xn.lineComment(y,o,c(n)),s&&s()),y}function vi({indent:n,options:{commentString:e}},t,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){let s=xn.indentComment(e(r),n);t.push(s.trimStart())}}Fp.stringifyCollection=$A});var pt=_(ia=>{"use strict";var MA=na(),FA=ea(),DA=On(),dt=W(),bi=ht(),jA=ce();function Mn(n,e){let t=dt.isScalar(e)?e.value:e;for(let r of n)if(dt.isPair(r)&&(r.key===e||r.key===t||dt.isScalar(r.key)&&r.key.value===t))return r}var ra=class extends DA.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(dt.MAP,e),this.items=[]}static from(e,t,r){let{keepUndefined:i,replacer:s}=r,o=new this(e),a=(l,c)=>{if(typeof s=="function")c=s.call(t,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(bi.createPair(l,c,r))};if(t instanceof Map)for(let[l,c]of t)a(l,c);else if(t&&typeof t=="object")for(let l of Object.keys(t))a(l,t[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let r;dt.isPair(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new bi.Pair(e,e?.value):r=new bi.Pair(e.key,e.value);let i=Mn(this.items,r.key),s=this.schema?.sortMapEntries;if(i){if(!t)throw new Error(`Key ${r.key} already set`);dt.isScalar(i.value)&&jA.isScalarValue(r.value)?i.value.value=r.value:i.value=r.value}else if(s){let o=this.items.findIndex(a=>s(r,a)<0);o===-1?this.items.push(r):this.items.splice(o,0,r)}else this.items.push(r)}delete(e){let t=Mn(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let i=Mn(this.items,e)?.value;return(!t&&dt.isScalar(i)?i.value:i)??void 0}has(e){return!!Mn(this.items,e)}set(e,t){this.add(new bi.Pair(e,t),!0)}toJSON(e,t,r){let i=r?new r:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(i);for(let s of this.items)FA.addPairToJSMap(t,i,s);return i}toString(e,t,r){if(!e)return JSON.stringify(this);for(let i of this.items)if(!dt.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),MA.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};ia.YAMLMap=ra;ia.findPair=Mn});var Ut=_(jp=>{"use strict";var HA=W(),Dp=pt(),BA={collection:"map",default:!0,nodeClass:Dp.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return HA.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>Dp.YAMLMap.from(n,e,t)};jp.map=BA});var _t=_(Hp=>{"use strict";var UA=Nn(),VA=na(),WA=On(),Oi=W(),GA=ce(),KA=at(),sa=class extends WA.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Oi.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Ni(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=Ni(e);if(typeof r!="number")return;let i=this.items[r];return!t&&Oi.isScalar(i)?i.value:i}has(e){let t=Ni(e);return typeof t=="number"&&t=0?e:null}Hp.YAMLSeq=sa});var Vt=_(Up=>{"use strict";var YA=W(),Bp=_t(),JA={collection:"seq",default:!0,nodeClass:Bp.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return YA.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>Bp.YAMLSeq.from(n,e,t)};Up.seq=JA});var Fn=_(Vp=>{"use strict";var XA=Pn(),zA={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,r){return e=Object.assign({actualString:!0},e),XA.stringifyString(n,e,t,r)}};Vp.string=zA});var Ri=_(Kp=>{"use strict";var Wp=ce(),Gp={identify:n=>n==null,createNode:()=>new Wp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Wp.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&Gp.test.test(n)?n:e.options.nullStr};Kp.nullTag=Gp});var oa=_(Jp=>{"use strict";var QA=ce(),Yp={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new QA.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&Yp.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};Jp.boolTag=Yp});var Wt=_(Xp=>{"use strict";function ZA({format:n,minFractionDigits:e,tag:t,value:r}){if(typeof r=="bigint")return String(r);let i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=JSON.stringify(r);if(!n&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(s)){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=e-(s.length-o-1);for(;a-- >0;)s+="0"}return s}Xp.stringifyNumber=ZA});var la=_(Ci=>{"use strict";var eI=ce(),aa=Wt(),tI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:aa.stringifyNumber},nI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():aa.stringifyNumber(n)}},rI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(n){let e=new eI.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:aa.stringifyNumber};Ci.float=rI;Ci.floatExp=nI;Ci.floatNaN=tI});var ua=_(Pi=>{"use strict";var zp=Wt(),ki=n=>typeof n=="bigint"||Number.isInteger(n),ca=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function Qp(n,e,t){let{value:r}=n;return ki(r)&&r>=0?t+r.toString(e):zp.stringifyNumber(n)}var iI={identify:n=>ki(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>ca(n,2,8,t),stringify:n=>Qp(n,8,"0o")},sI={identify:ki,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>ca(n,0,10,t),stringify:zp.stringifyNumber},oI={identify:n=>ki(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>ca(n,2,16,t),stringify:n=>Qp(n,16,"0x")};Pi.int=sI;Pi.intHex=oI;Pi.intOct=iI});var e_=_(Zp=>{"use strict";var aI=Ut(),lI=Ri(),cI=Vt(),uI=Fn(),fI=oa(),fa=la(),ha=ua(),hI=[aI.map,cI.seq,uI.string,lI.nullTag,fI.boolTag,ha.intOct,ha.int,ha.intHex,fa.floatNaN,fa.floatExp,fa.float];Zp.schema=hI});var r_=_(n_=>{"use strict";var dI=ce(),pI=Ut(),_I=Vt();function t_(n){return typeof n=="bigint"||Number.isInteger(n)}var $i=({value:n})=>JSON.stringify(n),mI=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:$i},{identify:n=>n==null,createNode:()=>new dI.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:$i},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:n=>n==="true",stringify:$i},{identify:t_,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>t_(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:$i}],gI={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},yI=[pI.map,_I.seq].concat(mI,gI);n_.schema=yI});var pa=_(i_=>{"use strict";var da=ce(),EI=Pn(),TI={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof Buffer=="function")return Buffer.from(n,"base64");if(typeof atob=="function"){let t=atob(n.replace(/[\n\r]/g,"")),r=new Uint8Array(t.length);for(let i=0;i{"use strict";var qi=W(),_a=ht(),LI=ce(),SI=_t();function s_(n,e){if(qi.isSeq(n))for(let t=0;t1&&e("Each pair must have its own sequence indicator");let i=r.items[0]||new _a.Pair(new LI.Scalar(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} ${i.key.commentBefore}`:r.commentBefore),r.comment){let s=i.value??i.key;s.comment=s.comment?`${r.comment} -${s.comment}`:r.comment}r=i}n.items[t]=Ni.isPair(r)?r:new aa.Pair(r)}}else e("Expected a sequence for this tag");return n}function Z_(n,e,t){let{replacer:r}=t,i=new fI.YAMLSeq(n);i.tag="tag:yaml.org,2002:pairs";let s=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected { key: value } tuple: ${o}`)}else a=o;i.items.push(aa.createPair(a,l,t))}return i}var hI={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Q_,createNode:Z_};Oi.createPairs=Z_;Oi.pairs=hI;Oi.resolvePairs=Q_});var ua=p(ca=>{"use strict";var ep=W(),la=rt(),Pn=ut(),dI=ft(),tp=Ri(),Tt=class n extends dI.YAMLSeq{constructor(){super(),this.add=Pn.YAMLMap.prototype.add.bind(this),this.delete=Pn.YAMLMap.prototype.delete.bind(this),this.get=Pn.YAMLMap.prototype.get.bind(this),this.has=Pn.YAMLMap.prototype.has.bind(this),this.set=Pn.YAMLMap.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t?.onCreate&&t.onCreate(r);for(let i of this.items){let s,o;if(ep.isPair(i)?(s=la.toJS(i.key,"",t),o=la.toJS(i.value,s,t)):s=la.toJS(i,"",t),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(e,t,r){let i=tp.createPairs(e,t,r),s=new this;return s.items=i.items,s}};Tt.tag="tag:yaml.org,2002:omap";var _I={collection:"seq",identify:n=>n instanceof Map,nodeClass:Tt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=tp.resolvePairs(n,e),r=[];for(let{key:i}of t.items)ep.isScalar(i)&&(r.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new Tt,t)},createNode:(n,e,t)=>Tt.from(n,e,t)};ca.YAMLOMap=Tt;ca.omap=_I});var op=p(fa=>{"use strict";var np=ce();function rp({value:n,source:e},t){return e&&(n?ip:sp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var ip={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new np.Scalar(!0),stringify:rp},sp={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>new np.Scalar(!1),stringify:rp};fa.falseTag=sp;fa.trueTag=ip});var ap=p(Ci=>{"use strict";var pI=ce(),ha=Ht(),mI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:ha.stringifyNumber},gI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():ha.stringifyNumber(n)}},yI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new pI.Scalar(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:ha.stringifyNumber};Ci.float=yI;Ci.floatExp=gI;Ci.floatNaN=mI});var cp=p(qn=>{"use strict";var lp=Ht(),$n=n=>typeof n=="bigint"||Number.isInteger(n);function ki(n,e,t,{intAsBigInt:r}){let i=n[0];if((i==="-"||i==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return i==="-"?BigInt(-1)*o:o}let s=parseInt(n,t);return i==="-"?-1*s:s}function da(n,e,t){let{value:r}=n;if($n(r)){let i=r.toString(e);return r<0?"-"+t+i.substr(1):t+i}return lp.stringifyNumber(n)}var EI={identify:$n,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>ki(n,2,2,t),stringify:n=>da(n,2,"0b")},TI={identify:$n,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>ki(n,1,8,t),stringify:n=>da(n,8,"0")},LI={identify:$n,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>ki(n,0,10,t),stringify:lp.stringifyNumber},SI={identify:$n,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>ki(n,2,16,t),stringify:n=>da(n,16,"0x")};qn.int=LI;qn.intBin=EI;qn.intHex=SI;qn.intOct=TI});var pa=p(_a=>{"use strict";var qi=W(),Pi=lt(),$i=ut(),Lt=class n extends $i.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;qi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Pi.Pair(e.key,null):t=new Pi.Pair(e,null),$i.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=$i.findPair(this.items,e);return!t&&qi.isPair(r)?qi.isScalar(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let r=$i.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new Pi.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:i}=r,s=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof i=="function"&&(o=i.call(t,o,o)),s.items.push(Pi.createPair(o,null,r));return s}};Lt.tag="tag:yaml.org,2002:set";var AI={collection:"map",identify:n=>n instanceof Set,nodeClass:Lt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>Lt.from(n,e,t),resolve(n,e){if(qi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new Lt,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};_a.YAMLSet=Lt;_a.set=AI});var ga=p(xi=>{"use strict";var II=Ht();function ma(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,i=o=>e?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return t==="-"?i(-1)*s:s}function up(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return II.stringifyNumber(n);let r="";e<0&&(r="-",e*=t(-1));let i=t(60),s=[e%i];return e<60?s.unshift(0):(e=(e-s[0])/i,s.unshift(e%i),e>=60&&(e=(e-s[0])/i,s.unshift(e))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var wI={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>ma(n,t),stringify:up},vI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>ma(n,!1),stringify:up},fp={identify:n=>n instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(n){let e=n.match(fp.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,i,s,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,r-1,i,s||0,o||0,a||0,l),u=e[8];if(u&&u!=="Z"){let f=ma(u,!1);Math.abs(f)<30&&(f*=60),c-=6e4*f}return new Date(c)},stringify:({value:n})=>n.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};xi.floatTime=vI;xi.intTime=wI;xi.timestamp=fp});var _p=p(dp=>{"use strict";var bI=Ft(),NI=Ai(),OI=jt(),RI=kn(),CI=oa(),hp=op(),ya=ap(),Mi=cp(),kI=ua(),PI=Ri(),$I=pa(),Ea=ga(),qI=[bI.map,OI.seq,RI.string,NI.nullTag,hp.trueTag,hp.falseTag,Mi.intBin,Mi.intOct,Mi.int,Mi.intHex,ya.floatNaN,ya.floatExp,ya.float,CI.binary,kI.omap,PI.pairs,$I.set,Ea.intTime,Ea.floatTime,Ea.timestamp];dp.schema=qI});var Ip=p(Sa=>{"use strict";var yp=Ft(),xI=Ai(),Ep=jt(),MI=kn(),DI=Qo(),Ta=ea(),La=na(),FI=K_(),jI=X_(),Tp=oa(),Lp=ua(),Sp=Ri(),pp=_p(),Ap=pa(),Di=ga(),mp=new Map([["core",FI.schema],["failsafe",[yp.map,Ep.seq,MI.string]],["json",jI.schema],["yaml11",pp.schema],["yaml-1.1",pp.schema]]),gp={binary:Tp.binary,bool:DI.boolTag,float:Ta.float,floatExp:Ta.floatExp,floatNaN:Ta.floatNaN,floatTime:Di.floatTime,int:La.int,intHex:La.intHex,intOct:La.intOct,intTime:Di.intTime,map:yp.map,null:xI.nullTag,omap:Lp.omap,pairs:Sp.pairs,seq:Ep.seq,set:Ap.set,timestamp:Di.timestamp},HI={"tag:yaml.org,2002:binary":Tp.binary,"tag:yaml.org,2002:omap":Lp.omap,"tag:yaml.org,2002:pairs":Sp.pairs,"tag:yaml.org,2002:set":Ap.set,"tag:yaml.org,2002:timestamp":Di.timestamp};function BI(n,e){let t=mp.get(e);if(!t)if(Array.isArray(n))t=[];else{let r=Array.from(mp.keys()).filter(i=>i!=="yaml11").map(i=>JSON.stringify(i)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${r} or define customTags array`)}if(Array.isArray(n))for(let r of n)t=t.concat(r);else typeof n=="function"&&(t=n(t.slice()));return t.map(r=>{if(typeof r!="string")return r;let i=gp[r];if(i)return i;let s=Object.keys(gp).map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown custom tag "${r}"; use one of ${s}`)})}Sa.coreKnownTags=HI;Sa.getTags=BI});var wa=p(wp=>{"use strict";var Aa=W(),UI=Ft(),VI=jt(),WI=kn(),Fi=Ip(),GI=(n,e)=>n.keye.key?1:0,Ia=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Fi.getTags(e,"compat"):e?Fi.getTags(null,e):null,this.merge=!!r,this.name=typeof s=="string"&&s||"core",this.knownTags=i?Fi.coreKnownTags:{},this.tags=Fi.getTags(t,this.name),this.toStringOptions=a??null,Object.defineProperty(this,Aa.MAP,{value:UI.map}),Object.defineProperty(this,Aa.SCALAR,{value:WI.string}),Object.defineProperty(this,Aa.SEQ,{value:VI.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?GI:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};wp.Schema=Ia});var bp=p(vp=>{"use strict";var KI=W(),va=Nn(),xn=In();function YI(n,e){let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let i=va.createStringifyContext(n,e),{commentString:s}=i.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=s(n.commentBefore);t.unshift(xn.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(KI.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let u=s(n.contents.commentBefore);t.push(xn.indentComment(u,""))}i.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=va.stringify(n.contents,i,()=>a=null,l);a&&(c+=xn.lineComment(c,"",s(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(va.stringify(n.contents,i));if(n.directives?.docEnd)if(n.comment){let l=s(n.comment);l.includes(` -`)?(t.push("..."),t.push(xn.indentComment(l,""))):t.push(`... ${l}`)}else t.push("...");else{let l=n.comment;l&&o&&(l=l.replace(/^\n+/,"")),l&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(xn.indentComment(s(l),"")))}return t.join(` +${s.comment}`:r.comment}r=i}n.items[t]=qi.isPair(r)?r:new _a.Pair(r)}}else e("Expected a sequence for this tag");return n}function o_(n,e,t){let{replacer:r}=t,i=new SI.YAMLSeq(n);i.tag="tag:yaml.org,2002:pairs";let s=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected { key: value } tuple: ${o}`)}else a=o;i.items.push(_a.createPair(a,l,t))}return i}var AI={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:s_,createNode:o_};xi.createPairs=o_;xi.pairs=AI;xi.resolvePairs=s_});var ya=_(ga=>{"use strict";var a_=W(),ma=at(),Dn=pt(),II=_t(),l_=Mi(),At=class n extends II.YAMLSeq{constructor(){super(),this.add=Dn.YAMLMap.prototype.add.bind(this),this.delete=Dn.YAMLMap.prototype.delete.bind(this),this.get=Dn.YAMLMap.prototype.get.bind(this),this.has=Dn.YAMLMap.prototype.has.bind(this),this.set=Dn.YAMLMap.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t?.onCreate&&t.onCreate(r);for(let i of this.items){let s,o;if(a_.isPair(i)?(s=ma.toJS(i.key,"",t),o=ma.toJS(i.value,s,t)):s=ma.toJS(i,"",t),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(e,t,r){let i=l_.createPairs(e,t,r),s=new this;return s.items=i.items,s}};At.tag="tag:yaml.org,2002:omap";var wI={collection:"seq",identify:n=>n instanceof Map,nodeClass:At,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=l_.resolvePairs(n,e),r=[];for(let{key:i}of t.items)a_.isScalar(i)&&(r.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new At,t)},createNode:(n,e,t)=>At.from(n,e,t)};ga.YAMLOMap=At;ga.omap=wI});var d_=_(Ea=>{"use strict";var c_=ce();function u_({value:n,source:e},t){return e&&(n?f_:h_).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var f_={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new c_.Scalar(!0),stringify:u_},h_={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>new c_.Scalar(!1),stringify:u_};Ea.falseTag=h_;Ea.trueTag=f_});var p_=_(Fi=>{"use strict";var vI=ce(),Ta=Wt(),bI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ta.stringifyNumber},NI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Ta.stringifyNumber(n)}},OI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new vI.Scalar(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:Ta.stringifyNumber};Fi.float=OI;Fi.floatExp=NI;Fi.floatNaN=bI});var m_=_(Hn=>{"use strict";var __=Wt(),jn=n=>typeof n=="bigint"||Number.isInteger(n);function Di(n,e,t,{intAsBigInt:r}){let i=n[0];if((i==="-"||i==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return i==="-"?BigInt(-1)*o:o}let s=parseInt(n,t);return i==="-"?-1*s:s}function La(n,e,t){let{value:r}=n;if(jn(r)){let i=r.toString(e);return r<0?"-"+t+i.substr(1):t+i}return __.stringifyNumber(n)}var RI={identify:jn,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>Di(n,2,2,t),stringify:n=>La(n,2,"0b")},CI={identify:jn,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>Di(n,1,8,t),stringify:n=>La(n,8,"0")},kI={identify:jn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>Di(n,0,10,t),stringify:__.stringifyNumber},PI={identify:jn,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>Di(n,2,16,t),stringify:n=>La(n,16,"0x")};Hn.int=kI;Hn.intBin=RI;Hn.intHex=PI;Hn.intOct=CI});var Aa=_(Sa=>{"use strict";var Bi=W(),ji=ht(),Hi=pt(),It=class n extends Hi.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;Bi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new ji.Pair(e.key,null):t=new ji.Pair(e,null),Hi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=Hi.findPair(this.items,e);return!t&&Bi.isPair(r)?Bi.isScalar(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let r=Hi.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new ji.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:i}=r,s=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof i=="function"&&(o=i.call(t,o,o)),s.items.push(ji.createPair(o,null,r));return s}};It.tag="tag:yaml.org,2002:set";var $I={collection:"map",identify:n=>n instanceof Set,nodeClass:It,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>It.from(n,e,t),resolve(n,e){if(Bi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new It,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};Sa.YAMLSet=It;Sa.set=$I});var wa=_(Ui=>{"use strict";var qI=Wt();function Ia(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,i=o=>e?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return t==="-"?i(-1)*s:s}function g_(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return qI.stringifyNumber(n);let r="";e<0&&(r="-",e*=t(-1));let i=t(60),s=[e%i];return e<60?s.unshift(0):(e=(e-s[0])/i,s.unshift(e%i),e>=60&&(e=(e-s[0])/i,s.unshift(e))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var xI={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Ia(n,t),stringify:g_},MI={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Ia(n,!1),stringify:g_},y_={identify:n=>n instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(n){let e=n.match(y_.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,i,s,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,r-1,i,s||0,o||0,a||0,l),u=e[8];if(u&&u!=="Z"){let f=Ia(u,!1);Math.abs(f)<30&&(f*=60),c-=6e4*f}return new Date(c)},stringify:({value:n})=>n.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};Ui.floatTime=MI;Ui.intTime=xI;Ui.timestamp=y_});var L_=_(T_=>{"use strict";var FI=Ut(),DI=Ri(),jI=Vt(),HI=Fn(),BI=pa(),E_=d_(),va=p_(),Vi=m_(),UI=ya(),VI=Mi(),WI=Aa(),ba=wa(),GI=[FI.map,jI.seq,HI.string,DI.nullTag,E_.trueTag,E_.falseTag,Vi.intBin,Vi.intOct,Vi.int,Vi.intHex,va.floatNaN,va.floatExp,va.float,BI.binary,UI.omap,VI.pairs,WI.set,ba.intTime,ba.floatTime,ba.timestamp];T_.schema=GI});var C_=_(Ra=>{"use strict";var w_=Ut(),KI=Ri(),v_=Vt(),YI=Fn(),JI=oa(),Na=la(),Oa=ua(),XI=e_(),zI=r_(),b_=pa(),N_=ya(),O_=Mi(),S_=L_(),R_=Aa(),Wi=wa(),A_=new Map([["core",XI.schema],["failsafe",[w_.map,v_.seq,YI.string]],["json",zI.schema],["yaml11",S_.schema],["yaml-1.1",S_.schema]]),I_={binary:b_.binary,bool:JI.boolTag,float:Na.float,floatExp:Na.floatExp,floatNaN:Na.floatNaN,floatTime:Wi.floatTime,int:Oa.int,intHex:Oa.intHex,intOct:Oa.intOct,intTime:Wi.intTime,map:w_.map,null:KI.nullTag,omap:N_.omap,pairs:O_.pairs,seq:v_.seq,set:R_.set,timestamp:Wi.timestamp},QI={"tag:yaml.org,2002:binary":b_.binary,"tag:yaml.org,2002:omap":N_.omap,"tag:yaml.org,2002:pairs":O_.pairs,"tag:yaml.org,2002:set":R_.set,"tag:yaml.org,2002:timestamp":Wi.timestamp};function ZI(n,e){let t=A_.get(e);if(!t)if(Array.isArray(n))t=[];else{let r=Array.from(A_.keys()).filter(i=>i!=="yaml11").map(i=>JSON.stringify(i)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${r} or define customTags array`)}if(Array.isArray(n))for(let r of n)t=t.concat(r);else typeof n=="function"&&(t=n(t.slice()));return t.map(r=>{if(typeof r!="string")return r;let i=I_[r];if(i)return i;let s=Object.keys(I_).map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown custom tag "${r}"; use one of ${s}`)})}Ra.coreKnownTags=QI;Ra.getTags=ZI});var Pa=_(k_=>{"use strict";var Ca=W(),ew=Ut(),tw=Vt(),nw=Fn(),Gi=C_(),rw=(n,e)=>n.keye.key?1:0,ka=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Gi.getTags(e,"compat"):e?Gi.getTags(null,e):null,this.merge=!!r,this.name=typeof s=="string"&&s||"core",this.knownTags=i?Gi.coreKnownTags:{},this.tags=Gi.getTags(t,this.name),this.toStringOptions=a??null,Object.defineProperty(this,Ca.MAP,{value:ew.map}),Object.defineProperty(this,Ca.SCALAR,{value:nw.string}),Object.defineProperty(this,Ca.SEQ,{value:tw.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?rw:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};k_.Schema=ka});var $_=_(P_=>{"use strict";var iw=W(),$a=$n(),Bn=Rn();function sw(n,e){let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let i=$a.createStringifyContext(n,e),{commentString:s}=i.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=s(n.commentBefore);t.unshift(Bn.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(iw.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let u=s(n.contents.commentBefore);t.push(Bn.indentComment(u,""))}i.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=$a.stringify(n.contents,i,()=>a=null,l);a&&(c+=Bn.lineComment(c,"",s(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push($a.stringify(n.contents,i));if(n.directives?.docEnd)if(n.comment){let l=s(n.comment);l.includes(` +`)?(t.push("..."),t.push(Bn.indentComment(l,""))):t.push(`... ${l}`)}else t.push("...");else{let l=n.comment;l&&o&&(l=l.replace(/^\n+/,"")),l&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Bn.indentComment(s(l),"")))}return t.join(` `)+` -`}vp.stringifyDocument=YI});var Mn=p(Np=>{"use strict";var JI=Ln(),Bt=An(),xe=W(),XI=lt(),zI=rt(),QI=wa(),ZI=bp(),ba=oi(),ew=ko(),tw=Sn(),Na=Co(),Oa=class n{constructor(e,t,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,xe.NODE_TYPE,{value:xe.DOC});let i=null;typeof t=="function"||Array.isArray(t)?i=t:r===void 0&&t&&(r=t,t=void 0);let s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Na.Directives({version:o}),this.setSchema(o,r),this.contents=e===void 0?null:this.createNode(e,i,r)}clone(){let e=Object.create(n.prototype,{[xe.NODE_TYPE]:{value:xe.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=xe.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ut(this.contents)&&this.contents.add(e)}addIn(e,t){Ut(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=ba.anchorNames(this);e.anchor=!t||r.has(t)?ba.findNewAnchor(t||"a",r):t}return new JI.Alias(e.anchor)}createNode(e,t,r){let i;if(typeof t=="function")e=t.call({"":e},"",e),i=t;else if(Array.isArray(t)){let m=w=>typeof w=="number"||w instanceof String||w instanceof Number,A=t.filter(m).map(String);A.length>0&&(t=t.concat(A)),i=t}else r===void 0&&t&&(r=t,t=void 0);let{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:u}=r??{},{onAnchor:f,setAnchors:_,sourceObjects:h}=ba.createNodeAnchors(this,o||"a"),T={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:f,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:h},g=tw.createNode(e,u,T);return a&&xe.isCollection(g)&&(g.flow=!0),_(),g}createPair(e,t,r={}){let i=this.createNode(e,null,r),s=this.createNode(t,null,r);return new XI.Pair(i,s)}delete(e){return Ut(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Bt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):Ut(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return xe.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Bt.isEmptyPath(e)?!t&&xe.isScalar(this.contents)?this.contents.value:this.contents:xe.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return xe.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Bt.isEmptyPath(e)?this.contents!==void 0:xe.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Bt.collectionFromPath(this.schema,[e],t):Ut(this.contents)&&this.contents.set(e,t)}setIn(e,t){Bt.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Bt.collectionFromPath(this.schema,Array.from(e),t):Ut(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Na.Directives({version:"1.1"}),r={merge:!0,resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Na.Directives({version:e}),r={merge:!1,resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{let i=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new QI.Schema(Object.assign(r,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=zI.toJS(this.contents,t??"",a);if(typeof s=="function")for(let{count:c,res:u}of a.anchors.values())s(u,c);return typeof o=="function"?ew.applyReviver(o,{"":l},"",l):l}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return ZI.stringifyDocument(this,e)}};function Ut(n){if(xe.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}Np.Document=Oa});var jn=p(Fn=>{"use strict";var Dn=class extends Error{constructor(e,t,r,i){super(),this.name=e,this.code=r,this.message=i,this.pos=t}},Ra=class extends Dn{constructor(e,t,r){super("YAMLParseError",e,t,r)}},Ca=class extends Dn{constructor(e,t,r){super("YAMLWarning",e,t,r)}},nw=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:r,col:i}=t.linePos[0];t.message+=` at line ${r}, column ${i}`;let s=i-1,o=n.substring(e.lineStarts[r-1],e.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){let a=Math.min(s-39,o.length-79);o="\u2026"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),r>1&&/^ *$/.test(o.substring(0,s))){let a=n.substring(e.lineStarts[r-2],e.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`\u2026 +`}P_.stringifyDocument=sw});var Un=_(q_=>{"use strict";var ow=bn(),Gt=On(),xe=W(),aw=ht(),lw=at(),cw=Pa(),uw=$_(),qa=di(),fw=jo(),hw=Nn(),xa=Do(),Ma=class n{constructor(e,t,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,xe.NODE_TYPE,{value:xe.DOC});let i=null;typeof t=="function"||Array.isArray(t)?i=t:r===void 0&&t&&(r=t,t=void 0);let s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new xa.Directives({version:o}),this.setSchema(o,r),this.contents=e===void 0?null:this.createNode(e,i,r)}clone(){let e=Object.create(n.prototype,{[xe.NODE_TYPE]:{value:xe.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=xe.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Kt(this.contents)&&this.contents.add(e)}addIn(e,t){Kt(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=qa.anchorNames(this);e.anchor=!t||r.has(t)?qa.findNewAnchor(t||"a",r):t}return new ow.Alias(e.anchor)}createNode(e,t,r){let i;if(typeof t=="function")e=t.call({"":e},"",e),i=t;else if(Array.isArray(t)){let m=w=>typeof w=="number"||w instanceof String||w instanceof Number,A=t.filter(m).map(String);A.length>0&&(t=t.concat(A)),i=t}else r===void 0&&t&&(r=t,t=void 0);let{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:u}=r??{},{onAnchor:f,setAnchors:d,sourceObjects:h}=qa.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:f,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:h},g=hw.createNode(e,u,y);return a&&xe.isCollection(g)&&(g.flow=!0),d(),g}createPair(e,t,r={}){let i=this.createNode(e,null,r),s=this.createNode(t,null,r);return new aw.Pair(i,s)}delete(e){return Kt(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Gt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):Kt(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return xe.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Gt.isEmptyPath(e)?!t&&xe.isScalar(this.contents)?this.contents.value:this.contents:xe.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return xe.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Gt.isEmptyPath(e)?this.contents!==void 0:xe.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Gt.collectionFromPath(this.schema,[e],t):Kt(this.contents)&&this.contents.set(e,t)}setIn(e,t){Gt.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Gt.collectionFromPath(this.schema,Array.from(e),t):Kt(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new xa.Directives({version:"1.1"}),r={merge:!0,resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new xa.Directives({version:e}),r={merge:!1,resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{let i=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new cw.Schema(Object.assign(r,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=lw.toJS(this.contents,t??"",a);if(typeof s=="function")for(let{count:c,res:u}of a.anchors.values())s(u,c);return typeof o=="function"?fw.applyReviver(o,{"":l},"",l):l}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return uw.stringifyDocument(this,e)}};function Kt(n){if(xe.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}q_.Document=Ma});var Gn=_(Wn=>{"use strict";var Vn=class extends Error{constructor(e,t,r,i){super(),this.name=e,this.code=r,this.message=i,this.pos=t}},Fa=class extends Vn{constructor(e,t,r){super("YAMLParseError",e,t,r)}},Da=class extends Vn{constructor(e,t,r){super("YAMLWarning",e,t,r)}},dw=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:r,col:i}=t.linePos[0];t.message+=` at line ${r}, column ${i}`;let s=i-1,o=n.substring(e.lineStarts[r-1],e.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){let a=Math.min(s-39,o.length-79);o="\u2026"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),r>1&&/^ *$/.test(o.substring(0,s))){let a=n.substring(e.lineStarts[r-2],e.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`\u2026 `),o=a+o}if(/[^ ]/.test(o)){let a=1,l=t.linePos[1];l&&l.line===r&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-s)));let c=" ".repeat(s)+"^".repeat(a);t.message+=`: ${o} ${c} -`}};Fn.YAMLError=Dn;Fn.YAMLParseError=Ra;Fn.YAMLWarning=Ca;Fn.prettifyError=nw});var Hn=p(Op=>{"use strict";function rw(n,{flow:e,indicator:t,next:r,offset:i,onError:s,startOnNewline:o}){let a=!1,l=o,c=o,u="",f="",_=!1,h=!1,T=!1,g=null,m=null,A=null,w=null,b=null;for(let v of n)switch(T&&(v.type!=="space"&&v.type!=="newline"&&v.type!=="comma"&&s(v.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),T=!1),v.type){case"space":!e&&l&&t!=="doc-start"&&v.source[0]===" "&&s(v,"TAB_AS_INDENT","Tabs are not allowed as indentation"),c=!0;break;case"comment":{c||s(v,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let V=v.source.substring(1)||" ";u?u+=f+V:u=V,f="",l=!1;break}case"newline":l?u?u+=v.source:a=!0:f+=v.source,l=!0,_=!0,(g||m)&&(h=!0),c=!0;break;case"anchor":g&&s(v,"MULTIPLE_ANCHORS","A node can have at most one anchor"),v.source.endsWith(":")&&s(v.offset+v.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=v,b===null&&(b=v.offset),l=!1,c=!1,T=!0;break;case"tag":{m&&s(v,"MULTIPLE_TAGS","A node can have at most one tag"),m=v,b===null&&(b=v.offset),l=!1,c=!1,T=!0;break}case t:(g||m)&&s(v,"BAD_PROP_ORDER",`Anchors and tags must be after the ${v.source} indicator`),w&&s(v,"UNEXPECTED_TOKEN",`Unexpected ${v.source} in ${e??"collection"}`),w=v,l=!1,c=!1;break;case"comma":if(e){A&&s(v,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),A=v,l=!1,c=!1;break}default:s(v,"UNEXPECTED_TOKEN",`Unexpected ${v.type} token`),l=!1,c=!1}let $=n[n.length-1],M=$?$.offset+$.source.length:i;return T&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),{comma:A,found:w,spaceBefore:a,comment:u,hasNewline:_,hasNewlineAfterProp:h,anchor:g,tag:m,end:M,start:b??M}}Op.resolveProps=rw});var ji=p(Rp=>{"use strict";function ka(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(` -`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(ka(e.key)||ka(e.value))return!0}return!1;default:return!0}}Rp.containsNewline=ka});var Pa=p(Cp=>{"use strict";var iw=ji();function sw(n,e,t){if(e?.type==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&iw.containsNewline(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Cp.flowIndentCheck=sw});var $a=p(Pp=>{"use strict";var kp=W();function ow(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let i=typeof r=="function"?r:(s,o)=>s===o||kp.isScalar(s)&&kp.isScalar(o)&&s.value===o.value&&!(s.value==="<<"&&n.schema.merge);return e.some(s=>i(s.key,t))}Pp.mapIncludes=ow});var Fp=p(Dp=>{"use strict";var $p=lt(),aw=ut(),qp=Hn(),lw=ji(),xp=Pa(),cw=$a(),Mp="All mapping items must start at the same column";function uw({composeNode:n,composeEmptyNode:e},t,r,i,s){let o=s?.nodeClass??aw.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let l=r.offset,c=null;for(let u of r.items){let{start:f,key:_,sep:h,value:T}=u,g=qp.resolveProps(f,{indicator:"explicit-key-ind",next:_??h?.[0],offset:l,onError:i,startOnNewline:!0}),m=!g.found;if(m){if(_&&(_.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in _&&_.indent!==r.indent&&i(l,"BAD_INDENT",Mp)),!g.anchor&&!g.tag&&!h){c=g.end,g.comment&&(a.comment?a.comment+=` -`+g.comment:a.comment=g.comment);continue}(g.hasNewlineAfterProp||lw.containsNewline(_))&&i(_??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else g.found?.indent!==r.indent&&i(l,"BAD_INDENT",Mp);let A=g.end,w=_?n(t,_,g,i):e(t,A,f,null,g,i);t.schema.compat&&xp.flowIndentCheck(r.indent,_,i),cw.mapIncludes(t,a.items,w)&&i(A,"DUPLICATE_KEY","Map keys must be unique");let b=qp.resolveProps(h??[],{indicator:"map-value-ind",next:T,offset:w.range[2],onError:i,startOnNewline:!_||_.type==="block-scalar"});if(l=b.end,b.found){m&&(T?.type==="block-map"&&!b.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&g.start{"use strict";var fw=ft(),hw=Hn(),dw=Pa();function _w({composeNode:n,composeEmptyNode:e},t,r,i,s){let o=s?.nodeClass??fw.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let l=r.offset,c=null;for(let{start:u,value:f}of r.items){let _=hw.resolveProps(u,{indicator:"seq-item-ind",next:f,offset:l,onError:i,startOnNewline:!0});if(!_.found)if(_.anchor||_.tag||f)f&&f.type==="block-seq"?i(_.end,"BAD_INDENT","All sequence items must start at the same column"):i(l,"MISSING_CHAR","Sequence item without - indicator");else{c=_.end,_.comment&&(a.comment=_.comment);continue}let h=f?n(t,f,_,i):e(t,_.end,u,null,_,i);t.schema.compat&&dw.flowIndentCheck(r.indent,f,i),l=h.range[2],a.items.push(h)}return a.range=[r.offset,l,c??l],a}jp.resolveBlockSeq=_w});var Vt=p(Bp=>{"use strict";function pw(n,e,t,r){let i="";if(n){let s=!1,o="";for(let a of n){let{source:l,type:c}=a;switch(c){case"space":s=!0;break;case"comment":{t&&!s&&r(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let u=l.substring(1)||" ";i?i+=o+u:i=u,o="";break}case"newline":i&&(o+=l),s=!0;break;default:r(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:i,offset:e}}Bp.resolveEnd=pw});var Gp=p(Wp=>{"use strict";var mw=W(),gw=lt(),Up=ut(),yw=ft(),Ew=Vt(),Vp=Hn(),Tw=ji(),Lw=$a(),qa="Block collections are not allowed within flow collections",xa=n=>n&&(n.type==="block-map"||n.type==="block-seq");function Sw({composeNode:n,composeEmptyNode:e},t,r,i,s){let o=r.start.source==="{",a=o?"flow map":"flow sequence",l=s?.nodeClass??(o?Up.YAMLMap:yw.YAMLSeq),c=new l(t.schema);c.flow=!0;let u=t.atRoot;u&&(t.atRoot=!1);let f=r.offset+r.start.source.length;for(let m=0;m0){let m=Ew.resolveEnd(T,g,t.options.strict,i);m.comment&&(c.comment?c.comment+=` -`+m.comment:c.comment=m.comment),c.range=[r.offset,g,m.offset]}else c.range=[r.offset,g,g];return c}Wp.resolveFlowCollection=Sw});var Yp=p(Kp=>{"use strict";var Aw=W(),Iw=ce(),ww=ut(),vw=ft(),bw=Fp(),Nw=Hp(),Ow=Gp();function Ma(n,e,t,r,i,s){let o=t.type==="block-map"?bw.resolveBlockMap(n,e,t,r,s):t.type==="block-seq"?Nw.resolveBlockSeq(n,e,t,r,s):Ow.resolveFlowCollection(n,e,t,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function Rw(n,e,t,r,i){let s=r?e.directives.tagName(r.source,f=>i(r,"TAG_RESOLVE_FAILED",f)):null,o=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!r||!s||s==="!"||s===ww.YAMLMap.tagName&&o==="map"||s===vw.YAMLSeq.tagName&&o==="seq"||!o)return Ma(n,e,t,i,s);let a=e.schema.tags.find(f=>f.tag===s&&f.collection===o);if(!a){let f=e.schema.knownTags[s];if(f&&f.collection===o)e.schema.tags.push(Object.assign({},f,{default:!1})),a=f;else return f?.collection?i(r,"BAD_COLLECTION_TYPE",`${f.tag} used for ${o} collection, but expects ${f.collection}`,!0):i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${s}`,!0),Ma(n,e,t,i,s)}let l=Ma(n,e,t,i,s,a),c=a.resolve?.(l,f=>i(r,"TAG_RESOLVE_FAILED",f),e.options)??l,u=Aw.isNode(c)?c:new Iw.Scalar(c);return u.range=l.range,u.tag=s,a?.format&&(u.format=a.format),u}Kp.composeCollection=Rw});var Fa=p(Jp=>{"use strict";var Da=ce();function Cw(n,e,t){let r=n.offset,i=kw(n,e,t);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};let s=i.mode===">"?Da.Scalar.BLOCK_FOLDED:Da.Scalar.BLOCK_LITERAL,o=n.source?Pw(n.source):[],a=o.length;for(let g=o.length-1;g>=0;--g){let m=o[g][1];if(m===""||m==="\r")a=g;else break}if(a===0){let g=i.chomp==="+"&&o.length>0?` -`.repeat(Math.max(1,o.length-1)):"",m=r+i.length;return n.source&&(m+=n.source.length),{value:g,type:s,comment:i.comment,range:[r,m,m]}}let l=n.indent+i.indent,c=n.offset+i.length,u=0;for(let g=0;gl&&(l=m.length);else{if(m.length=a;--g)o[g][0].length>l&&(a=g+1);let f="",_="",h=!1;for(let g=0;gl||A[0]===" "?(_===" "?_=` -`:!h&&_===` -`&&(_=` +`}};Wn.YAMLError=Vn;Wn.YAMLParseError=Fa;Wn.YAMLWarning=Da;Wn.prettifyError=dw});var Kn=_(x_=>{"use strict";function pw(n,{flow:e,indicator:t,next:r,offset:i,onError:s,startOnNewline:o}){let a=!1,l=o,c=o,u="",f="",d=!1,h=!1,y=!1,g=null,m=null,A=null,w=null,b=null;for(let v of n)switch(y&&(v.type!=="space"&&v.type!=="newline"&&v.type!=="comma"&&s(v.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),v.type){case"space":!e&&l&&t!=="doc-start"&&v.source[0]===" "&&s(v,"TAB_AS_INDENT","Tabs are not allowed as indentation"),c=!0;break;case"comment":{c||s(v,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let V=v.source.substring(1)||" ";u?u+=f+V:u=V,f="",l=!1;break}case"newline":l?u?u+=v.source:a=!0:f+=v.source,l=!0,d=!0,(g||m)&&(h=!0),c=!0;break;case"anchor":g&&s(v,"MULTIPLE_ANCHORS","A node can have at most one anchor"),v.source.endsWith(":")&&s(v.offset+v.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=v,b===null&&(b=v.offset),l=!1,c=!1,y=!0;break;case"tag":{m&&s(v,"MULTIPLE_TAGS","A node can have at most one tag"),m=v,b===null&&(b=v.offset),l=!1,c=!1,y=!0;break}case t:(g||m)&&s(v,"BAD_PROP_ORDER",`Anchors and tags must be after the ${v.source} indicator`),w&&s(v,"UNEXPECTED_TOKEN",`Unexpected ${v.source} in ${e??"collection"}`),w=v,l=!1,c=!1;break;case"comma":if(e){A&&s(v,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),A=v,l=!1,c=!1;break}default:s(v,"UNEXPECTED_TOKEN",`Unexpected ${v.type} token`),l=!1,c=!1}let $=n[n.length-1],M=$?$.offset+$.source.length:i;return y&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),{comma:A,found:w,spaceBefore:a,comment:u,hasNewline:d,hasNewlineAfterProp:h,anchor:g,tag:m,end:M,start:b??M}}x_.resolveProps=pw});var Ki=_(M_=>{"use strict";function ja(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(` +`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(ja(e.key)||ja(e.value))return!0}return!1;default:return!0}}M_.containsNewline=ja});var Ha=_(F_=>{"use strict";var _w=Ki();function mw(n,e,t){if(e?.type==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&_w.containsNewline(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}F_.flowIndentCheck=mw});var Ba=_(j_=>{"use strict";var D_=W();function gw(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let i=typeof r=="function"?r:(s,o)=>s===o||D_.isScalar(s)&&D_.isScalar(o)&&s.value===o.value&&!(s.value==="<<"&&n.schema.merge);return e.some(s=>i(s.key,t))}j_.mapIncludes=gw});var G_=_(W_=>{"use strict";var H_=ht(),yw=pt(),B_=Kn(),Ew=Ki(),U_=Ha(),Tw=Ba(),V_="All mapping items must start at the same column";function Lw({composeNode:n,composeEmptyNode:e},t,r,i,s){let o=s?.nodeClass??yw.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let l=r.offset,c=null;for(let u of r.items){let{start:f,key:d,sep:h,value:y}=u,g=B_.resolveProps(f,{indicator:"explicit-key-ind",next:d??h?.[0],offset:l,onError:i,startOnNewline:!0}),m=!g.found;if(m){if(d&&(d.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==r.indent&&i(l,"BAD_INDENT",V_)),!g.anchor&&!g.tag&&!h){c=g.end,g.comment&&(a.comment?a.comment+=` +`+g.comment:a.comment=g.comment);continue}(g.hasNewlineAfterProp||Ew.containsNewline(d))&&i(d??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else g.found?.indent!==r.indent&&i(l,"BAD_INDENT",V_);let A=g.end,w=d?n(t,d,g,i):e(t,A,f,null,g,i);t.schema.compat&&U_.flowIndentCheck(r.indent,d,i),Tw.mapIncludes(t,a.items,w)&&i(A,"DUPLICATE_KEY","Map keys must be unique");let b=B_.resolveProps(h??[],{indicator:"map-value-ind",next:y,offset:w.range[2],onError:i,startOnNewline:!d||d.type==="block-scalar"});if(l=b.end,b.found){m&&(y?.type==="block-map"&&!b.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&g.start{"use strict";var Sw=_t(),Aw=Kn(),Iw=Ha();function ww({composeNode:n,composeEmptyNode:e},t,r,i,s){let o=s?.nodeClass??Sw.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let l=r.offset,c=null;for(let{start:u,value:f}of r.items){let d=Aw.resolveProps(u,{indicator:"seq-item-ind",next:f,offset:l,onError:i,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||f)f&&f.type==="block-seq"?i(d.end,"BAD_INDENT","All sequence items must start at the same column"):i(l,"MISSING_CHAR","Sequence item without - indicator");else{c=d.end,d.comment&&(a.comment=d.comment);continue}let h=f?n(t,f,d,i):e(t,d.end,u,null,d,i);t.schema.compat&&Iw.flowIndentCheck(r.indent,f,i),l=h.range[2],a.items.push(h)}return a.range=[r.offset,l,c??l],a}K_.resolveBlockSeq=ww});var Yt=_(J_=>{"use strict";function vw(n,e,t,r){let i="";if(n){let s=!1,o="";for(let a of n){let{source:l,type:c}=a;switch(c){case"space":s=!0;break;case"comment":{t&&!s&&r(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let u=l.substring(1)||" ";i?i+=o+u:i=u,o="";break}case"newline":i&&(o+=l),s=!0;break;default:r(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:i,offset:e}}J_.resolveEnd=vw});var Z_=_(Q_=>{"use strict";var bw=W(),Nw=ht(),X_=pt(),Ow=_t(),Rw=Yt(),z_=Kn(),Cw=Ki(),kw=Ba(),Ua="Block collections are not allowed within flow collections",Va=n=>n&&(n.type==="block-map"||n.type==="block-seq");function Pw({composeNode:n,composeEmptyNode:e},t,r,i,s){let o=r.start.source==="{",a=o?"flow map":"flow sequence",l=s?.nodeClass??(o?X_.YAMLMap:Ow.YAMLSeq),c=new l(t.schema);c.flow=!0;let u=t.atRoot;u&&(t.atRoot=!1);let f=r.offset+r.start.source.length;for(let m=0;m0){let m=Rw.resolveEnd(y,g,t.options.strict,i);m.comment&&(c.comment?c.comment+=` +`+m.comment:c.comment=m.comment),c.range=[r.offset,g,m.offset]}else c.range=[r.offset,g,g];return c}Q_.resolveFlowCollection=Pw});var tm=_(em=>{"use strict";var $w=W(),qw=ce(),xw=pt(),Mw=_t(),Fw=G_(),Dw=Y_(),jw=Z_();function Wa(n,e,t,r,i,s){let o=t.type==="block-map"?Fw.resolveBlockMap(n,e,t,r,s):t.type==="block-seq"?Dw.resolveBlockSeq(n,e,t,r,s):jw.resolveFlowCollection(n,e,t,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function Hw(n,e,t,r,i){let s=r?e.directives.tagName(r.source,f=>i(r,"TAG_RESOLVE_FAILED",f)):null,o=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!r||!s||s==="!"||s===xw.YAMLMap.tagName&&o==="map"||s===Mw.YAMLSeq.tagName&&o==="seq"||!o)return Wa(n,e,t,i,s);let a=e.schema.tags.find(f=>f.tag===s&&f.collection===o);if(!a){let f=e.schema.knownTags[s];if(f&&f.collection===o)e.schema.tags.push(Object.assign({},f,{default:!1})),a=f;else return f?.collection?i(r,"BAD_COLLECTION_TYPE",`${f.tag} used for ${o} collection, but expects ${f.collection}`,!0):i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${s}`,!0),Wa(n,e,t,i,s)}let l=Wa(n,e,t,i,s,a),c=a.resolve?.(l,f=>i(r,"TAG_RESOLVE_FAILED",f),e.options)??l,u=$w.isNode(c)?c:new qw.Scalar(c);return u.range=l.range,u.tag=s,a?.format&&(u.format=a.format),u}em.composeCollection=Hw});var Ka=_(nm=>{"use strict";var Ga=ce();function Bw(n,e,t){let r=n.offset,i=Uw(n,e,t);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};let s=i.mode===">"?Ga.Scalar.BLOCK_FOLDED:Ga.Scalar.BLOCK_LITERAL,o=n.source?Vw(n.source):[],a=o.length;for(let g=o.length-1;g>=0;--g){let m=o[g][1];if(m===""||m==="\r")a=g;else break}if(a===0){let g=i.chomp==="+"&&o.length>0?` +`.repeat(Math.max(1,o.length-1)):"",m=r+i.length;return n.source&&(m+=n.source.length),{value:g,type:s,comment:i.comment,range:[r,m,m]}}let l=n.indent+i.indent,c=n.offset+i.length,u=0;for(let g=0;gl&&(l=m.length);else{if(m.length=a;--g)o[g][0].length>l&&(a=g+1);let f="",d="",h=!1;for(let g=0;gl||A[0]===" "?(d===" "?d=` +`:!h&&d===` +`&&(d=` -`),f+=_+m.slice(l)+A,_=` -`,h=!0):A===""?_===` +`),f+=d+m.slice(l)+A,d=` +`,h=!0):A===""?d===` `?f+=` -`:_=` -`:(f+=_+A,_=" ",h=!1)}switch(i.chomp){case"-":break;case"+":for(let g=a;g{"use strict";var ja=ce(),$w=Vt();function qw(n,e,t){let{offset:r,type:i,source:s,end:o}=n,a,l,c=(_,h,T)=>t(r+_,h,T);switch(i){case"scalar":a=ja.Scalar.PLAIN,l=xw(s,c);break;case"single-quoted-scalar":a=ja.Scalar.QUOTE_SINGLE,l=Mw(s,c);break;case"double-quoted-scalar":a=ja.Scalar.QUOTE_DOUBLE,l=Dw(s,c);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}let u=r+s.length,f=$w.resolveEnd(o,u,e,t);return{value:l,type:a,comment:f.comment,range:[r,u,f.offset]}}function xw(n,e){let t="";switch(n[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),Xp(n)}function Mw(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),Xp(n.slice(1,-1)).replace(/''/g,"'")}function Xp(n){let e,t;try{e=new RegExp(`(.*?)(?{"use strict";var Ya=ce(),Ww=Yt();function Gw(n,e,t){let{offset:r,type:i,source:s,end:o}=n,a,l,c=(d,h,y)=>t(r+d,h,y);switch(i){case"scalar":a=Ya.Scalar.PLAIN,l=Kw(s,c);break;case"single-quoted-scalar":a=Ya.Scalar.QUOTE_SINGLE,l=Yw(s,c);break;case"double-quoted-scalar":a=Ya.Scalar.QUOTE_DOUBLE,l=Jw(s,c);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}let u=r+s.length,f=Ww.resolveEnd(o,u,e,t);return{value:l,type:a,comment:f.comment,range:[r,u,f.offset]}}function Kw(n,e){let t="";switch(n[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),rm(n)}function Yw(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),rm(n.slice(1,-1)).replace(/''/g,"'")}function rm(n){let e,t;try{e=new RegExp(`(.*?)(?s?n.slice(s,r+1):i)}else t+=i}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function Fw(n,e){let t="",r=n[e+1];for(;(r===" "||r===" "||r===` +`)&&(t+=r>s?n.slice(s,r+1):i)}else t+=i}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function Xw(n,e){let t="",r=n[e+1];for(;(r===" "||r===" "||r===` `||r==="\r")&&!(r==="\r"&&n[e+2]!==` `);)r===` `&&(t+=` -`),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var jw={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` -`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Hw(n,e,t,r){let i=n.substr(e,t),o=i.length===t&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(o)){let a=n.substr(e-2,t+2);return r(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}zp.resolveFlowScalar=qw});var em=p(Zp=>{"use strict";var Wt=W(),Qp=ce(),Bw=Fa(),Uw=Ha();function Vw(n,e,t,r){let{value:i,type:s,comment:o,range:a}=e.type==="block-scalar"?Bw.resolveBlockScalar(e,n.options.strict,r):Uw.resolveFlowScalar(e,n.options.strict,r),l=t?n.directives.tagName(t.source,f=>r(t,"TAG_RESOLVE_FAILED",f)):null,c=t&&l?Ww(n.schema,i,l,t,r):e.type==="scalar"?Gw(n,i,e,r):n.schema[Wt.SCALAR],u;try{let f=c.resolve(i,_=>r(t??e,"TAG_RESOLVE_FAILED",_),n.options);u=Wt.isScalar(f)?f:new Qp.Scalar(f)}catch(f){let _=f instanceof Error?f.message:String(f);r(t??e,"TAG_RESOLVE_FAILED",_),u=new Qp.Scalar(i)}return u.range=a,u.source=i,s&&(u.type=s),l&&(u.tag=l),c.format&&(u.format=c.format),o&&(u.comment=o),u}function Ww(n,e,t,r,i){if(t==="!")return n[Wt.SCALAR];let s=[];for(let a of n.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)s.push(a);else return a;for(let a of s)if(a.test?.test(e))return a;let o=n.knownTags[t];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[Wt.SCALAR])}function Gw({directives:n,schema:e},t,r,i){let s=e.tags.find(o=>o.default&&o.test?.test(t))||e[Wt.SCALAR];if(e.compat){let o=e.compat.find(a=>a.default&&a.test?.test(t))??e[Wt.SCALAR];if(s.tag!==o.tag){let a=n.tagString(s.tag),l=n.tagString(o.tag),c=`Value may be parsed as either ${a} or ${l}`;i(r,"TAG_RESOLVE_FAILED",c,!0)}}return s}Zp.composeScalar=Vw});var nm=p(tm=>{"use strict";function Kw(n,e,t){if(e){t===null&&(t=e.length);for(let r=t-1;r>=0;--r){let i=e[r];switch(i.type){case"space":case"comment":case"newline":n-=i.source.length;continue}for(i=e[++r];i?.type==="space";)n+=i.source.length,i=e[++r];break}}return n}tm.emptyScalarPosition=Kw});var sm=p(Ua=>{"use strict";var Yw=Ln(),Jw=Yp(),rm=em(),Xw=Vt(),zw=nm(),Qw={composeNode:im,composeEmptyNode:Ba};function im(n,e,t,r){let{spaceBefore:i,comment:s,anchor:o,tag:a}=t,l,c=!0;switch(e.type){case"alias":l=Zw(n,e,r),(o||a)&&r(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=rm.composeScalar(n,e,a,r),o&&(l.anchor=o.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Jw.composeCollection(Qw,n,e,a,r),o&&(l.anchor=o.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;r(e,"UNEXPECTED_TOKEN",u),l=Ba(n,e.offset,void 0,null,t,r),c=!1}}return o&&l.anchor===""&&r(o,"BAD_ALIAS","Anchor cannot be an empty string"),i&&(l.spaceBefore=!0),s&&(e.type==="scalar"&&e.source===""?l.comment=s:l.commentBefore=s),n.options.keepSourceTokens&&c&&(l.srcToken=e),l}function Ba(n,e,t,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){let u={type:"scalar",offset:zw.emptyScalarPosition(e,t,r),indent:-1,source:""},f=rm.composeScalar(n,u,a,c);return o&&(f.anchor=o.source.substring(1),f.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(f.spaceBefore=!0),s&&(f.comment=s,f.range[2]=l),f}function Zw({options:n},{offset:e,source:t,end:r},i){let s=new Yw.Alias(t.substring(1));s.source===""&&i(e,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Xw.resolveEnd(r,o,n.strict,i);return s.range=[e,o,a.offset],a.comment&&(s.comment=a.comment),s}Ua.composeEmptyNode=Ba;Ua.composeNode=im});var lm=p(am=>{"use strict";var ev=Mn(),om=sm(),tv=Vt(),nv=Hn();function rv(n,e,{offset:t,start:r,value:i,end:s},o){let a=Object.assign({_directives:e},n),l=new ev.Document(void 0,a),c={atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},u=nv.resolveProps(r,{indicator:"doc-start",next:i??s?.[0],offset:t,onError:o,startOnNewline:!0});u.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!u.hasNewline&&o(u.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?om.composeNode(c,i,u,o):om.composeEmptyNode(c,u.end,r,null,u,o);let f=l.contents.range[2],_=tv.resolveEnd(s,f,!1,o);return _.comment&&(l.comment=_.comment),l.range=[t,f,_.offset],l}am.composeDoc=rv});var Wa=p(fm=>{"use strict";var iv=Co(),sv=Mn(),Bn=jn(),cm=W(),ov=lm(),av=Vt();function Un(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function um(n){let e="",t=!1,r=!1;for(let i=0;i{"use strict";var Jt=W(),sm=ce(),Zw=Ka(),ev=Ja();function tv(n,e,t,r){let{value:i,type:s,comment:o,range:a}=e.type==="block-scalar"?Zw.resolveBlockScalar(e,n.options.strict,r):ev.resolveFlowScalar(e,n.options.strict,r),l=t?n.directives.tagName(t.source,f=>r(t,"TAG_RESOLVE_FAILED",f)):null,c=t&&l?nv(n.schema,i,l,t,r):e.type==="scalar"?rv(n,i,e,r):n.schema[Jt.SCALAR],u;try{let f=c.resolve(i,d=>r(t??e,"TAG_RESOLVE_FAILED",d),n.options);u=Jt.isScalar(f)?f:new sm.Scalar(f)}catch(f){let d=f instanceof Error?f.message:String(f);r(t??e,"TAG_RESOLVE_FAILED",d),u=new sm.Scalar(i)}return u.range=a,u.source=i,s&&(u.type=s),l&&(u.tag=l),c.format&&(u.format=c.format),o&&(u.comment=o),u}function nv(n,e,t,r,i){if(t==="!")return n[Jt.SCALAR];let s=[];for(let a of n.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)s.push(a);else return a;for(let a of s)if(a.test?.test(e))return a;let o=n.knownTags[t];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[Jt.SCALAR])}function rv({directives:n,schema:e},t,r,i){let s=e.tags.find(o=>o.default&&o.test?.test(t))||e[Jt.SCALAR];if(e.compat){let o=e.compat.find(a=>a.default&&a.test?.test(t))??e[Jt.SCALAR];if(s.tag!==o.tag){let a=n.tagString(s.tag),l=n.tagString(o.tag),c=`Value may be parsed as either ${a} or ${l}`;i(r,"TAG_RESOLVE_FAILED",c,!0)}}return s}om.composeScalar=tv});var cm=_(lm=>{"use strict";function iv(n,e,t){if(e){t===null&&(t=e.length);for(let r=t-1;r>=0;--r){let i=e[r];switch(i.type){case"space":case"comment":case"newline":n-=i.source.length;continue}for(i=e[++r];i?.type==="space";)n+=i.source.length,i=e[++r];break}}return n}lm.emptyScalarPosition=iv});var hm=_(za=>{"use strict";var sv=bn(),ov=tm(),um=am(),av=Yt(),lv=cm(),cv={composeNode:fm,composeEmptyNode:Xa};function fm(n,e,t,r){let{spaceBefore:i,comment:s,anchor:o,tag:a}=t,l,c=!0;switch(e.type){case"alias":l=uv(n,e,r),(o||a)&&r(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=um.composeScalar(n,e,a,r),o&&(l.anchor=o.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=ov.composeCollection(cv,n,e,a,r),o&&(l.anchor=o.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;r(e,"UNEXPECTED_TOKEN",u),l=Xa(n,e.offset,void 0,null,t,r),c=!1}}return o&&l.anchor===""&&r(o,"BAD_ALIAS","Anchor cannot be an empty string"),i&&(l.spaceBefore=!0),s&&(e.type==="scalar"&&e.source===""?l.comment=s:l.commentBefore=s),n.options.keepSourceTokens&&c&&(l.srcToken=e),l}function Xa(n,e,t,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){let u={type:"scalar",offset:lv.emptyScalarPosition(e,t,r),indent:-1,source:""},f=um.composeScalar(n,u,a,c);return o&&(f.anchor=o.source.substring(1),f.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(f.spaceBefore=!0),s&&(f.comment=s,f.range[2]=l),f}function uv({options:n},{offset:e,source:t,end:r},i){let s=new sv.Alias(t.substring(1));s.source===""&&i(e,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=av.resolveEnd(r,o,n.strict,i);return s.range=[e,o,a.offset],a.comment&&(s.comment=a.comment),s}za.composeEmptyNode=Xa;za.composeNode=fm});var _m=_(pm=>{"use strict";var fv=Un(),dm=hm(),hv=Yt(),dv=Kn();function pv(n,e,{offset:t,start:r,value:i,end:s},o){let a=Object.assign({_directives:e},n),l=new fv.Document(void 0,a),c={atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},u=dv.resolveProps(r,{indicator:"doc-start",next:i??s?.[0],offset:t,onError:o,startOnNewline:!0});u.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!u.hasNewline&&o(u.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?dm.composeNode(c,i,u,o):dm.composeEmptyNode(c,u.end,r,null,u,o);let f=l.contents.range[2],d=hv.resolveEnd(s,f,!1,o);return d.comment&&(l.comment=d.comment),l.range=[t,f,d.offset],l}pm.composeDoc=pv});var Za=_(ym=>{"use strict";var _v=Do(),mv=Un(),Yn=Gn(),mm=W(),gv=_m(),yv=Yt();function Jn(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function gm(n){let e="",t=!1,r=!1;for(let i=0;i{let o=Un(t);s?this.warnings.push(new Bn.YAMLWarning(o,r,i)):this.errors.push(new Bn.YAMLParseError(o,r,i))},this.directives=new iv.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:i}=um(this.prelude);if(r){let s=e.contents;if(t)e.comment=e.comment?`${e.comment} -${r}`:r;else if(i||e.directives.docStart||!s)e.commentBefore=r;else if(cm.isCollection(s)&&!s.flow&&s.items.length>0){let o=s.items[0];cm.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${r} +`)+(s.substring(1)||" "),t=!0,r=!1;break;case"%":n[i+1]?.[0]!=="#"&&(i+=1),t=!1;break;default:t||(r=!0),t=!1}}return{comment:e,afterEmptyLine:r}}var Qa=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,r,i,s)=>{let o=Jn(t);s?this.warnings.push(new Yn.YAMLWarning(o,r,i)):this.errors.push(new Yn.YAMLParseError(o,r,i))},this.directives=new _v.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:i}=gm(this.prelude);if(r){let s=e.contents;if(t)e.comment=e.comment?`${e.comment} +${r}`:r;else if(i||e.directives.docStart||!s)e.commentBefore=r;else if(mm.isCollection(s)&&!s.flow&&s.items.length>0){let o=s.items[0];mm.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${r} ${a}`:r}else{let o=s.commentBefore;s.commentBefore=o?`${r} -${o}`:r}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:um(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,r=-1){for(let i of e)yield*this.next(i);yield*this.end(t,r)}*next(e){switch(process.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,r,i)=>{let s=Un(e);s[0]+=t,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=ov.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,r=new Bn.YAMLParseError(Un(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){let r="Unexpected doc-end without preceding document";this.errors.push(new Bn.YAMLParseError(Un(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=av.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let r=this.doc.comment;this.doc.comment=r?`${r} -${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Bn.YAMLParseError(Un(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let r=Object.assign({_directives:this.directives},this.options),i=new sv.Document(void 0,r);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,t,t],this.decorate(i,!1),yield i}}};fm.Composer=Va});var _m=p(Hi=>{"use strict";var lv=Fa(),cv=Ha(),uv=jn(),hm=bn();function fv(n,e=!0,t){if(n){let r=(i,s,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(t)t(a,s,o);else throw new uv.YAMLParseError([a,a+1],s,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return cv.resolveFlowScalar(n,e,r);case"block-scalar":return lv.resolveBlockScalar(n,e,r)}}return null}function hv(n,e){let{implicitKey:t=!1,indent:r,inFlow:i=!1,offset:s=-1,type:o="PLAIN"}=e,a=hm.stringifyString({type:o,value:n},{implicitKey:t,indent:r>0?" ".repeat(r):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:r,source:` +${o}`:r}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:gm(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,r=-1){for(let i of e)yield*this.next(i);yield*this.end(t,r)}*next(e){switch(process.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,r,i)=>{let s=Jn(e);s[0]+=t,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=gv.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,r=new Yn.YAMLParseError(Jn(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){let r="Unexpected doc-end without preceding document";this.errors.push(new Yn.YAMLParseError(Jn(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=yv.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let r=this.doc.comment;this.doc.comment=r?`${r} +${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Yn.YAMLParseError(Jn(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let r=Object.assign({_directives:this.directives},this.options),i=new mv.Document(void 0,r);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,t,t],this.decorate(i,!1),yield i}}};ym.Composer=Qa});var Lm=_(Yi=>{"use strict";var Ev=Ka(),Tv=Ja(),Lv=Gn(),Em=Pn();function Sv(n,e=!0,t){if(n){let r=(i,s,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(t)t(a,s,o);else throw new Lv.YAMLParseError([a,a+1],s,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Tv.resolveFlowScalar(n,e,r);case"block-scalar":return Ev.resolveBlockScalar(n,e,r)}}return null}function Av(n,e){let{implicitKey:t=!1,indent:r,inFlow:i=!1,offset:s=-1,type:o="PLAIN"}=e,a=Em.stringifyString({type:o,value:n},{implicitKey:t,indent:r>0?" ".repeat(r):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:r,source:` `}];switch(a[0]){case"|":case">":{let c=a.indexOf(` `),u=a.substring(0,c),f=a.substring(c+1)+` -`,_=[{type:"block-scalar-header",offset:s,indent:r,source:u}];return dm(_,l)||_.push({type:"newline",offset:-1,indent:r,source:` -`}),{type:"block-scalar",offset:s,indent:r,props:_,source:f}}case'"':return{type:"double-quoted-scalar",offset:s,indent:r,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:s,indent:r,source:a,end:l};default:return{type:"scalar",offset:s,indent:r,source:a,end:l}}}function dv(n,e,t={}){let{afterKey:r=!1,implicitKey:i=!1,inFlow:s=!1,type:o}=t,a="indent"in n?n.indent:null;if(r&&typeof a=="number"&&(a+=2),!o)switch(n.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=n.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let l=hm.stringifyString({type:o,value:e},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":_v(n,l);break;case'"':Ga(n,l,"double-quoted-scalar");break;case"'":Ga(n,l,"single-quoted-scalar");break;default:Ga(n,l,"scalar")}}function _v(n,e){let t=e.indexOf(` +`,d=[{type:"block-scalar-header",offset:s,indent:r,source:u}];return Tm(d,l)||d.push({type:"newline",offset:-1,indent:r,source:` +`}),{type:"block-scalar",offset:s,indent:r,props:d,source:f}}case'"':return{type:"double-quoted-scalar",offset:s,indent:r,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:s,indent:r,source:a,end:l};default:return{type:"scalar",offset:s,indent:r,source:a,end:l}}}function Iv(n,e,t={}){let{afterKey:r=!1,implicitKey:i=!1,inFlow:s=!1,type:o}=t,a="indent"in n?n.indent:null;if(r&&typeof a=="number"&&(a+=2),!o)switch(n.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=n.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let l=Em.stringifyString({type:o,value:e},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":wv(n,l);break;case'"':el(n,l,"double-quoted-scalar");break;case"'":el(n,l,"single-quoted-scalar");break;default:el(n,l,"scalar")}}function wv(n,e){let t=e.indexOf(` `),r=e.substring(0,t),i=e.substring(t+1)+` -`;if(n.type==="block-scalar"){let s=n.props[0];if(s.type!=="block-scalar-header")throw new Error("Invalid block scalar header");s.source=r,n.source=i}else{let{offset:s}=n,o="indent"in n?n.indent:-1,a=[{type:"block-scalar-header",offset:s,indent:o,source:r}];dm(a,"end"in n?n.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:` -`});for(let l of Object.keys(n))l!=="type"&&l!=="offset"&&delete n[l];Object.assign(n,{type:"block-scalar",indent:o,props:a,source:i})}}function dm(n,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":n.push(t);break;case"newline":return n.push(t),!0}return!1}function Ga(n,e,t){switch(n.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":n.type=t,n.source=e;break;case"block-scalar":{let r=n.props.slice(1),i=e.length;n.props[0].type==="block-scalar-header"&&(i-=n.props[0].source.length);for(let s of r)s.offset+=i;delete n.props,Object.assign(n,{type:t,source:e,end:r});break}case"block-map":case"block-seq":{let i={type:"newline",offset:n.offset+e.length,indent:n.indent,source:` -`};delete n.items,Object.assign(n,{type:t,source:e,end:[i]});break}default:{let r="indent"in n?n.indent:-1,i="end"in n&&Array.isArray(n.end)?n.end.filter(s=>s.type==="space"||s.type==="comment"||s.type==="newline"):[];for(let s of Object.keys(n))s!=="type"&&s!=="offset"&&delete n[s];Object.assign(n,{type:t,indent:r,source:e,end:i})}}}Hi.createScalarToken=hv;Hi.resolveAsScalar=fv;Hi.setScalarValue=dv});var mm=p(pm=>{"use strict";var pv=n=>"type"in n?Ui(n):Bi(n);function Ui(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=Ui(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=Bi(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=Bi(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=Bi(n);if(n.end)for(let t of n.end)e+=t.source;return e}default:{let e=n.source;if("end"in n&&n.end)for(let t of n.end)e+=t.source;return e}}}function Bi({start:n,key:e,sep:t,value:r}){let i="";for(let s of n)i+=s.source;if(e&&(i+=Ui(e)),t)for(let s of t)i+=s.source;return r&&(i+=Ui(r)),i}pm.stringify=pv});var Tm=p(Em=>{"use strict";var Ka=Symbol("break visit"),mv=Symbol("skip children"),gm=Symbol("remove item");function St(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),ym(Object.freeze([]),n,e)}St.BREAK=Ka;St.SKIP=mv;St.REMOVE=gm;St.itemAtPath=(n,e)=>{let t=n;for(let[r,i]of e){let s=t?.[r];if(s&&"items"in s)t=s.items[i];else return}return t};St.parentCollection=(n,e)=>{let t=St.itemAtPath(n,e.slice(0,-1)),r=e[e.length-1][0],i=t?.[r];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function ym(n,e,t){let r=t(e,n);if(typeof r=="symbol")return r;for(let i of["key","value"]){let s=e[i];if(s&&"items"in s){for(let o=0;o{"use strict";var Ya=_m(),gv=mm(),yv=Tm(),Ja="\uFEFF",Xa="",za="",Qa="",Ev=n=>!!n&&"items"in n,Tv=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function Lv(n){switch(n){case Ja:return"";case Xa:return"";case za:return"";case Qa:return"";default:return JSON.stringify(n)}}function Sv(n){switch(n){case Ja:return"byte-order-mark";case Xa:return"doc-mode";case za:return"flow-error-end";case Qa:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` +`;if(n.type==="block-scalar"){let s=n.props[0];if(s.type!=="block-scalar-header")throw new Error("Invalid block scalar header");s.source=r,n.source=i}else{let{offset:s}=n,o="indent"in n?n.indent:-1,a=[{type:"block-scalar-header",offset:s,indent:o,source:r}];Tm(a,"end"in n?n.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:` +`});for(let l of Object.keys(n))l!=="type"&&l!=="offset"&&delete n[l];Object.assign(n,{type:"block-scalar",indent:o,props:a,source:i})}}function Tm(n,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":n.push(t);break;case"newline":return n.push(t),!0}return!1}function el(n,e,t){switch(n.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":n.type=t,n.source=e;break;case"block-scalar":{let r=n.props.slice(1),i=e.length;n.props[0].type==="block-scalar-header"&&(i-=n.props[0].source.length);for(let s of r)s.offset+=i;delete n.props,Object.assign(n,{type:t,source:e,end:r});break}case"block-map":case"block-seq":{let i={type:"newline",offset:n.offset+e.length,indent:n.indent,source:` +`};delete n.items,Object.assign(n,{type:t,source:e,end:[i]});break}default:{let r="indent"in n?n.indent:-1,i="end"in n&&Array.isArray(n.end)?n.end.filter(s=>s.type==="space"||s.type==="comment"||s.type==="newline"):[];for(let s of Object.keys(n))s!=="type"&&s!=="offset"&&delete n[s];Object.assign(n,{type:t,indent:r,source:e,end:i})}}}Yi.createScalarToken=Av;Yi.resolveAsScalar=Sv;Yi.setScalarValue=Iv});var Am=_(Sm=>{"use strict";var vv=n=>"type"in n?Xi(n):Ji(n);function Xi(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=Xi(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=Ji(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=Ji(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=Ji(n);if(n.end)for(let t of n.end)e+=t.source;return e}default:{let e=n.source;if("end"in n&&n.end)for(let t of n.end)e+=t.source;return e}}}function Ji({start:n,key:e,sep:t,value:r}){let i="";for(let s of n)i+=s.source;if(e&&(i+=Xi(e)),t)for(let s of t)i+=s.source;return r&&(i+=Xi(r)),i}Sm.stringify=vv});var bm=_(vm=>{"use strict";var tl=Symbol("break visit"),bv=Symbol("skip children"),Im=Symbol("remove item");function wt(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),wm(Object.freeze([]),n,e)}wt.BREAK=tl;wt.SKIP=bv;wt.REMOVE=Im;wt.itemAtPath=(n,e)=>{let t=n;for(let[r,i]of e){let s=t?.[r];if(s&&"items"in s)t=s.items[i];else return}return t};wt.parentCollection=(n,e)=>{let t=wt.itemAtPath(n,e.slice(0,-1)),r=e[e.length-1][0],i=t?.[r];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function wm(n,e,t){let r=t(e,n);if(typeof r=="symbol")return r;for(let i of["key","value"]){let s=e[i];if(s&&"items"in s){for(let o=0;o{"use strict";var nl=Lm(),Nv=Am(),Ov=bm(),rl="\uFEFF",il="",sl="",ol="",Rv=n=>!!n&&"items"in n,Cv=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function kv(n){switch(n){case rl:return"";case il:return"";case sl:return"";case ol:return"";default:return JSON.stringify(n)}}function Pv(n){switch(n){case rl:return"byte-order-mark";case il:return"doc-mode";case sl:return"flow-error-end";case ol:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` `:case`\r -`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(n[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}Re.createScalarToken=Ya.createScalarToken;Re.resolveAsScalar=Ya.resolveAsScalar;Re.setScalarValue=Ya.setScalarValue;Re.stringify=gv.stringify;Re.visit=yv.visit;Re.BOM=Ja;Re.DOCUMENT=Xa;Re.FLOW_END=za;Re.SCALAR=Qa;Re.isCollection=Ev;Re.isScalar=Tv;Re.prettyToken=Lv;Re.tokenType=Sv});var nl=p(Sm=>{"use strict";var Vn=Vi();function Me(n){switch(n){case void 0:case" ":case` -`:case"\r":case" ":return!0;default:return!1}}var Lm="0123456789ABCDEFabcdef".split(""),Av="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()".split(""),Za=",[]{}".split(""),Iv=` ,[]{} -\r `.split(""),el=n=>!n||Iv.includes(n),tl=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){e&&(this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null),this.atEnd=!t;let r=this.next??"stream";for(;r&&(t||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===` +`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(n[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}Re.createScalarToken=nl.createScalarToken;Re.resolveAsScalar=nl.resolveAsScalar;Re.setScalarValue=nl.setScalarValue;Re.stringify=Nv.stringify;Re.visit=Ov.visit;Re.BOM=rl;Re.DOCUMENT=il;Re.FLOW_END=sl;Re.SCALAR=ol;Re.isCollection=Rv;Re.isScalar=Cv;Re.prettyToken=kv;Re.tokenType=Pv});var ul=_(Om=>{"use strict";var Xn=zi();function Me(n){switch(n){case void 0:case" ":case` +`:case"\r":case" ":return!0;default:return!1}}var Nm="0123456789ABCDEFabcdef".split(""),$v="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()".split(""),al=",[]{}".split(""),qv=` ,[]{} +\r `.split(""),ll=n=>!n||qv.includes(n),cl=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){e&&(this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null),this.atEnd=!t;let r=this.next??"stream";for(;r&&(t||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===` `?!0:t==="\r"?this.buffer[e+1]===` `:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;for(;t===" ";)t=this.buffer[++r+e];if(t==="\r"){let i=this.buffer[r+e+1];if(i===` `||!i&&!this.atEnd)return e+r+1}return t===` `||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){let r=this.buffer.substr(e,3);if((r==="---"||r==="...")&&Me(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&ethis.indentValue&&!Me(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Me(t)){let r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(el),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,r=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=r=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((r!==-1&&rthis.indentValue&&!Me(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Me(t)){let r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(ll),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,r=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=r=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>Me(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,r;e:for(let i=this.pos;r=this.buffer[i];++i)switch(r){case" ":t+=1;break;case` `:e=i,t=0;break;case"\r":{let s=this.buffer[i+1];if(!s&&!this.atEnd)return this.setNext("block-scalar");if(s===` `)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext+=this.blockScalarIndent;do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(` `,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}if(!this.blockScalarKeep)do{let i=e-1,s=this.buffer[i];s==="\r"&&(s=this.buffer[--i]);let o=i;for(;s===" "||s===" ";)s=this.buffer[--i];if(s===` -`&&i>=this.pos&&i+1+t>o)e=i;else break}while(!0);return yield Vn.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,r=this.pos-1,i;for(;i=this.buffer[++r];)if(i===":"){let s=this.buffer[r+1];if(Me(s)||e&&s===",")break;t=r}else if(Me(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` +`&&i>=this.pos&&i+1+t>o)e=i;else break}while(!0);return yield Xn.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,r=this.pos-1,i;for(;i=this.buffer[++r];)if(i===":"){let s=this.buffer[r+1];if(Me(s)||e&&s===",")break;t=r}else if(Me(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` `?(r+=1,i=` -`,s=this.buffer[r+1]):t=r),s==="#"||e&&Za.includes(s))break;if(i===` -`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&Za.includes(i))break;t=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Vn.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(el))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Me(t)||e&&Za.includes(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!Me(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Av.includes(t))t=this.buffer[++e];else if(t==="%"&&Lm.includes(this.buffer[e+1])&&Lm.includes(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===` +`,s=this.buffer[r+1]):t=r),s==="#"||e&&al.includes(s))break;if(i===` +`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&al.includes(i))break;t=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Xn.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(ll))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Me(t)||e&&al.includes(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!Me(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if($v.includes(t))t=this.buffer[++e];else if(t==="%"&&Nm.includes(this.buffer[e+1])&&Nm.includes(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===` `?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===` -`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,r;do r=this.buffer[++t];while(r===" "||e&&r===" ");let i=t-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=t),i}*pushUntil(e){let t=this.pos,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Sm.Lexer=tl});var il=p(Am=>{"use strict";var rl=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,r=this.lineStarts.length;for(;t>1;this.lineStarts[s]{"use strict";var Im=Vi(),wv=nl();function Be(n,e){for(let t=0;t=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;n[++e]?.type==="space";);return n.splice(e,n.length)}function vm(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!Be(e.start,"explicit-key-ind")&&!Be(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,bm(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var sl=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new wv.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let r of this.lexer.lex(e,t))yield*this.next(r);t||(yield*this.end())}*next(e){if(this.source=e,process.env.LOG_TOKENS&&console.log("|",Im.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Im.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let r=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:r,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(t)if(this.stack.length===0)yield t;else{let r=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in r?r.indent:0:t.type==="flow-collection"&&r.type==="document"&&(t.indent=0),t.type==="flow-collection"&&vm(t),r.type){case"document":r.value=t;break;case"block-scalar":r.props.push(t);break;case"block-map":{let i=r.items[r.items.length-1];if(i.value){r.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=t;else{Object.assign(i,{key:t,sep:[]}),this.onKeyLine=!Be(i.start,"explicit-key-ind");return}break}case"block-seq":{let i=r.items[r.items.length-1];i.value?r.items.push({start:[],value:t}):i.value=t;break}case"flow-collection":{let i=r.items[r.items.length-1];!i||i.value?r.items.push({start:[],key:t,sep:[]}):i.sep?i.value=t:Object.assign(i,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let i=t.items[t.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&wm(i.start)===-1&&(t.indent===0||i.start.every(s=>s.type!=="comment"||s.indent0&&(yield this.buffer.substr(this.pos,i),this.pos=t),i}*pushUntil(e){let t=this.pos,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Om.Lexer=cl});var hl=_(Rm=>{"use strict";var fl=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,r=this.lineStarts.length;for(;t>1;this.lineStarts[s]{"use strict";var Cm=zi(),xv=ul();function Be(n,e){for(let t=0;t=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;n[++e]?.type==="space";);return n.splice(e,n.length)}function Pm(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!Be(e.start,"explicit-key-ind")&&!Be(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,$m(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var dl=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new xv.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let r of this.lexer.lex(e,t))yield*this.next(r);t||(yield*this.end())}*next(e){if(this.source=e,process.env.LOG_TOKENS&&console.log("|",Cm.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Cm.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let r=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:r,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(t)if(this.stack.length===0)yield t;else{let r=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in r?r.indent:0:t.type==="flow-collection"&&r.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Pm(t),r.type){case"document":r.value=t;break;case"block-scalar":r.props.push(t);break;case"block-map":{let i=r.items[r.items.length-1];if(i.value){r.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=t;else{Object.assign(i,{key:t,sep:[]}),this.onKeyLine=!Be(i.start,"explicit-key-ind");return}break}case"block-seq":{let i=r.items[r.items.length-1];i.value?r.items.push({start:[],value:t}):i.value=t;break}case"flow-collection":{let i=r.items[r.items.length-1];!i||i.value?r.items.push({start:[],key:t,sep:[]}):i.sep?i.value=t:Object.assign(i,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let i=t.items[t.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&km(i.start)===-1&&(t.indent===0||i.start.every(s=>s.type!=="comment"||s.indent=e.indent){let r=!this.onKeyLine&&this.indent===e.indent&&t.sep,i=[];if(r&&t.sep&&!t.value){let s=[];for(let o=0;oe.indent&&(s.length=0);break;default:s.length=0}}s.length>=2&&(i=t.sep.splice(s[1]))}switch(this.type){case"anchor":case"tag":r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!Be(t.start,"explicit-key-ind")?t.start.push(this.sourceToken):r||t.value?(i.push(this.sourceToken),e.items.push({start:i})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]}),this.onKeyLine=!0;return;case"map-value-ind":if(Be(t.start,"explicit-key-ind"))if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Be(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(bm(t.key)&&!Be(t.sep,"newline")){let s=Gt(t.start),o=t.key,a=t.sep;a.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:o,sep:a}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Be(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let s=Gt(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Be(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:s,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(s):(Object.assign(t,{key:s,sep:[]}),this.onKeyLine=!0);return}default:{let s=this.startBlockValue(e);if(s){r&&s.type!=="block-seq"&&Be(t.start,"explicit-key-ind")&&e.items.push({start:i}),this.stack.push(s);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Be(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let r=this.startBlockValue(e);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while(r&&r.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:i,sep:[]}):t.sep?this.stack.push(i):Object.assign(t,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let r=this.startBlockValue(e);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let i=Wi(r),s=Gt(i);vm(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(` +`,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let r=!this.onKeyLine&&this.indent===e.indent&&t.sep,i=[];if(r&&t.sep&&!t.value){let s=[];for(let o=0;oe.indent&&(s.length=0);break;default:s.length=0}}s.length>=2&&(i=t.sep.splice(s[1]))}switch(this.type){case"anchor":case"tag":r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!Be(t.start,"explicit-key-ind")?t.start.push(this.sourceToken):r||t.value?(i.push(this.sourceToken),e.items.push({start:i})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]}),this.onKeyLine=!0;return;case"map-value-ind":if(Be(t.start,"explicit-key-ind"))if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Be(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if($m(t.key)&&!Be(t.sep,"newline")){let s=Xt(t.start),o=t.key,a=t.sep;a.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:o,sep:a}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Be(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let s=Xt(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Be(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:s,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(s):(Object.assign(t,{key:s,sep:[]}),this.onKeyLine=!0);return}default:{let s=this.startBlockValue(e);if(s){r&&s.type!=="block-seq"&&Be(t.start,"explicit-key-ind")&&e.items.push({start:i}),this.stack.push(s);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Be(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let r=this.startBlockValue(e);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while(r&&r.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:i,sep:[]}):t.sep?this.stack.push(i):Object.assign(t,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let r=this.startBlockValue(e);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let i=Qi(r),s=Xt(i);Pm(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(` `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(` -`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=Wi(e),r=Gt(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Wi(e),r=Gt(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Nm.Parser=sl});var Pm=p(Gn=>{"use strict";var Om=Wa(),vv=Mn(),Wn=jn(),bv=Uo(),Nv=il(),Rm=ol();function Cm(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new Nv.LineCounter||null,prettyErrors:e}}function Ov(n,e={}){let{lineCounter:t,prettyErrors:r}=Cm(e),i=new Rm.Parser(t?.addNewLine),s=new Om.Composer(e),o=Array.from(s.compose(i.parse(n)));if(r&&t)for(let a of o)a.errors.forEach(Wn.prettifyError(n,t)),a.warnings.forEach(Wn.prettifyError(n,t));return o.length>0?o:Object.assign([],{empty:!0},s.streamInfo())}function km(n,e={}){let{lineCounter:t,prettyErrors:r}=Cm(e),i=new Rm.Parser(t?.addNewLine),s=new Om.Composer(e),o=null;for(let a of s.compose(i.parse(n),!0,n.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Wn.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&t&&(o.errors.forEach(Wn.prettifyError(n,t)),o.warnings.forEach(Wn.prettifyError(n,t))),o}function Rv(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let i=km(n,t);if(!i)return null;if(i.warnings.forEach(s=>bv.warn(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},t))}function Cv(n,e,t){let r=null;if(typeof e=="function"||Array.isArray(e)?r=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let i=Math.round(t);t=i<1?void 0:i>8?{indent:8}:{indent:i}}if(n===void 0){let{keepUndefined:i}=t??e??{};if(!i)return}return new vv.Document(n,r,t).toString(t)}Gn.parse=Rv;Gn.parseAllDocuments=Ov;Gn.parseDocument=km;Gn.stringify=Cv});var qm=p(J=>{"use strict";var kv=Wa(),Pv=Mn(),$v=wa(),al=jn(),qv=Ln(),ht=W(),xv=lt(),Mv=ce(),Dv=ut(),Fv=ft(),jv=Vi(),Hv=nl(),Bv=il(),Uv=ol(),Gi=Pm(),$m=gn();J.Composer=kv.Composer;J.Document=Pv.Document;J.Schema=$v.Schema;J.YAMLError=al.YAMLError;J.YAMLParseError=al.YAMLParseError;J.YAMLWarning=al.YAMLWarning;J.Alias=qv.Alias;J.isAlias=ht.isAlias;J.isCollection=ht.isCollection;J.isDocument=ht.isDocument;J.isMap=ht.isMap;J.isNode=ht.isNode;J.isPair=ht.isPair;J.isScalar=ht.isScalar;J.isSeq=ht.isSeq;J.Pair=xv.Pair;J.Scalar=Mv.Scalar;J.YAMLMap=Dv.YAMLMap;J.YAMLSeq=Fv.YAMLSeq;J.CST=jv;J.Lexer=Hv.Lexer;J.LineCounter=Bv.LineCounter;J.Parser=Uv.Parser;J.parse=Gi.parse;J.parseAllDocuments=Gi.parseAllDocuments;J.parseDocument=Gi.parseDocument;J.stringify=Gi.stringify;J.visit=$m.visit;J.visitAsync=$m.visitAsync});var Dm=p((W2,Wv)=>{Wv.exports={name:"teamsfx-sample-validator",version:"1.0.0",description:"",main:"validator.cjs",bin:{"teamsfx-sample-validator":"validator.cjs"},scripts:{build:"esbuild src/index.ts --bundle --minify --outfile=validator.cjs --platform=node",test:"jest"},keywords:[],author:"",license:"ISC",dependencies:{chalk:"^4.1.2",commander:"^11.0.0","compare-versions":"^6.1.0",figlet:"^1.6.0","fs-extra":"^11.1.1","image-size":"^1.0.2",semver:"^7.7.2",yaml:"^2.3.1"},devDependencies:{"@types/figlet":"^1.5.6","@types/fs-extra":"^11.0.1","@types/jest":"^29.5.3","@types/mock-fs":"^4.13.1","@types/node":"^20.4.2","@types/semver":"^7.7.0",dotenv:"^16.3.1",esbuild:"^0.19.2",jest:"^29.6.1","mock-fs":"^5.2.0","ts-jest":"^29.1.1",typescript:"^5.1.6"}}});var vl=le(wl(),1),{program:nb,createCommand:rb,createArgument:ib,createOption:sb,CommanderError:ob,InvalidArgumentError:ab,InvalidOptionArgumentError:lb,Command:bl,Argument:cb,Option:ub,Help:fb}=vl.default;var Ki=le(Rl());var Cl=`flf2a$ 6 5 16 15 13 0 24463 229 +`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=Qi(e),r=Xt(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Qi(e),r=Xt(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};qm.Parser=dl});var jm=_(Qn=>{"use strict";var xm=Za(),Mv=Un(),zn=Gn(),Fv=zo(),Dv=hl(),Mm=pl();function Fm(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new Dv.LineCounter||null,prettyErrors:e}}function jv(n,e={}){let{lineCounter:t,prettyErrors:r}=Fm(e),i=new Mm.Parser(t?.addNewLine),s=new xm.Composer(e),o=Array.from(s.compose(i.parse(n)));if(r&&t)for(let a of o)a.errors.forEach(zn.prettifyError(n,t)),a.warnings.forEach(zn.prettifyError(n,t));return o.length>0?o:Object.assign([],{empty:!0},s.streamInfo())}function Dm(n,e={}){let{lineCounter:t,prettyErrors:r}=Fm(e),i=new Mm.Parser(t?.addNewLine),s=new xm.Composer(e),o=null;for(let a of s.compose(i.parse(n),!0,n.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new zn.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&t&&(o.errors.forEach(zn.prettifyError(n,t)),o.warnings.forEach(zn.prettifyError(n,t))),o}function Hv(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let i=Dm(n,t);if(!i)return null;if(i.warnings.forEach(s=>Fv.warn(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},t))}function Bv(n,e,t){let r=null;if(typeof e=="function"||Array.isArray(e)?r=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let i=Math.round(t);t=i<1?void 0:i>8?{indent:8}:{indent:i}}if(n===void 0){let{keepUndefined:i}=t??e??{};if(!i)return}return new Mv.Document(n,r,t).toString(t)}Qn.parse=Hv;Qn.parseAllDocuments=jv;Qn.parseDocument=Dm;Qn.stringify=Bv});var Bm=_(J=>{"use strict";var Uv=Za(),Vv=Un(),Wv=Pa(),_l=Gn(),Gv=bn(),mt=W(),Kv=ht(),Yv=ce(),Jv=pt(),Xv=_t(),zv=zi(),Qv=ul(),Zv=hl(),eb=pl(),Zi=jm(),Hm=An();J.Composer=Uv.Composer;J.Document=Vv.Document;J.Schema=Wv.Schema;J.YAMLError=_l.YAMLError;J.YAMLParseError=_l.YAMLParseError;J.YAMLWarning=_l.YAMLWarning;J.Alias=Gv.Alias;J.isAlias=mt.isAlias;J.isCollection=mt.isCollection;J.isDocument=mt.isDocument;J.isMap=mt.isMap;J.isNode=mt.isNode;J.isPair=mt.isPair;J.isScalar=mt.isScalar;J.isSeq=mt.isSeq;J.Pair=Kv.Pair;J.Scalar=Yv.Scalar;J.YAMLMap=Jv.YAMLMap;J.YAMLSeq=Xv.YAMLSeq;J.CST=zv;J.Lexer=Qv.Lexer;J.LineCounter=Zv.LineCounter;J.Parser=eb.Parser;J.parse=Zi.parse;J.parseAllDocuments=Zi.parseAllDocuments;J.parseDocument=Zi.parseDocument;J.stringify=Zi.stringify;J.visit=Hm.visit;J.visitAsync=Hm.visitAsync});var Wm=_((fR,rb)=>{rb.exports={name:"teamsfx-sample-validator",version:"1.0.0",description:"",main:"validator.cjs",bin:{"teamsfx-sample-validator":"validator.cjs"},scripts:{build:"esbuild src/index.ts --bundle --minify --outfile=validator.cjs --platform=node",test:"jest"},keywords:[],author:"",license:"ISC",dependencies:{chalk:"^4.1.2",commander:"^11.0.0","compare-versions":"^6.1.0",figlet:"^1.6.0","fs-extra":"^11.1.1","image-size":"^1.0.2",semver:"^7.7.2",yaml:"^2.3.1"},devDependencies:{"@types/figlet":"^1.5.6","@types/fs-extra":"^11.0.1","@types/jest":"^29.5.3","@types/mock-fs":"^4.13.1","@types/node":"^20.4.2","@types/semver":"^7.7.0",dotenv:"^16.3.1",esbuild:"^0.19.2",jest:"^29.6.1","mock-fs":"^5.2.0","ts-jest":"^29.1.1",typescript:"^5.1.6"}}});var $l=oe(Pl(),1),{program:pb,createCommand:_b,createArgument:mb,createOption:gb,CommanderError:yb,InvalidArgumentError:Eb,InvalidOptionArgumentError:Tb,Command:ql,Argument:Lb,Option:Sb,Help:Ab}=$l.default;var es=oe(Fl());var Dl=`flf2a$ 6 5 16 15 13 0 24463 229 Standard by Glenn Chappell & Ian Chai 3/93 -- based on Frank's .sig Includes ISO Latin-1 figlet release 2.1 -- 12 Aug 1994 @@ -2414,7 +2414,7 @@ Font modified May 20, 2012 by patorjk to add the 0xCA0 character | (_) | @ $\\___/$ @ @@ - `;var or=le(uc()),$g=or.default.green,qg=or.default.yellow,xg=or.default.bold.red;function fc(n){let e=$g(`${n.passed.length} validation passed`),t=xg(`${n.failed.length} validation failed`),r=n.warning.length>0?qg(`${n.warning.length} warning(s)`):void 0;n.failed.length===0?console.log(`\u2705[${n.name}] ${e}${r?`, ${r}`:""}.`):(console.log(`\u274C[${n.name}] ${t}${r?`, ${r}`:""}, ${e}.`),console.log(n.failed.map(i=>` \u274C ${i}`).join(` + `;var hr=oe(yc()),Hg=hr.default.green,Bg=hr.default.yellow,Ug=hr.default.bold.red;function Ec(n){let e=Hg(`${n.passed.length} validation passed`),t=Ug(`${n.failed.length} validation failed`),r=n.warning.length>0?Bg(`${n.warning.length} warning(s)`):void 0;n.failed.length===0?console.log(`\u2705[${n.name}] ${e}${r?`, ${r}`:""}.`):(console.log(`\u274C[${n.name}] ${t}${r?`, ${r}`:""}, ${e}.`),console.log(n.failed.map(i=>` \u274C ${i}`).join(` `))),n.warning.length>0&&console.log(n.warning.map(i=>` \u26A0\uFE0F ${i}`).join(` `)),n.passed.length>0&&console.log(n.passed.map(i=>` \u2705 ${i}`).join(` -`))}var pf=le(mc()),Ds=le(mt()),Fs=le(require("path"));async function js(n){let e={name:"Env Files",passed:[],failed:[],warning:[]},t=[".env.dev",".env.local"];for(let r of t){let i=Fs.default.join(n,"env",r);if(!await Ds.default.exists(i)){e.warning=[`${Fs.default.join("env",r)} does not exist.`];continue}let s=await Ds.default.readFile(i,"utf8"),o=pf.default.parse(s),a=Object.entries(o).map(([c,u])=>({name:c,value:u})),l=!0;for(let c of a)c.name==="TEAMSFX_ENV"||c.name==="APP_NAME_SUFFIX"||c.name==="TEAMS_APP_NAME"||c.value!==""&&(e.failed.push(`${r}: ${c.name} should NOT have value.`),l=!1);l&&e.passed.push(`${r}: All environment variables are valid.`)}return e}var on=le(mt()),an=le(require("path")),sE=[".vscode","appPackage","env"],oE=["appPackage/manifest.json","appPackage/color.png","appPackage/outline.png","env/.env.dev","m365agents.yml","m365agents.local.yml","README.md"];async function Hs(n){let e={name:"Folder Structure",passed:[],failed:[],warning:[]};for(let t of sE)!await on.default.exists(an.default.join(n,t))||!await on.default.stat(an.default.join(n,t)).then(r=>r.isDirectory())?e.failed.push(`Project should have "${t}" folder.`):e.passed.push(`Project has "${t}" folder.`);for(let t of oE)!await on.default.exists(an.default.join(n,t))||!await on.default.stat(an.default.join(n,t)).then(r=>r.isFile())?e.failed.push(`Project should have "${t}" file.`):e.passed.push(`Project has "${t}" file.`);return e}var Zf=le(mt()),no=le(require("path")),eh=le(Qf());async function ro(n){let e={name:"Image Files",passed:[],failed:[],warning:[]},t=["thumbnail.png","sampleDemo.gif"];for(let r of t){let i=no.default.join(n,"assets",r),s=no.default.join("assets",r);if(!await Zf.default.exists(i)){e.warning.push(`${s} does not exist.`);continue}let o=(0,eh.default)(i);o.width&&o.height&&o.width/o.height===40/23?e.passed.push(`${s} has 1600*920/800*460 resolution or same ratio.`):e.failed.push(`${s} should have 1600*920/800*460 resolution or same ratio.`)}return e}var rh=le(nh()),io=le(mt()),ih=le(require("path"));async function so(n){let e={name:"package.json",passed:[],failed:[],warning:[]},t=ih.default.join(n,"package.json");if(!await io.default.exists(t))return e.failed=["package.json does not exist."],e;let r=await io.default.readFile(t,"utf8");try{let i=JSON.parse(r);if(!i.engines||!i.engines.node)return e.warning=["package.json does not have 'engines.node' field."],e;if(!(0,rh.satisfies)("22.0.0",i.engines.node))return e.warning=["'engines.node' field should be compatible with 22."],e}catch{return e.failed=["package.json is not a valid JSON file."],e}return e.passed=["'engines.node' field is compatible with 22."],e}var wo=le(mt()),Xd=le(require("path")),vo=le(Kd()),Yd="1.22.0",Jd="devPreview";async function bo(n){let e={name:"App Manifest",passed:[],failed:[],warning:[]},t=Xd.default.join(n,"appPackage","manifest.json");if(!await wo.default.exists(t))return e.failed=["appPackage/manifest.json does not exist."],e;let r=await wo.default.readFile(t,"utf8"),i;try{i=JSON.parse(r)}catch{}if(!i)return e.failed.push("appPackage/manifest.json is not a valid JSON file."),e;let s=i.id;if(!s||s!=="${{TEAMS_APP_ID}}"?e.failed.push("id should be equal to '${{TEAMS_APP_ID}}'."):e.passed.push("id is referencing placeholder from env: ${{TEAMS_APP_ID}}."),i.manifestVersion===Jd)e.warning.push(`Manifest version(${Jd}) is using preview version.`);else{let o=vo.default.coerce(i.manifestVersion);o&&vo.default.eq(o,Yd)?e.passed.push("Manifest version is aligned with Microsoft 365 Agents Toolkit."):e.warning.push(`Manifest version(${i.manifestVersion}) is NOT aligned with Microsoft 365 Agents Toolkit(${Yd}).`)}return e}var ll=le(mt()),xm=le(require("path")),Mm=le(qm()),Vv=[{name:"provision",actions:["teamsApp/create"]},{name:"deploy",actions:[]},{name:"publish",actions:["teamsApp/publishAppPackage"]}];async function cl(n){let e={name:"teamsapp.yaml",passed:[],failed:[],warning:[]},t=xm.default.join(n,"m365agents.yml");if(!await ll.default.exists(t))return e.failed=["m365agents.yml does not exist."],e;let r=await ll.default.readFile(t,"utf8"),i=Mm.default.parse(r),s=i&&i.projectId;s&&s!==""?e.failed.push("Project should NOT have projectId in m365agents.yml."):e.passed.push("Project has no projectId in m365agents.yml.");for(let c of Vv){let u=i[c.name],f=[];if(!u){e.failed.push(`Project should have '${c.name}' stage in m365agents.yml.`);continue}for(let _ of c.actions)if(u&&u.findIndex(h=>h.uses===_)<0&&f.push(`Project should have '${_}' action in ${c.name} stage.`),c.name==="provision"&&_==="teamsApp/create"){let h=u.findIndex(T=>T.uses===_);h>=0&&(u[h].writeToEnvironmentFile.teamsAppId==="TEAMS_APP_ID"?e.passed.push("Project has 'teamsApp/create' action which has TEAMS_APP_ID env variable."):e.failed.push("Project should have 'teamsApp/create' action which has TEAMS_APP_ID env variable."))}f.length===0?e.passed.push(`Project has all mandatory actions in ${c.name} stage.`):e.failed.push(...f)}let o=/^([\w-]+):([\w-]+)$/g,a=i?.additionalMetadata?.sampleTag,l=!1;if(a&&a!==""){let c=o.exec(a);c&&(e.passed.push("Project has sampleTag with format 'repo:name'."),l=!0,c[1]!=="TeamsFx-Samples"&&e.warning.push("Project is an external sample."))}return l||e.failed.push("Project should have sampleTag with format 'repo:name'."),e}var Gv=Dm(),Fm=new bl,Kv=[Hs,cl,bo,js,ro,so];async function Yv(){await Fm.version(Gv.version).description("A tool to validate project content before onboarding to TeamsFx sample gallery.").option("-p, --path ","Path to the project folder to be validated.").parseAsync(process.argv);let n=Fm.opts(),e=process.cwd();n.path&&typeof n.path=="string"&&(e=n.path);for(let t of Kv){let r=await t(e);fc(r)}}Ki.parseFont("Standard",Cl);console.log(Ki.textSync("TeamsFx Sample Validator"));Yv(); +`))}var If=oe(Ic()),Ws=oe(st()),Gs=oe(require("path"));var qt=oe(st()),ze=oe(require("path"));async function Af(n){let e=ze.default.basename(n),t=[ze.default.join(n,"..",".config","samples-config-v3.json"),ze.default.join(n,".config","samples-config-v3.json")];for(let r of t)if(await qt.default.exists(r))try{let s=(await qt.default.readJson(r)).samples.find(o=>o.id===e);if(s)return{thumbnailPath:s.thumbnailPath,gifPath:s.gifPath}}catch{}return{}}async function hE(n){let e=ze.default.basename(n),t=[ze.default.join(n,"..",".config","samples-config-v3.json"),ze.default.join(n,".config","samples-config-v3.json")];for(let r of t)if(await qt.default.exists(r))try{let s=(await qt.default.readJson(r)).samples.find(o=>o.id===e);if(s&&s.tags)return s.tags.includes("C#")}catch{}return!1}async function Ue(n){let e=await hE(n),t=ze.default.join(n,"M365Agent"),r=ze.default.join(t,"m365agents.yml"),i=await qt.default.exists(r);return e||i?{projectType:"csharp",rootDir:n,agentDir:i?t:n,displayPrefix:i?"M365Agent/":""}:{projectType:"typescript",rootDir:n,agentDir:n,displayPrefix:""}}async function Ks(n){let e={name:"Env Files",passed:[],failed:[],warning:[]},t=await Ue(n),{agentDir:r,displayPrefix:i,projectType:s}=t,o=[".env.dev",".env.local"],a=!1;for(let l of o){let c=Gs.default.join(r,"env",l);if(!await Ws.default.exists(c)){if(s==="csharp")continue;e.warning.push(`${i}${Gs.default.join("env",l)} does not exist.`);continue}a=!0;let u=await Ws.default.readFile(c,"utf8"),f=If.default.parse(u),d=Object.entries(f).map(([y,g])=>({name:y,value:g})),h=!0;for(let y of d)y.name==="TEAMSFX_ENV"||y.name==="APP_NAME_SUFFIX"||y.name==="TEAMS_APP_NAME"||y.value!==""&&(e.failed.push(`${i}${l}: ${y.name} should NOT have value.`),h=!1);h&&e.passed.push(`${i}${l}: All environment variables are valid.`)}return s==="csharp"&&!a&&e.passed.push("C# project does not require env files."),e}var ot=oe(st()),un=oe(require("path"));var dE=["appPackage"],pE=["appPackage/manifest.json","appPackage/color.png","appPackage/outline.png","m365agents.yml","m365agents.local.yml"],_E=["README.md"],mE=["env/.env.dev"],gE=["env",".vscode"];async function Ys(n,e){let t=un.default.join(n,e);return await ot.default.exists(t)?(await ot.default.stat(t)).isDirectory():!1}async function xt(n,e){let t=un.default.join(n,e);return await ot.default.exists(t)?(await ot.default.stat(t)).isFile():!1}async function Ir(n,e){return await ot.default.exists(n)?(await ot.default.readdir(n)).filter(r=>r.endsWith(e)):[]}async function Js(n){let e={name:"Folder Structure",passed:[],failed:[],warning:[]},t=await Ue(n),{agentDir:r,rootDir:i,displayPrefix:s,projectType:o}=t;for(let a of dE){let l=s+a;await Ys(r,a)?e.passed.push(`Project has "${l}" folder.`):e.failed.push(`Project should have "${l}" folder.`)}for(let a of gE){let l=await Ys(r,a),c=await Ys(i,a);if(l||c){let u=l?s+a:a;e.passed.push(`Project has "${u}" folder.`)}else o==="typescript"&&e.failed.push(`Project should have "${a}" folder.`)}for(let a of pE){let l=s+a;await xt(r,a)?e.passed.push(`Project has "${l}" file.`):e.failed.push(`Project should have "${l}" file.`)}for(let a of _E)await xt(i,a)?e.passed.push(`Project has "${a}" file.`):e.failed.push(`Project should have "${a}" file.`);for(let a of mE){let l=await xt(r,a),c=await xt(i,a);if(l||c){let u=l?s+a:a;e.passed.push(`Project has "${u}" file.`)}else o==="typescript"&&e.failed.push(`Project should have "${a}" file.`)}if(o==="csharp"){let a=await Ir(i,".sln"),l=await Ir(i,".slnx");if(a.length>0||l.length>0){let g=a.length>0?a[0]:l[0];e.passed.push(`Project has solution file "${g}".`)}else e.failed.push("C# project should have a .sln or .slnx solution file.");let c=await Ir(i,".csproj"),u=c.length>0,f=c.length>0?c[0]:"",d=["M365Agent","TravelAgent","AzureAgentToM365ATK"];for(let g of d){let m=un.default.join(i,g);if(await ot.default.exists(m)){let A=await Ir(m,".csproj");if(A.length>0){u=!0,f=`${g}/${A[0]}`;break}}}u?e.passed.push(`Project has .csproj file "${f}".`):e.failed.push("C# project should have a .csproj project file.");let h=await xt(i,"appsettings.json"),y="appsettings.json";if(!h)for(let g of d){let m=un.default.join(i,g);if(await xt(m,"appsettings.json")){h=!0,y=`${g}/appsettings.json`;break}}h?e.passed.push(`Project has "${y}" file.`):e.failed.push("C# project should have an appsettings.json file.")}return e}var dn=oe(st()),pn=oe(require("path")),_n=oe(ah());async function uo(n){let e={name:"Image Files",passed:[],failed:[],warning:[]},t=await Af(n);if(t.thumbnailPath){let r=pn.default.join(n,t.thumbnailPath);if(await dn.default.exists(r)){let i=(0,_n.default)(r);i.width&&i.height&&i.width/i.height===40/23?e.passed.push(`${t.thumbnailPath} has 1600*920/800*460 resolution or same ratio.`):e.failed.push(`${t.thumbnailPath} must have 1600*920/800*460 resolution or same ratio (40:23 aspect ratio). Current: ${i.width}x${i.height}.`)}else e.failed.push(`${t.thumbnailPath} is required to display in sample gallery but does not exist.`)}else{let r=["png","jpg","jpeg"],i=!1;for(let s of r){let o=pn.default.join(n,"assets",`thumbnail.${s}`);if(await dn.default.exists(o)){i=!0;let a=(0,_n.default)(o);a.width&&a.height&&a.width/a.height===40/23?e.passed.push(`assets/thumbnail.${s} has 1600*920/800*460 resolution or same ratio.`):e.failed.push(`assets/thumbnail.${s} must have 1600*920/800*460 resolution or same ratio (40:23 aspect ratio). Current: ${a.width}x${a.height}.`);break}}i||e.failed.push("Thumbnail image is required to display in sample gallery. Please add thumbnailPath to samples-config-v3.json or add assets/thumbnail.png.")}if(t.gifPath){let r=pn.default.join(n,t.gifPath);if(await dn.default.exists(r)){let i=(0,_n.default)(r);i.width&&i.height&&i.width/i.height===40/23?e.passed.push(`${t.gifPath} has 1600*920/800*460 resolution or same ratio.`):e.warning.push(`${t.gifPath} does not have 40:23 aspect ratio. Current: ${i.width}x${i.height}. (Optional)`)}else e.warning.push(`${t.gifPath} does not exist. (Optional)`)}else{let r=pn.default.join(n,"assets","sampleDemo.gif");if(await dn.default.exists(r)){let i=(0,_n.default)(r);i.width&&i.height&&i.width/i.height===40/23?e.passed.push("assets/sampleDemo.gif has 1600*920/800*460 resolution or same ratio."):e.warning.push(`assets/sampleDemo.gif does not have 40:23 aspect ratio. Current: ${i.width}x${i.height}. (Optional)`)}else e.warning.push("Sample demo gif does not exist. (Optional)")}return e}var uh=oe(ch()),fo=oe(st()),fh=oe(require("path"));async function ho(n){let e={name:"package.json",passed:[],failed:[],warning:[]},t=await Ue(n),{projectType:r}=t,i=fh.default.join(n,"package.json");if(!await fo.default.exists(i))return r==="csharp"?(e.passed=["C# project does not require package.json."],e):(e.failed=["package.json does not exist."],e);let s=await fo.default.readFile(i,"utf8");try{let o=JSON.parse(s);if(!o.engines||!o.engines.node)return e.warning=["package.json does not have 'engines.node' field."],e;if(!(0,uh.satisfies)("22.0.0",o.engines.node))return e.warning=["'engines.node' field should be compatible with 22."],e}catch{return e.failed=["package.json is not a valid JSON file."],e}return e.passed=["'engines.node' field is compatible with 22."],e}var Po=oe(st()),rp=oe(require("path")),$o=oe(ep());var tp="1.22.0",np="devPreview";async function qo(n){let e={name:"App Manifest",passed:[],failed:[],warning:[]},t=await Ue(n),{agentDir:r,displayPrefix:i}=t,s=rp.default.join(r,"appPackage","manifest.json");if(!await Po.default.exists(s))return e.failed=[`${i}appPackage/manifest.json does not exist.`],e;let o=await Po.default.readFile(s,"utf8"),a;try{a=JSON.parse(o)}catch{}if(!a)return e.failed.push("appPackage/manifest.json is not a valid JSON file."),e;let l=a.id;if(!l||l!=="${{TEAMS_APP_ID}}"?e.failed.push("id should be equal to '${{TEAMS_APP_ID}}'."):e.passed.push("id is referencing placeholder from env: ${{TEAMS_APP_ID}}."),a.manifestVersion===np)e.warning.push(`Manifest version(${np}) is using preview version.`);else{let c=$o.default.coerce(a.manifestVersion);c&&$o.default.eq(c,tp)?e.passed.push("Manifest version is aligned with Microsoft 365 Agents Toolkit."):e.warning.push(`Manifest version(${a.manifestVersion}) is NOT aligned with Microsoft 365 Agents Toolkit(${tp}).`)}return e}var ml=oe(st()),Um=oe(require("path")),Vm=oe(Bm());var tb=[{name:"provision",actions:["teamsApp/create"],required:!0},{name:"deploy",actions:[],required:!0}],nb=[{name:"publish",actions:["teamsApp/publishAppPackage"]}];async function gl(n){let e={name:"teamsapp.yaml",passed:[],failed:[],warning:[]},t=await Ue(n),{agentDir:r,displayPrefix:i}=t,s=Um.default.join(r,"m365agents.yml");if(!await ml.default.exists(s))return e.failed=[`${i}m365agents.yml does not exist.`],e;let o=await ml.default.readFile(s,"utf8"),a=Vm.default.parse(o),l=a&&a.projectId;l&&l!==""?e.failed.push("Project should NOT have projectId in m365agents.yml."):e.passed.push("Project has no projectId in m365agents.yml.");for(let d of tb){let h=a[d.name],y=[];if(!h){e.failed.push(`Project should have '${d.name}' stage in m365agents.yml.`);continue}for(let g of d.actions)if(h&&h.findIndex(m=>m.uses===g)<0&&y.push(`Project should have '${g}' action in ${d.name} stage.`),d.name==="provision"&&g==="teamsApp/create"){let m=h.findIndex(A=>A.uses===g);m>=0&&(h[m].writeToEnvironmentFile?.teamsAppId==="TEAMS_APP_ID"?e.passed.push("Project has 'teamsApp/create' action which has TEAMS_APP_ID env variable."):e.failed.push("Project should have 'teamsApp/create' action which has TEAMS_APP_ID env variable."))}y.length===0?e.passed.push(`Project has all mandatory actions in ${d.name} stage.`):e.failed.push(...y)}for(let d of nb){let h=a[d.name];if(!h){e.warning.push(`Project does not have '${d.name}' stage in m365agents.yml.`);continue}let y=!0;for(let g of d.actions)h.findIndex(m=>m.uses===g)<0&&(e.warning.push(`Project does not have '${g}' action in ${d.name} stage.`),y=!1);y&&e.passed.push(`Project has all actions in ${d.name} stage.`)}let c=/^([\w-]+):([\w-]+)$/g,u=a?.additionalMetadata?.sampleTag,f=!1;if(u&&u!==""){let d=c.exec(u);d&&(e.passed.push("Project has sampleTag with format 'repo:name'."),f=!0,d[1]!=="TeamsFx-Samples"&&e.warning.push("Project is an external sample."))}return f||e.failed.push("Project should have sampleTag with format 'repo:name'."),e}var ib=Wm(),Gm=new ql,sb=[Js,gl,qo,Ks,uo,ho];async function ob(){await Gm.version(ib.version).description("A tool to validate project content before onboarding to TeamsFx sample gallery.").option("-p, --path ","Path to the project folder to be validated.").parseAsync(process.argv);let n=Gm.opts(),e=process.cwd();n.path&&typeof n.path=="string"&&(e=n.path);for(let t of sb){let r=await t(e);Ec(r)}}es.parseFont("Standard",Dl);console.log(es.textSync("TeamsFx Sample Validator"));ob();