From 7a012e6c01a1b73715eeec5aca68e28d129d6af7 Mon Sep 17 00:00:00 2001 From: Igor Lebedev Date: Wed, 16 Jul 2025 00:51:17 +0500 Subject: [PATCH 1/3] fix(e2e): use ES module import for fs in page-side-panel.test.ts to satisfy eslint rules --- .husky/pre-push | 2 + bash-scripts/prevent-main-develop-push.sh | 6 + chrome-extension/package.json | 2 +- chrome-extension/public/pyodide/package.json | 2 +- chrome-extension/src/background/index.ts | 33 +- .../src/background/plugin-chat-api.ts | 55 ++-- docs/best-practices/cursor-rules-system.md | 288 ------------------ .../testing-and-troubleshooting.md | 26 -- docs/best-practices/transferability.md | 31 -- docs/developer-commands.md | 76 +++++ .../README.md | 17 ++ .../ai-first-documentation.md | 0 .../ci-integration.md | 28 +- .../development-principles.md | 0 .../roadmap-sync.md | 0 .../testing-and-troubleshooting.md | 63 ++++ docs/for-ai-best-practices/transferability.md | 5 + docs/transferability.ru.md | 100 ++++++ .../chrome-extension-boilerplate-react-vite | 1 + external/sidepanel-template | 1 + memory-bank/errors.md | 35 ++- package.json | 2 +- packages/dev-utils/package.json | 2 +- packages/env/package.json | 2 +- packages/hmr/package.json | 2 +- packages/i18n/package.json | 2 +- packages/module-manager/package.json | 2 +- packages/shared/package.json | 2 +- packages/storage/package.json | 2 +- packages/tailwindcss-config/package.json | 2 +- packages/tsconfig/package.json | 2 +- packages/ui/package.json | 2 +- packages/vite-config/package.json | 2 +- packages/zipper/package.json | 2 +- pages/content-runtime/package.json | 2 +- pages/content-ui/package.json | 2 +- pages/content/package.json | 2 +- pages/devtools-panel/package.json | 2 +- pages/devtools/package.json | 2 +- pages/new-tab/package.json | 2 +- pages/options/package.json | 2 +- pages/popup/package.json | 2 +- pages/side-panel/package.json | 2 +- .../src/components/PluginControlPanel.tsx | 96 ++++-- pages/side-panel/src/hooks/useLazyChatSync.ts | 38 ++- platform-core/public/pyodide/package.json | 2 +- public/pyodide/package.json | 2 +- tests/e2e/helpers/theme.ts | 4 +- tests/e2e/package.json | 2 +- tests/e2e/specs/page-side-panel.test.ts | 91 +++++- 50 files changed, 602 insertions(+), 448 deletions(-) create mode 100755 .husky/pre-push create mode 100755 bash-scripts/prevent-main-develop-push.sh delete mode 100644 docs/best-practices/cursor-rules-system.md delete mode 100644 docs/best-practices/testing-and-troubleshooting.md delete mode 100644 docs/best-practices/transferability.md create mode 100644 docs/developer-commands.md rename docs/{best-practices => for-ai-best-practices}/README.md (59%) rename docs/{best-practices => for-ai-best-practices}/ai-first-documentation.md (100%) rename docs/{best-practices => for-ai-best-practices}/ci-integration.md (59%) rename docs/{best-practices => for-ai-best-practices}/development-principles.md (100%) rename docs/{best-practices => for-ai-best-practices}/roadmap-sync.md (100%) create mode 100644 docs/for-ai-best-practices/testing-and-troubleshooting.md create mode 100644 docs/for-ai-best-practices/transferability.md create mode 100644 docs/transferability.ru.md create mode 160000 external/chrome-extension-boilerplate-react-vite create mode 160000 external/sidepanel-template diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 00000000..292dc996 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,2 @@ +#!/bin/sh +bash bash-scripts/prevent-main-develop-push.sh diff --git a/bash-scripts/prevent-main-develop-push.sh b/bash-scripts/prevent-main-develop-push.sh new file mode 100755 index 00000000..19e2b515 --- /dev/null +++ b/bash-scripts/prevent-main-develop-push.sh @@ -0,0 +1,6 @@ +#!/bin/bash +branch=$(git rev-parse --abbrev-ref HEAD) +if [[ "$branch" == "main" || "$branch" == "develop" ]]; then + echo "\e[31mDirect push to $branch is forbidden! Use PRs and merge only from allowed branches.\e[0m" + exit 1 +fi diff --git a/chrome-extension/package.json b/chrome-extension/package.json index 06fef197..7711c3e7 100644 --- a/chrome-extension/package.json +++ b/chrome-extension/package.json @@ -1,6 +1,6 @@ { "name": "chrome-extension", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - core settings", "type": "module", "private": true, diff --git a/chrome-extension/public/pyodide/package.json b/chrome-extension/public/pyodide/package.json index 06a7fab2..1fc4db17 100644 --- a/chrome-extension/public/pyodide/package.json +++ b/chrome-extension/public/pyodide/package.json @@ -1,6 +1,6 @@ { "name": "pyodide", - "version": "0.27.171", + "version": "0.27.176", "description": "The Pyodide JavaScript package", "keywords": [ "python", diff --git a/chrome-extension/src/background/index.ts b/chrome-extension/src/background/index.ts index ffe6eb5f..440e8f9b 100644 --- a/chrome-extension/src/background/index.ts +++ b/chrome-extension/src/background/index.ts @@ -200,10 +200,35 @@ chrome.runtime.onMessage.addListener( if (msg.type === 'GET_PLUGIN_CHAT' && msg.pluginId && msg.pageKey) { const { pluginId, pageKey } = msg; const chatKey = `${pluginId}::${getPageKey(pageKey)}`; - pluginChatApi.getOrLoadChat(chatKey).then(chat => { - console.log('[background] sendResponse(GET_PLUGIN_CHAT):', chat); - sendResponse(chat || { messages: [] }); - }); + pluginChatApi + .getOrLoadChat(chatKey) + .then(chat => { + let safeChat = chat; + if (chat && Array.isArray(chat.messages) && chat.messages.length > 50) { + safeChat = { ...chat, messages: chat.messages.slice(-50) }; + } + try { + const serializable = JSON.parse(JSON.stringify(safeChat)); + console.log( + '[background] sendResponse(GET_PLUGIN_CHAT):', + serializable, + 'chatKey:', + chatKey, + 'pageKey:', + pageKey, + ); + sendResponse(serializable || { messages: [] }); + } catch (err) { + console.error('[background] Ошибка сериализации чата:', err, safeChat); + sendResponse({ error: 'serialization failed', details: String(err) }); + } + console.log('[background] return true после sendResponse(GET_PLUGIN_CHAT)'); + }) + .catch(err => { + console.error('[background] Ошибка в getOrLoadChat:', err); + sendResponse({ error: String(err) }); + console.log('[background] return true после sendResponse(GET_PLUGIN_CHAT) [catch]'); + }); return true; } diff --git a/chrome-extension/src/background/plugin-chat-api.ts b/chrome-extension/src/background/plugin-chat-api.ts index b2906170..d5f8cba6 100644 --- a/chrome-extension/src/background/plugin-chat-api.ts +++ b/chrome-extension/src/background/plugin-chat-api.ts @@ -39,7 +39,7 @@ const pluginChatApi = { return new Promise(resolve => { chrome.storage.local.get([chatKey], result => { const chat = result[chatKey] || null; - console.log('[pluginChatApi] getOrLoadChat:', chatKey, chat); + console.log('[pluginChatApi] getOrLoadChat:', chatKey, chat, chat?.messages); resolve(chat); }); }); @@ -48,17 +48,29 @@ const pluginChatApi = { // Сохранить сообщение в чат async saveMessage(pluginId: string, pageKey: string, message: ChatMessage): Promise<{ success: boolean }> { const chatKey = `${pluginId}::${getPageKey(pageKey)}`; - const chat = await this.getOrLoadChat(chatKey); + console.log('[pluginChatApi][saveMessage] BEFORE', { chatKey, pluginId, pageKey, message }); + let chat = await this.getOrLoadChat(chatKey); if (!chat) { - console.warn('[pluginChatApi] saveMessage: чат не найден, создаём новый'); + console.warn('[pluginChatApi][saveMessage] чат не найден, создаём новый'); await this.createChatIfNotExists(pluginId, pageKey); - return this.saveMessage(pluginId, pageKey, message); + // После создания чата — получить его снова + chat = await this.getOrLoadChat(chatKey); + if (!chat) { + // Если всё равно не найден — ошибка + console.error('[pluginChatApi][saveMessage] не удалось создать чат!'); + return { success: false }; + } } chat.messages.push(message); + console.log('[pluginChatApi][saveMessage] chat.messages после push:', chat.messages); chat.updatedAt = Date.now(); await new Promise(resolve => { chrome.storage.local.set({ [chatKey]: chat }, () => { - console.log('[pluginChatApi] saveMessage: добавляем сообщение в чат', chat); + console.log('[pluginChatApi][saveMessage] AFTER set:', { chatKey, chat }); + // Проверка: что реально лежит в storage после set + chrome.storage.local.get([chatKey], result => { + console.log('[pluginChatApi][saveMessage] ПРОВЕРКА storage после set:', result[chatKey]); + }); resolve(); }); }); @@ -87,9 +99,10 @@ const pluginChatApi = { text, updatedAt: Date.now(), }; + console.log('[pluginChatApi][saveDraft] BEFORE', { draftKey, pluginId, pageKey, text }); await new Promise(resolve => { chrome.storage.local.set({ [draftKey]: draft }, () => { - console.log('[pluginChatApi] saveDraft:', draft); + console.log('[pluginChatApi][saveDraft] AFTER', { draftKey, pluginId, pageKey, text, draft }); resolve(); }); }); @@ -99,11 +112,12 @@ const pluginChatApi = { // Получить черновик async getDraft(pluginId: string, pageKey: string): Promise<{ draftText: string }> { const draftKey = `${pluginId}::${getPageKey(pageKey)}::draft`; + console.log('[pluginChatApi][getDraft] BEFORE', { draftKey, pluginId, pageKey }); return new Promise(resolve => { chrome.storage.local.get([draftKey], result => { const draft = result[draftKey]; const draftText = draft && typeof draft.text === 'string' ? draft.text : ''; - console.log('[pluginChatApi] getDraft:', draftKey, draft, 'draftText:', draftText); + console.log('[pluginChatApi][getDraft] AFTER', { draftKey, pluginId, pageKey, draft, draftText }); resolve({ draftText }); }); }); @@ -112,9 +126,10 @@ const pluginChatApi = { // Удалить черновик async deleteDraft(pluginId: string, pageKey: string): Promise<{ success: boolean }> { const draftKey = `${pluginId}::${getPageKey(pageKey)}::draft`; + console.log('[pluginChatApi][deleteDraft] BEFORE', { draftKey, pluginId, pageKey }); await new Promise(resolve => { chrome.storage.local.remove([draftKey], () => { - console.log('[pluginChatApi] deleteDraft:', draftKey); + console.log('[pluginChatApi][deleteDraft] AFTER', { draftKey, pluginId, pageKey }); resolve(); }); }); @@ -127,11 +142,13 @@ const pluginChatApi = { chrome.storage.local.get(null, result => { const drafts = Object.values(result).filter( (item: unknown): item is ChatDraft => - item && - typeof item === 'object' && - 'draftKey' in item && - 'pluginId' in item && - (item as ChatDraft).pluginId === pluginId, + !!( + item && + typeof item === 'object' && + 'draftKey' in item && + 'pluginId' in item && + (item as ChatDraft).pluginId === pluginId + ), ); console.log('[pluginChatApi] listDraftsForPlugin:', pluginId, drafts); resolve(drafts); @@ -145,11 +162,13 @@ const pluginChatApi = { chrome.storage.local.get(null, result => { const chats = Object.values(result).filter( (item: unknown): item is PluginChat => - item && - typeof item === 'object' && - 'chatKey' in item && - 'pluginId' in item && - (item as PluginChat).pluginId === pluginId, + !!( + item && + typeof item === 'object' && + 'chatKey' in item && + 'pluginId' in item && + (item as PluginChat).pluginId === pluginId + ), ); console.log('[pluginChatApi] listChatsForPlugin:', pluginId, chats); resolve(chats as PluginChat[]); diff --git a/docs/best-practices/cursor-rules-system.md b/docs/best-practices/cursor-rules-system.md deleted file mode 100644 index 1fa5657c..00000000 --- a/docs/best-practices/cursor-rules-system.md +++ /dev/null @@ -1,288 +0,0 @@ -# Cursor Rules System — Modular, AI-First, Automated - -> This is a proven, modular rule/documentation system. Copy/adapt for any project. - -This document describes the principles, structure, automation, and best practices for organizing `.cursor/rules/` in a modern, AI-friendly, and scalable way. Use this as a template to implement the same system in any project. - ---- - -## 1. Introduction - -The `.cursor/rules/` system is designed for: -- Maximum clarity and maintainability for both humans and AI assistants -- Fast navigation, search, and automation -- Seamless scaling as the number of rules grows -- Full compatibility with AI-first workflows and best practices -- Automated cross-referencing and documentation - ---- - -## 2. Core Principles & Rationale - -- **English-First**: All rules, docs, and comments are in English for maximum AI and team compatibility. (User commands may remain in the original language for clarity.) -- **One Rule — One File**: Each `.mdc` file contains exactly one rule or standard. This enables modularity, easy linking, and granular automation. -- **Topic-Based Folders**: Rules are grouped by topic (e.g., `dev-principles/`, `architecture/`, `plugin/`, `ui/`, `workflow/`, `doc/`). -- **Category Expansion**: For large projects, use more granular folders: `security/`, `workflow/`, `code-style/`, `automation/`, `memorybank/`, `dev-experience/`. -- **Explicit Metadata**: Each rule file includes `description:`, `globs:`, `alwaysApply:`, and (optionally) `related:` and `examples:`. -- **Cross-Reference Policy**: Every rule or doc should include links to all relevant files (related rules, onboarding, progress, user commands, architecture, graveyard, etc.) in a `Cross-References` section. -- **Automation-First**: Index, summary, and cross-references are auto-generated and checked by scripts for all `.md`/`.mdc` files. -- **AI-First Documentation**: All rules are written with clarity for both humans and AI, with explicit logic, rationale, and cross-links. - ---- - -## 3. Directory & File Structure - -``` -.cursor/ - rules/ - README.md - index.mdc - dev-principles/ - 01-do-no-harm.mdc - ... - architecture/ - project-structure.mdc - ... - plugin/ - structure.mdc - ... - ui/ - accessibility.mdc - ... - workflow/ - branches.mdc - ... - doc/ - ai-first.mdc - user-commands.mdc - ... - security/ - security-principles.mdc - ... - code-style/ - typescript-best-practices.mdc - ... - automation/ - automation.mdc - ... - memorybank/ - memorybank-quality.mdc - knowledge-map.mdc - ... - dev-experience/ - user-commands.mdc - ... -``` - ---- - -## 4. Rule File Format (`.mdc`) - -Each rule file must contain: -- `# Heading` — short, clear title -- **Category** (optional but recommended for large projects) -- Main rule body (bulleted or short paragraphs) -- **Rationale** — why this rule is important (AI/Dev/Team context) -- **Example** — code/config/example if relevant -- `related:` — (optional) list of related rule files -- **Cross-References** — (optional but recommended) links to onboarding, progress, user commands, architecture, graveyard, etc. -- `description:` — short summary for index/search -- `globs:` — file globs for rule application -- `alwaysApply:` — usually `false` -- `---` — end of metadata - -**Example:** -``` -# Plugin Error Handling - -**Category:** plugin - -- Graceful Degradation: Continue working with reduced functionality -- User Feedback: Provide clear error messages to users -- Logging: Log errors for debugging without exposing sensitive data -- Fallbacks: Implement fallback mechanisms for critical features -- Recovery: Automatic retry mechanisms where appropriate - -## Rationale -Clear error handling ensures plugins do not break the user experience and are easy to debug for both developers and AI. - -## Example -If a plugin fails, show a user-friendly error and log the details for debugging. - -related: - - plugin-security.mdc - - architecture-error-handling.mdc - -## Cross-References -- [Onboarding](../../docs/onboarding.md) — for new developer guidance -- [Progress](../../memory-bank/progress.md) — for current project status -- [User Commands](../../docs/USER_COMMANDS.md) — for automation commands -- [Architecture](../../memory-bank/codebase-architecture.md) — for system overview - -description: Error handling requirements for all plugins -globs: - - public/plugins/* -alwaysApply: false ---- -``` - ---- - -## 5. Automation & CLI - -- **CLI Scripts** (in `.cursor/rules/`): - - `create-rule.cjs` — Interactive CLI to create a new rule file from a template. Updates index/README automatically. - - `generate-rules-index.cjs` — Scans all `.mdc` files (recursively) and regenerates `index.mdc` and the structure section in `README.md`. - - `check-rules-structure.cjs` — Validates all `.mdc` files for required sections, uniqueness, and valid related links. Used in CI. -- **Advanced CLI/Helper Scripts** (optional): - - `list` — Show structure of all rules by folder - - `search ` — Search rules by keyword - - `add ` — Create a new rule from template - - `edit ` — Edit a rule by relative path - - `generate-toc` — Recursively updates ToC, summary, and required cross-references for all `.md`/`.mdc` files - - `security-audit` — Checks Docker, .env, dependencies, outputs `audit-report.md` -- **Usage:** - - `node .cursor/rules/create-rule.cjs` - - `node .cursor/rules/generate-rules-index.cjs` - - `node .cursor/rules/check-rules-structure.cjs` - ---- - -## 6. CI Integration - -- **GitHub Actions** workflow (`.github/workflows/rules-check.yml`): - - Runs on every push/PR to `.cursor/rules/` - - Regenerates index/README and checks for uncommitted changes - - Validates all rules for structure and related links - - Fails the build if any issues are found -- **Advanced CI (optional):** - - Runs ToC/cross-reference automation, security/performance audit, and roadmap sync - -**Example:** -```yaml -name: Rules Structure Check -on: - push: - paths: - - '.cursor/rules/**' - pull_request: - paths: - - '.cursor/rules/**' -jobs: - check-rules: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '18' - - name: Generate index and README structure - run: node .cursor/rules/generate-rules-index.cjs - - name: Check for uncommitted changes - run: | - git diff --exit-code || (echo 'index.mdc or README.md is outdated. Please run generate-rules-index.cjs and commit the result.' && exit 1) - - name: Check rules structure - run: node .cursor/rules/check-rules-structure.cjs -``` - ---- - -## 7. How to Add/Update Rules - -- Use `create-rule.cjs` to add new rules (enforces template and updates navigation) -- Always provide a clear heading, rationale, example, and cross-references -- Use English for all content except user commands (which may remain in the original language) -- Run `generate-rules-index.cjs` after any manual changes -- Run `check-rules-structure.cjs` to validate before commit/PR -- For advanced projects, use the CLI/ToC/cross-reference automation and developer helper scripts - ---- - -## 8. How to Port to Another Project - -1. Copy `.cursor/rules/` (with all subfolders, scripts, and templates) to the new project -2. Add the GitHub Actions workflow to `.github/workflows/` -3. Update or add rules as needed for the new context -4. Run the CLI scripts to generate index/README and validate structure -5. (Optional) Update globs and descriptions for the new codebase -6. Document any project-specific conventions in `README.md` -7. (Optional) Add advanced automation for ToC, cross-references, and roadmap sync - ---- - -## 9. Advanced Practices: Roadmap & Synchronization - -- **User-Facing Roadmap:** - - All current and planned automation, DevOps, and AI improvements are published in `docs/PLANS.md` for easy access by users and contributors. - - This file is always in sync with the technical/AI roadmap in `memory-bank/progress.md`. -- **AI/Dev Roadmap:** - - `memory-bank/progress.md` contains the full, detailed, and always up-to-date list of planned improvements, technical context, and project status for AI/LLM and the core team. -- **Synchronization Mechanism:** - - The section `## Planned Automation & Improvements` is automatically synchronized between `memory-bank/progress.md` and `docs/PLANS.md` using a script (e.g., `tools/sync_plans.py`). - - This script can be run manually or automatically in CI. - - Any update to plans in one file is reflected in the other, ensuring both user and AI/Dev audiences always see the latest roadmap. -- **Best Practice:** - - Always update plans in `memory-bank/progress.md` (the source of truth), then run the sync script or let CI handle it. - - Reference `docs/PLANS.md` in onboarding, README, and user docs for maximum transparency. - ---- - -## 10. FAQ & Troubleshooting - -- **Q: Why English?** - - For maximum AI compatibility and international team support -- **Q: Why one rule per file?** - - For modularity, easy linking, and granular automation -- **Q: What if I need a new topic?** - - Just create a new folder and add rules there -- **Q: How to avoid duplicates?** - - Use the CLI search and always check before adding -- **Q: How to update navigation?** - - Run the ToC/summary automation after any changes - ---- - -## 11. Appendix: Templates & Examples - -**Rule Template:** -``` -# [Rule Title] - -**Category:** [security|workflow|code-style|automation|memorybank|dev-experience] - -## Rule -Describe the rule clearly and concisely. - -## Rationale -Why is this rule important? (AI/Dev/Team context) - -## Example -Provide a code/config/example if relevant. - -related: - - [other-rule.mdc] - -## Cross-References -- [Related Rule 1](../security/another-rule.mdc) — similar security policy -- [Graveyard](../../memory-bank/graveyard.md) — see failed solutions -- [Onboarding](../../docs/onboarding.md) — for new developer guidance -- [Progress](../../memory-bank/progress.md) — for current project status -- [User Commands](../../docs/USER_COMMANDS.md) — for automation commands -- [Architecture](../../memory-bank/codebase-architecture.md) — for system overview - -description: [Short summary] -globs: - - [glob patterns] -alwaysApply: false ---- -``` - -**CLI Usage:** -- `node .cursor/rules/create-rule.cjs` -- `node .cursor/rules/generate-rules-index.cjs` -- `node .cursor/rules/check-rules-structure.cjs` - ---- - -**This system is proven, scalable, and AI-friendly. Copy, adapt, and use it in any project!** \ No newline at end of file diff --git a/docs/best-practices/testing-and-troubleshooting.md b/docs/best-practices/testing-and-troubleshooting.md deleted file mode 100644 index f16d62e7..00000000 --- a/docs/best-practices/testing-and-troubleshooting.md +++ /dev/null @@ -1,26 +0,0 @@ -# Testing & Troubleshooting Documentation Best Practice - -Document all testing and troubleshooting procedures in modular, cross-linked guides. This ensures rapid onboarding, effective debugging, and AI assistant support. - -## Key Practices -- Write step-by-step guides for all major testing and troubleshooting flows -- Separate usage, troubleshooting, and advanced diagnostics into distinct files -- Cross-link guides for navigation (usage → troubleshooting → advanced) -- Use clear, reproducible steps and code snippets -- Reference relevant scripts, automation, and best practices -- Update guides as features or workflows change - -## Example Guides -- [DevTools Testing Guide](../devtools-testing-guide.md) -- [DevTools Panel Troubleshooting](../devtools-panel-troubleshooting.md) -- [DevTools Panel Usage](../devtools-panel-usage.md) - -## Rationale -- Reduces time to diagnose and fix issues -- Enables AI assistants to help with debugging and onboarding -- Makes knowledge easily transferable to new projects - -## Cross-References -- [AI-First Documentation](./ai-first-documentation.md) -- [Cursor Rules System](./cursor-rules-system.md) -- [Project README](../../README.md) \ No newline at end of file diff --git a/docs/best-practices/transferability.md b/docs/best-practices/transferability.md deleted file mode 100644 index e259e290..00000000 --- a/docs/best-practices/transferability.md +++ /dev/null @@ -1,31 +0,0 @@ -# Transferability & Project Bootstrap Best Practice - -Reuse this folder and its methods to rapidly bootstrap new projects with proven, AI-friendly, automation-ready practices. - -## How to Transfer -1. Copy `docs/best-practices/` to your new project -2. Copy `.cursor/rules/` and all automation scripts (CLI, sync, CI) -3. Add or update rules, docs, and scripts for your context -4. Reference best-practices in your README and onboarding -5. Set up CI for rule validation and roadmap sync -6. Update cross-links as needed - -## Checklist -- [ ] Modular rule system in `.cursor/rules/` -- [ ] Best-practices folder in `docs/` -- [ ] CLI scripts for rule management -- [ ] Roadmap sync script and dual-file system -- [ ] CI workflow for docs/rules -- [ ] AI-first documentation everywhere -- [ ] Testing/troubleshooting guides - -## Rationale -- Enables rapid, high-quality project setup -- Ensures all team members and AI assistants have the best context -- Reduces duplication and onboarding time - -## Cross-References -- [Cursor Rules System](./cursor-rules-system.md) -- [AI-First Documentation](./ai-first-documentation.md) -- [Roadmap Synchronization](./roadmap-sync.md) -- [Project README](../../README.md) \ No newline at end of file diff --git a/docs/developer-commands.md b/docs/developer-commands.md new file mode 100644 index 00000000..497be69d --- /dev/null +++ b/docs/developer-commands.md @@ -0,0 +1,76 @@ +# Developer Commands + +Список часто используемых команд для сборки, очистки и разработки проекта. + +## Очистка и сборка + +```bash +cd /home/igor/Документы/Проекты/agent-plugins-platform +rm -rf dist +pnpm run build +``` + +- Удаляет папку dist и пересобирает проект. +- Используйте при ошибках сборки, после обновления зависимостей или для чистого билда. + +## Ещё команды + +```bash + cd /home/igor/Документы/Проекты/agent-plugins-platform + pnpm run dev +``` + +- Для разработки удалять dist не нужно + +1. Когда нужно удалять dist? +Перед pnpm run build +Удалять dist (через rm -rf dist) перед продакшен-сборкой — это хорошая практика. +Это гарантирует, что в папке не останется “мусора” от старых сборок, и финальный артефакт будет чистым и актуальным. +Перед pnpm run dev +Обычно удалять dist перед запуском dev-сервера НЕ нужно! +Dev-сервер (pnpm run dev) работает с исходниками, использует свой внутренний кэш и HMR, и не требует чистой папки dist. +Более того, некоторые dev-серверы могут использовать содержимое dist для ускорения старта (например, если там лежит что-то от предыдущей сборки). +2. Когда НЕ нужно удалять dist? +Если вы просто запускаете pnpm run dev для разработки — не удаляйте dist. +Если вы не меняли глобальные зависимости, не обновляли конфиг сборки, не делали “глубокий” рефакторинг — не нужно чистить dist для dev. +Удаление dist перед dev может даже замедлить старт, если dev-сервер что-то кэширует. +3. Когда всё-таки стоит удалить dist перед dev? +Если dev-сервер явно жалуется на “битые” артефакты в dist (редко, но бывает). +Если вы подозреваете, что dev-сервер использует старые файлы из dist и это вызывает баги. +После крупных изменений в конфиге сборки, обновления инструментов, перехода между ветками с несовместимыми артефактами. + +_Добавьте сюда другие команды, которые часто нужны для разработки, тестирования, запуска e2e и т.д._ + +Запуск chrome для тестов из Cursor: +flatpak run --branch=stable --arch=x86_64 --command=/app/bin/chrome com.google.Chrome --remote-debugging-port=9222 + +Chrome в manjaro ставится только через Flatpack, но можно установить Chromium + +chromium --remote-debugging-port=9222 + +--- + +## [Manjaro] Решение проблемы с remote debugging (9222) для Chrome/Chromium + +**Симптомы:** +- Порт 9222 не слушается при запуске Chrome Flatpak с флагом `--remote-debugging-port=9222`. +- В Chromium отсутствует бинарник в /usr/bin/, запуск из /usr/lib/chromium не работает. + +**Решение:** +1. Установить Chromium из официального репозитория: + ```bash + sudo pacman -Syu chromium + ``` +2. Запустить с remote debugging: + ```bash + chromium --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug + ``` +3. Проверить доступность: + ```bash + curl http://localhost:9222/json/version + ``` + +**Важно:** +- Flatpak Chrome не подходит для remote debugging и автоматизации — используйте только системный Chromium/Chrome. + +--- diff --git a/docs/best-practices/README.md b/docs/for-ai-best-practices/README.md similarity index 59% rename from docs/best-practices/README.md rename to docs/for-ai-best-practices/README.md index a9e0589f..6d7d5944 100644 --- a/docs/best-practices/README.md +++ b/docs/for-ai-best-practices/README.md @@ -27,4 +27,21 @@ This folder collects modular, transferable best practices, organizational method --- +## Safe Delete & Automation Safety + +- All automation scripts must use safe delete functions to prevent accidental removal of protected directories (e.g., docs/for-ai-best-practices, memory-bank, platform-core, chrome-extension/public/plugins). +- Use safe_rm in bash scripts and safeDelete in Node.js scripts (see ci-integration.md for details). +- Any attempt to delete a protected directory should be blocked and logged. +- CI workflows should notify maintainers if such an attempt is detected. + +## Cross-References +- [Project README](../../README.md) +- [Cursor Rules System](../cursor-rules-system.md) +- [Roadmap & Progress](../../memory-bank/progress.md) +- [Developer Setup](../../DEVELOPER_SETUP.md) +- [Plugin Development](../../PLUGIN_DEVELOPMENT.md) +- [CI Integration & Safe Delete](./ci-integration.md) + +--- + **Contribute new best practices as you discover them!** \ No newline at end of file diff --git a/docs/best-practices/ai-first-documentation.md b/docs/for-ai-best-practices/ai-first-documentation.md similarity index 100% rename from docs/best-practices/ai-first-documentation.md rename to docs/for-ai-best-practices/ai-first-documentation.md diff --git a/docs/best-practices/ci-integration.md b/docs/for-ai-best-practices/ci-integration.md similarity index 59% rename from docs/best-practices/ci-integration.md rename to docs/for-ai-best-practices/ci-integration.md index 08b8de7c..71005f3f 100644 --- a/docs/best-practices/ci-integration.md +++ b/docs/for-ai-best-practices/ci-integration.md @@ -39,12 +39,34 @@ jobs: run: node .cursor/rules/check-rules-structure.cjs ``` +--- + +## Safe Delete & Notification in CI/CD + +- All automation and CI scripts must protect critical directories from accidental deletion. +- Use safe_rm (bash) or safeDelete (Node.js) in all scripts that may remove files/directories. +- Maintain a list of protected directories (e.g., docs/for-ai-best-practices, memory-bank, platform-core, chrome-extension/public/plugins). +- Any attempt to delete a protected directory should: + - Be blocked + - Log a warning (locally or in CI) + - Optionally, send a notification (e.g., GitHub Actions annotation, Slack, email) + +### Example (GitHub Actions warning) +```yaml +- name: Check for protected directory deletion + run: | + if git diff --name-status | grep -E 'D[[:space:]]+(docs/for-ai-best-practices|memory-bank|platform-core|chrome-extension/public/plugins)'; then + echo '::warning::Attempted deletion of a protected directory! Review required.' + fi +``` + ## Rationale -- Ensures documentation and rules are always up-to-date and valid -- Prevents human error and outdated navigation -- Enables rapid onboarding and AI context +- Prevents accidental or malicious loss of critical project data +- Ensures all destructive actions are intentional and reviewed +- Increases trust in automation and onboarding safety ## Cross-References - [Cursor Rules System](./cursor-rules-system.md) +- [Safe Delete Best Practice](./README.md) - [Roadmap Synchronization](./roadmap-sync.md) - [Project README](../../README.md) \ No newline at end of file diff --git a/docs/best-practices/development-principles.md b/docs/for-ai-best-practices/development-principles.md similarity index 100% rename from docs/best-practices/development-principles.md rename to docs/for-ai-best-practices/development-principles.md diff --git a/docs/best-practices/roadmap-sync.md b/docs/for-ai-best-practices/roadmap-sync.md similarity index 100% rename from docs/best-practices/roadmap-sync.md rename to docs/for-ai-best-practices/roadmap-sync.md diff --git a/docs/for-ai-best-practices/testing-and-troubleshooting.md b/docs/for-ai-best-practices/testing-and-troubleshooting.md new file mode 100644 index 00000000..4b1aa3d0 --- /dev/null +++ b/docs/for-ai-best-practices/testing-and-troubleshooting.md @@ -0,0 +1,63 @@ +# Testing & Troubleshooting Documentation Best Practice + +Document all testing and troubleshooting procedures in modular, cross-linked guides. This ensures rapid onboarding, effective debugging, and AI assistant support. + +## Key Practices +- Write step-by-step guides for all major testing and troubleshooting flows +- Separate usage, troubleshooting, and advanced diagnostics into distinct files +- Cross-link guides for navigation (usage → troubleshooting → advanced) +- Use clear, reproducible steps and code snippets +- Reference relevant scripts, automation, and best practices +- Update guides as features or workflows change + +## Example Guides +- [DevTools Testing Guide](../devtools-testing-guide.md) +- [DevTools Panel Troubleshooting](../devtools-panel-troubleshooting.md) +- [DevTools Panel Usage](../devtools-panel-usage.md) + +## Rationale +- Reduces time to diagnose and fix issues +- Enables AI assistants to help with debugging and onboarding +- Makes knowledge easily transferable to new projects + +## Cross-References +- [AI-First Documentation](./ai-first-documentation.md) +- [Cursor Rules System](./cursor-rules-system.md) +- [Project README](../../README.md) + +--- + +## How to Analyze External Repositories as Submodules + +To analyze, search, and track changes in an external git repository (e.g., for studying Chrome extension patterns or sidepanel-background communication), add it as a git submodule: + +### Step-by-step: +1. In your monorepo root, run: + ```bash + git submodule add external/ + git submodule update --init --recursive + ``` + Example: + ```bash + git submodule add https://github.com/QizhengMo/chrome-extension-sidepanel-template.git external/sidepanel-template + git submodule update --init --recursive + ``` +2. Open the monorepo in Cursor/VSCode. The submodule will be indexed and available for code search, navigation, and analysis. +3. To update the submodule to the latest version: + ```bash + cd external/sidepanel-template + git pull origin main + ``` +4. To remove the submodule (if no longer needed): + ```bash + git submodule deinit -f external/sidepanel-template + git rm -f external/sidepanel-template + rm -rf .git/modules/external/sidepanel-template + ``` + +**Benefits:** +- Keeps external code isolated from your main git history +- Allows easy updates and independent versioning +- Enables full code search and analysis in Cursor/VSCode + +**Use this method for any external codebase you want to analyze or reference in your monorepo.** \ No newline at end of file diff --git a/docs/for-ai-best-practices/transferability.md b/docs/for-ai-best-practices/transferability.md new file mode 100644 index 00000000..14f0292b --- /dev/null +++ b/docs/for-ai-best-practices/transferability.md @@ -0,0 +1,5 @@ + + +# Перенесено + +Инструкция теперь находится в файле [../transferability.ru.md](../transferability.ru.md) (на русском языке, для разработчиков). \ No newline at end of file diff --git a/docs/transferability.ru.md b/docs/transferability.ru.md new file mode 100644 index 00000000..05f930a6 --- /dev/null +++ b/docs/transferability.ru.md @@ -0,0 +1,100 @@ +# Инструкция по переносу окружения и best practices для разработчиков + +--- +Основной репозиторий проекта: https://github.com/LebedevIV/agent-plugins-platform-boilerplate +--- + +## 1. Клонирование сторонних репозиториев как submodule + +**Зачем:** +- Позволяет анализировать внешний код в рамках одного монорепозитория, не смешивая git-истории. +- Упрощает навигацию, сравнение, обновление шаблонов и best practices. +- Позволяет Cursor и другим инструментам индексировать весь код для поиска и AI-анализа. + +**Как добавить submodule:** + +```bash +# Клонировать внешний репозиторий как submodule в папку external/имя: +git submodule add external/<имя> +git submodule update --init --recursive +``` + +**Как обновить submodule:** + +```bash +cd external/<имя> +git fetch +git checkout +cd ../.. +git add external/<имя> +git commit -m "update submodule <имя>" +``` + +**Как удалить submodule:** + +```bash +git submodule deinit -f external/<имя> +git rm -f external/<имя> +rm -rf .git/modules/external/<имя> +``` + +**Возможности:** +- Быстрый доступ к коду для анализа, сравнения, копирования решений. +- Возможность отслеживать upstream-изменения и обновлять шаблоны. +- Использование внешних best practices без смешивания с основной историей проекта. + +--- + +## 2. Рекомендуемый перечень данных для базы знаний Cursor/AI + +**Зачем:** +- Позволяет быстро восстановить или перенести рабочее окружение. +- Гарантирует, что AI-ассистент и команда будут учитывать все важные нюансы проекта. +- Упрощает onboarding новых участников и автоматизацию. + +**Что рекомендуется сохранять:** + +- **Операционная система:** + - Пример: Manjaro Linux (Plasma), macOS, Windows 11 +- **Версия браузера:** + - Пример: Chrome 138.0.7204.100 (Flatpak) +- **IDE и инструменты:** + - Пример: Cursor, VSCode, WebStorm + - Установленные расширения Cursor (если есть) +- **Связанные репозитории:** + - Основной проект, внешние submodules, шаблоны, тестовые репозитории +- **Наличие git CLI:** + - Версия git, особенности конфигурации (user.name, user.email, hooks) +- **Правила языка и коммуникации:** + - Пример: Всегда отвечать на русском языке + - Язык документации (например, английский для config) +- **Правила git-ветвления:** + - develop — основная ветка разработки + - feature/… — новые фичи + - fix/… — багфиксы + - merge только через pull request +- **Стандарты и best practices:** + - ESM-only для внутренних пакетов + - Стандарты для package.json (main, exports) + - Использование chrome.storage.sync вместо localStorage + - React 19+, Vite 6+, @vitejs/plugin-react-swc + - Проверка единственной версии react/react-dom +- **Инструменты для отладки:** + - Debugger for Chrome (Flatpak, remote-debugging-port) + - Composer Web + - Рекомендации по запуску и инспекции расширения +- **Особенности окружения:** + - Как запускать Chrome с нужными флагами + - Как инспектировать боковую панель/вкладку расширения +- **AI-правила:** + - Всегда проявлять инициативу, предлагать улучшения, критиковать конструктивно + - Сохранять все важные правила и environment в AI memory-bank + +**Пример запроса для сохранения в базе знаний:** + +> Сохрани в базе знаний: Manjaro Linux (Plasma), Chrome 138 (Flatpak), Cursor, английский для config, всегда отвечать на русском, develop/feature/fix-ветки, ESM-only, Debugger for Chrome, Composer Web, инспекция sidepanel через ПКМ, инициативность ассистента. + +--- + +**Рекомендация:** +- После переустановки IDE или смены окружения — первым делом восстановить эти данные в базе знаний AI/assistent, чтобы не потерять контекст и правила работы. \ No newline at end of file diff --git a/external/chrome-extension-boilerplate-react-vite b/external/chrome-extension-boilerplate-react-vite new file mode 160000 index 00000000..2087bc9c --- /dev/null +++ b/external/chrome-extension-boilerplate-react-vite @@ -0,0 +1 @@ +Subproject commit 2087bc9ce162cf84120588a6189b2b53437c43b6 diff --git a/external/sidepanel-template b/external/sidepanel-template new file mode 160000 index 00000000..0fd7acde --- /dev/null +++ b/external/sidepanel-template @@ -0,0 +1 @@ +Subproject commit 0fd7acdebf993cfc2fb78a8614619a839acfd9da diff --git a/memory-bank/errors.md b/memory-bank/errors.md index 45c1b93d..86b3d3af 100644 --- a/memory-bank/errors.md +++ b/memory-bank/errors.md @@ -142,4 +142,37 @@ const getCurrentUrl = async () => { ## Другие ошибки -*Здесь будут добавляться другие решенные проблемы* \ No newline at end of file +*Здесь будут добавляться другие решенные проблемы* + +--- + +### [Manjaro] Remote debugging (9222) не работает в Chrome Flatpak и решается установкой Chromium из репозитория + +**Проблема:** +- При запуске Chrome через Flatpak с флагом `--remote-debugging-port=9222` порт не слушается, DevTools протокол недоступен (`curl http://localhost:9222/json/version` не отвечает). +- Аналогично, если Chromium не установлен как системный пакет, а только присутствует в /usr/lib/chromium (нет бинарника в /usr/bin/), remote debugging не работает. + +**Причина:** +- Flatpak изолирует сетевые порты, sandbox не позволяет пробросить 9222 наружу. +- В Manjaro/Arch бинарник Chromium может отсутствовать или быть неисполняемым, если пакет установлен не полностью. + +**Решение:** +1. Установить Chromium из официального репозитория: + ```bash + sudo pacman -Syu chromium + ``` +2. Запустить с remote debugging и отдельным профилем: + ```bash + chromium --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug + ``` +3. Проверить, что порт слушается: + ```bash + ss -ltnp | grep 9222 + curl http://localhost:9222/json/version + ``` +4. После этого DevTools протокол доступен, можно использовать Composer Web, Puppeteer, VSCode DevTools и др. + +**Примечание:** +- Для Flatpak Chrome remote debugging практически всегда не работает из-за sandbox. Используйте только системный Chromium/Chrome для автоматизации и интеграции. + +--- \ No newline at end of file diff --git a/package.json b/package.json index 98a2db69..02c4966f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agent-plugins-platform", - "version": "1.0.148", + "version": "1.0.153", "description": "Browser extension that enables Python plugin execution using Pyodide and MCP protocol", "license": "MIT", "private": true, diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index bf8e5674..bf523f60 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@extension/dev-utils", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - dev utils", "type": "module", "private": true, diff --git a/packages/env/package.json b/packages/env/package.json index 386af9ca..cd05170e 100644 --- a/packages/env/package.json +++ b/packages/env/package.json @@ -1,6 +1,6 @@ { "name": "@extension/env", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - environment variables", "type": "module", "private": true, diff --git a/packages/hmr/package.json b/packages/hmr/package.json index 5e587f17..e76de434 100644 --- a/packages/hmr/package.json +++ b/packages/hmr/package.json @@ -1,6 +1,6 @@ { "name": "@extension/hmr", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - hot module reload/refresh", "type": "module", "private": true, diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 9e386d84..5a42e884 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@extension/i18n", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - internationalization", "type": "module", "private": true, diff --git a/packages/module-manager/package.json b/packages/module-manager/package.json index eae4473e..197930ad 100644 --- a/packages/module-manager/package.json +++ b/packages/module-manager/package.json @@ -1,6 +1,6 @@ { "name": "@extension/module-manager", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - module manager", "type": "module", "private": true, diff --git a/packages/shared/package.json b/packages/shared/package.json index 4b2d616f..b49119a9 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@extension/shared", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - shared code", "type": "module", "private": true, diff --git a/packages/storage/package.json b/packages/storage/package.json index 5e22ee8c..bd3e3896 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@extension/storage", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - storage", "type": "module", "private": true, diff --git a/packages/tailwindcss-config/package.json b/packages/tailwindcss-config/package.json index 6f102563..ae19e7e4 100644 --- a/packages/tailwindcss-config/package.json +++ b/packages/tailwindcss-config/package.json @@ -1,6 +1,6 @@ { "name": "@extension/tailwindcss-config", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - tailwindcss configuration", "main": "tailwind.config.ts", "private": true, diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json index 7a2c7d64..c177a739 100644 --- a/packages/tsconfig/package.json +++ b/packages/tsconfig/package.json @@ -1,6 +1,6 @@ { "name": "@extension/tsconfig", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - tsconfig", "private": true, "sideEffects": false diff --git a/packages/ui/package.json b/packages/ui/package.json index 3a516eb2..434469ca 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@extension/ui", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - ui components", "type": "module", "private": true, diff --git a/packages/vite-config/package.json b/packages/vite-config/package.json index 8253ada6..bbedecc1 100644 --- a/packages/vite-config/package.json +++ b/packages/vite-config/package.json @@ -1,6 +1,6 @@ { "name": "@extension/vite-config", - "version": "0.5.172", + "version": "0.5.177", "description": "chrome extension - vite base configuration", "type": "module", "private": true, diff --git a/packages/zipper/package.json b/packages/zipper/package.json index 3bb5d952..1a71d676 100644 --- a/packages/zipper/package.json +++ b/packages/zipper/package.json @@ -1,6 +1,6 @@ { "name": "@extension/zipper", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - zipper", "type": "module", "private": true, diff --git a/pages/content-runtime/package.json b/pages/content-runtime/package.json index f50157b0..7451e470 100644 --- a/pages/content-runtime/package.json +++ b/pages/content-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@extension/content-runtime-script", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - content runtime script", "type": "module", "private": true, diff --git a/pages/content-ui/package.json b/pages/content-ui/package.json index 4a7d6737..310043f2 100644 --- a/pages/content-ui/package.json +++ b/pages/content-ui/package.json @@ -1,6 +1,6 @@ { "name": "@extension/content-ui", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - content ui", "type": "module", "private": true, diff --git a/pages/content/package.json b/pages/content/package.json index b47186b1..cb290cf4 100644 --- a/pages/content/package.json +++ b/pages/content/package.json @@ -1,6 +1,6 @@ { "name": "@extension/content-script", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - content script", "type": "module", "private": true, diff --git a/pages/devtools-panel/package.json b/pages/devtools-panel/package.json index 6c08dce2..22c15214 100644 --- a/pages/devtools-panel/package.json +++ b/pages/devtools-panel/package.json @@ -1,6 +1,6 @@ { "name": "Agent Platform Tools", - "version": "0.5.164", + "version": "0.5.169", "description": "Agent Plugins Platform: инструменты и логи для отладки плагинов.", "type": "module", "private": true, diff --git a/pages/devtools/package.json b/pages/devtools/package.json index 5e033d4b..769ea6c7 100644 --- a/pages/devtools/package.json +++ b/pages/devtools/package.json @@ -1,6 +1,6 @@ { "name": "@extension/devtools", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - devtools", "type": "module", "private": true, diff --git a/pages/new-tab/package.json b/pages/new-tab/package.json index 74c18818..44d293a8 100644 --- a/pages/new-tab/package.json +++ b/pages/new-tab/package.json @@ -1,6 +1,6 @@ { "name": "@extension/new-tab", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - new tab", "type": "module", "private": true, diff --git a/pages/options/package.json b/pages/options/package.json index 6c4e8710..9e9fcb45 100644 --- a/pages/options/package.json +++ b/pages/options/package.json @@ -1,6 +1,6 @@ { "name": "@extension/options", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - options", "type": "module", "private": true, diff --git a/pages/popup/package.json b/pages/popup/package.json index 947e068c..f850b687 100644 --- a/pages/popup/package.json +++ b/pages/popup/package.json @@ -1,6 +1,6 @@ { "name": "@extension/popup", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - popup", "type": "module", "private": true, diff --git a/pages/side-panel/package.json b/pages/side-panel/package.json index f3950075..ab7a83eb 100644 --- a/pages/side-panel/package.json +++ b/pages/side-panel/package.json @@ -1,6 +1,6 @@ { "name": "@extension/sidepanel", - "version": "0.5.164", + "version": "0.5.169", "description": "chrome extension - side panel", "type": "module", "private": true, diff --git a/pages/side-panel/src/components/PluginControlPanel.tsx b/pages/side-panel/src/components/PluginControlPanel.tsx index 85107303..dde8e672 100644 --- a/pages/side-panel/src/components/PluginControlPanel.tsx +++ b/pages/side-panel/src/components/PluginControlPanel.tsx @@ -81,37 +81,41 @@ export const PluginControlPanel: React.FC = ({ setLoading(true); setError(null); try { + console.log('[PluginControlPanel] loadChat запрос:', { pluginId, pageKey }); const chat = await chrome.runtime.sendMessage({ type: 'GET_PLUGIN_CHAT', pluginId, pageKey, }); + console.log('[PluginControlPanel] chat из background:', { + pluginId, + pageKey, + chat, + typeofChat: typeof chat, + chatKeys: chat ? Object.keys(chat) : undefined, + messages: chat?.messages, + isArray: Array.isArray(chat?.messages), + messagesLength: chat?.messages?.length, + }); console.log( '[PluginControlPanel] loadChat RAW:', chat, typeof chat, chat && chat.messages, Array.isArray(chat?.messages), + Object.keys(chat || {}), + chat?.messages && chat?.messages.length, + chat?.messages && chat?.messages[0], ); - if (chat && Array.isArray(chat.messages)) { - setMessages( - chat.messages.map( - (msg: { - id?: string; - content?: string; - text?: string; - role?: string; - isUser?: boolean; - timestamp?: number; - }) => ({ - id: msg.id || String(msg.timestamp || Date.now()), - text: msg.content || msg.text, - isUser: msg.role ? msg.role === 'user' : !!msg.isUser, - timestamp: msg.timestamp || Date.now(), - }), - ), - ); - console.log('[PluginControlPanel] setMessages:', chat.messages); + const messages = chat?.messages || chat?.chat?.messages; + if (Array.isArray(messages)) { + console.log('[PluginControlPanel] messages для setMessages:', messages); + setMessages(messages); + } else if (chat && chat.error) { + console.error('[PluginControlPanel] Ошибка получения чата:', chat.error, chat.details); + alert('Ошибка получения чата: ' + chat.error + (chat.details ? '\n' + chat.details : '')); + setMessages([]); + return; } else { setMessages([]); console.log('[PluginControlPanel] setMessages: []'); @@ -178,15 +182,33 @@ export const PluginControlPanel: React.FC = ({ } }, [currentView, loadDraft]); + // Логирование каждого рендера и ключевых параметров + useEffect(() => { + console.log('[PluginControlPanel] === РЕНДЕР ===', { + pluginId, + pageKey, + draftText, + message, + currentView, + isRunning, + isPaused, + }); + }); + // --- Синхронизация message с draftText после загрузки черновика --- useEffect(() => { - // Подставлять draftText только если message пустое (т.е. при инициализации) - if (typeof message === 'string' && message === '' && draftText) { + // Если draftText пустой, подставляем автотестовый текст + if (typeof draftText === 'string' && draftText === '') { + setMessage('Тестовое сообщение для диагностики'); + console.log('[PluginControlPanel] draftText пустой, подставлен автотестовый текст'); + } else if (typeof draftText === 'string') { setMessage(draftText); + console.log('[PluginControlPanel] draftText подставлен в поле ввода:', draftText); } - }, [draftText]); + }, [draftText, setMessage]); const handleSendMessage = async (): Promise => { + console.log('[PluginControlPanel] handleSendMessage: попытка отправки', { message }); if (!message.trim()) return; const newMessage: ChatMessage = { id: Date.now().toString(), @@ -195,7 +217,6 @@ export const PluginControlPanel: React.FC = ({ timestamp: Date.now(), }; setMessage(''); // Очищаем сообщение через хук - // Удалить все вызовы setSyncStatus(...) try { await chrome.runtime.sendMessage({ type: 'SAVE_PLUGIN_CHAT_MESSAGE', @@ -207,12 +228,12 @@ export const PluginControlPanel: React.FC = ({ timestamp: newMessage.timestamp, }, }); - // Удалить все вызовы setSyncStatus(...) + console.log('[PluginControlPanel] handleSendMessage: сообщение отправлено', newMessage); await loadChat(); // Перезагружаем историю чата после отправки await clearDraft(); // Сбрасываем черновик после отправки - } catch { - // Удалить все вызовы setSyncStatus(...) + } catch (e) { setError('Ошибка сохранения сообщения'); + console.error('[PluginControlPanel] handleSendMessage: ошибка отправки', e); } }; @@ -256,6 +277,10 @@ export const PluginControlPanel: React.FC = ({ messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages]); + useEffect(() => { + console.log('[PluginControlPanel] messages после setMessages:', messages); + }, [messages]); + // Фокус на поле ввода при открытии чата useEffect(() => { if (currentView === 'chat') { @@ -265,7 +290,7 @@ export const PluginControlPanel: React.FC = ({ const handleTextareaChange = (event: React.ChangeEvent): void => { setMessage(event.target.value); // Используем хук вместо setMessage - + console.log('[PluginControlPanel] handleTextareaChange: новое значение', event.target.value); // Автоматическое изменение высоты const textarea = event.target; textarea.style.height = 'auto'; @@ -351,12 +376,17 @@ export const PluginControlPanel: React.FC = ({
{loading &&

Загрузка сообщений...

} {error &&

{error}

} - {messages.map(msg => ( -
-

{msg.text}

- {new Date(msg.timestamp).toLocaleTimeString()} -
- ))} + {/* Диагностический вывод сообщений */} + {messages.map((msg, idx) => { + console.log('[PluginControlPanel] render message:', idx, msg); + return ( +
+ {JSON.stringify(msg)} +
+ ); + })} {messagesEndRef.current &&
}
diff --git a/pages/side-panel/src/hooks/useLazyChatSync.ts b/pages/side-panel/src/hooks/useLazyChatSync.ts index e7ddc36f..0501456f 100644 --- a/pages/side-panel/src/hooks/useLazyChatSync.ts +++ b/pages/side-panel/src/hooks/useLazyChatSync.ts @@ -14,6 +14,7 @@ interface UseLazyChatSyncReturn { draftError: string | null; loadDraft: () => Promise; clearDraft: () => Promise; + draftText: string; } export const useLazyChatSync = ({ @@ -25,6 +26,7 @@ export const useLazyChatSync = ({ const [isDraftSaved, setIsDraftSaved] = useState(false); const [isDraftLoading, setIsDraftLoading] = useState(false); const [draftError, setDraftError] = useState(null); + const [draftText, setDraftText] = useState(''); const debounceRef = useRef(null); const lastSavedText = useRef(''); @@ -33,7 +35,7 @@ export const useLazyChatSync = ({ const saveDraft = useCallback( async (text: string) => { if (text === lastSavedText.current) return; // Не сохраняем, если текст не изменился - + console.log('[useLazyChatSync] saveDraft: попытка сохранить draft', { pluginId, pageKey, text }); try { await chrome.runtime.sendMessage({ type: 'SAVE_PLUGIN_CHAT_DRAFT', @@ -44,8 +46,10 @@ export const useLazyChatSync = ({ lastSavedText.current = text; setIsDraftSaved(true); setDraftError(null); + setDraftText(text); + console.log('[useLazyChatSync] saveDraft: успешно сохранено', { pluginId, pageKey, text }); } catch (error) { - console.error('Error saving draft:', error); + console.error('[useLazyChatSync] Error saving draft:', error); setDraftError('Ошибка сохранения черновика'); setIsDraftSaved(false); } @@ -57,25 +61,28 @@ export const useLazyChatSync = ({ const loadDraft = useCallback(async () => { setIsDraftLoading(true); setDraftError(null); - + console.log('[useLazyChatSync] loadDraft: загружаем draft', { pluginId, pageKey }); try { const response = await chrome.runtime.sendMessage({ type: 'GET_PLUGIN_CHAT_DRAFT', pluginId, pageKey, }); - if (response?.draftText) { setMessageState(response.draftText); lastSavedText.current = response.draftText; setIsDraftSaved(true); + setDraftText(response.draftText); + console.log('[useLazyChatSync] loadDraft: найден draft', { pluginId, pageKey, draft: response.draftText }); } else { - setMessageState(''); // Явно очищаем если драфта нет + setMessageState(''); lastSavedText.current = ''; setIsDraftSaved(false); + setDraftText(''); + console.log('[useLazyChatSync] loadDraft: draft не найден', { pluginId, pageKey }); } } catch (error) { - console.error('Error loading draft:', error); + console.error('[useLazyChatSync] Error loading draft:', error); setDraftError('Ошибка загрузки черновика'); } finally { setIsDraftLoading(false); @@ -84,6 +91,7 @@ export const useLazyChatSync = ({ // Функция для очистки черновика const clearDraft = useCallback(async () => { + console.log('[useLazyChatSync] clearDraft: очищаем draft', { pluginId, pageKey }); try { await chrome.runtime.sendMessage({ type: 'SAVE_PLUGIN_CHAT_DRAFT', @@ -94,8 +102,11 @@ export const useLazyChatSync = ({ lastSavedText.current = ''; setIsDraftSaved(false); setDraftError(null); + setDraftText(''); + setMessageState(''); + console.log('[useLazyChatSync] clearDraft: успешно очищено', { pluginId, pageKey }); } catch (error) { - console.error('Error clearing draft:', error); + console.error('[useLazyChatSync] Error clearing draft:', error); setDraftError('Ошибка очистки черновика'); } }, [pluginId, pageKey]); @@ -110,13 +121,13 @@ export const useLazyChatSync = ({ if (text.length === 0) { clearDraft(); } else { - // Сохраняем драфт при любом непустом изменении debounceRef.current = setTimeout(() => { saveDraft(text); }, debounceMs); } + console.log('[useLazyChatSync] setMessage: новое значение', { pluginId, pageKey, text }); }, - [debounceMs, saveDraft, clearDraft], + [debounceMs, saveDraft, clearDraft, pluginId, pageKey], ); // Очистка таймера при размонтировании @@ -134,21 +145,19 @@ export const useLazyChatSync = ({ loadDraft(); }, [loadDraft]); - // Сброс состояния при изменении pageKey (смена страницы) + // При смене pageKey всегда загружаем draft, не сбрасываем message вручную useEffect(() => { console.log('[useLazyChatSync] pageKey изменился:', pageKey); - // setMessageState(''); // УБРАТЬ сброс message setIsDraftSaved(false); setIsDraftLoading(false); setDraftError(null); lastSavedText.current = ''; - - // Очищаем таймер при смене страницы if (debounceRef.current) { clearTimeout(debounceRef.current); debounceRef.current = null; } - }, [pageKey]); + loadDraft(); + }, [pageKey, loadDraft]); return { message, @@ -158,5 +167,6 @@ export const useLazyChatSync = ({ draftError, loadDraft, clearDraft, + draftText, }; }; diff --git a/platform-core/public/pyodide/package.json b/platform-core/public/pyodide/package.json index 06a7fab2..1fc4db17 100644 --- a/platform-core/public/pyodide/package.json +++ b/platform-core/public/pyodide/package.json @@ -1,6 +1,6 @@ { "name": "pyodide", - "version": "0.27.171", + "version": "0.27.176", "description": "The Pyodide JavaScript package", "keywords": [ "python", diff --git a/public/pyodide/package.json b/public/pyodide/package.json index 06a7fab2..1fc4db17 100644 --- a/public/pyodide/package.json +++ b/public/pyodide/package.json @@ -1,6 +1,6 @@ { "name": "pyodide", - "version": "0.27.171", + "version": "0.27.176", "description": "The Pyodide JavaScript package", "keywords": [ "python", diff --git a/tests/e2e/helpers/theme.ts b/tests/e2e/helpers/theme.ts index 9dfd6c15..7fdbda8e 100644 --- a/tests/e2e/helpers/theme.ts +++ b/tests/e2e/helpers/theme.ts @@ -4,10 +4,10 @@ export const canSwitchTheme = async () => { const LIGHT_THEME_CLASS = 'bg-slate-50'; const DARK_THEME_CLASS = 'bg-gray-800'; - const TOGGLE_BUTTON_TEXT = 'Toggle theme'; const app = await $('.App').getElement(); - const toggleThemeButton = await $(`button=${TOGGLE_BUTTON_TEXT}`).getElement(); + // Ищем по классу, а не по тексту + const toggleThemeButton = await $('.theme-toggle-btn').getElement(); await expect(app).toBeExisting(); await expect(toggleThemeButton).toBeExisting(); diff --git a/tests/e2e/package.json b/tests/e2e/package.json index a900a6a6..0118e765 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -1,6 +1,6 @@ { "name": "@extension/e2e", - "version": "0.5.164", + "version": "0.5.169", "description": "E2e tests configuration boilerplate", "private": true, "sideEffects": false, diff --git a/tests/e2e/specs/page-side-panel.test.ts b/tests/e2e/specs/page-side-panel.test.ts index abbbb1d3..079ea608 100644 --- a/tests/e2e/specs/page-side-panel.test.ts +++ b/tests/e2e/specs/page-side-panel.test.ts @@ -1,4 +1,7 @@ -import { canSwitchTheme } from '../helpers/theme.js'; +import { canSwitchTheme } from '../helpers/theme.ts'; +import fs from 'fs'; + +const OZON_URL = 'https://www.ozon.ru/product/kostyum-sportivnyy-north-dot-1438414833/'; describe('Webextension Side Panel', () => { it('should make side panel accessible', async () => { @@ -9,4 +12,90 @@ describe('Webextension Side Panel', () => { await expect(browser).toHaveTitle('Side Panel'); await canSwitchTheme(); }); + + it('should open ozon, open sidepanel, switch to chat, send message and read logs', async () => { + // 1. Открываем страницу Ozon + await browser.url(OZON_URL); + await browser.pause(2000); // ждём полной загрузки + + // 2. Открываем sidepanel (если есть кнопка/иконка — кликнуть, иначе напрямую) + const extensionPath = await browser.getExtensionPath(); + const sidePanelUrl = `${extensionPath}/side-panel/index.html`; + await browser.url(sidePanelUrl); + await browser.waitUntil(async () => (await browser.getTitle()) === 'Side Panel', { + timeout: 5000, + timeoutMsg: 'Sidepanel не загрузился', + }); + await expect(browser).toHaveTitle('Side Panel'); + + // 3. Переключаемся на вкладку "Чат" (замените селектор на ваш) + const chatTab = await $('[data-testid="chat-tab"]').getElement(); + await chatTab.click(); + + // 4. Читаем логи sidepanel и background + await browser.sessionSubscribe({ events: ['log.entryAdded'] }); + const logs = []; + const backgroundLogs = []; + browser.on('log.entryAdded', logEntry => { + logs.push(logEntry.text); + // Фильтруем логи background по ключевым словам или по структуре logEntry + if (logEntry.text.includes('[background]')) { + backgroundLogs.push(logEntry.text); + } + console.log('[Sidepanel/Background]', logEntry.text); + }); + + // 5. Вводим и отправляем сообщение + const chatInput = await $('[data-testid="chat-input"]').getElement(); + await chatInput.setValue('Тестовое сообщение из e2e'); + const sendBtn = await $('[data-testid="chat-send"]').getElement(); + await sendBtn.click(); + + // 6. Проверяем, что сообщение появилось, иначе собираем дампы для диагностики + let chatAppeared = false; + let errorMsg = ''; + try { + await browser.waitUntil( + async () => { + const messages = await $$('[data-testid="chat-message"]'); + return messages.some(async m => (await m.getText()).includes('Тестовое сообщение из e2e')); + }, + { timeout: 5000, timeoutMsg: 'Сообщение не появилось в чате' }, + ); + chatAppeared = true; + } catch (err) { + errorMsg = err.message || String(err); + } + + if (!chatAppeared) { + // Сохраняем дамп DOM sidepanel + const domDump = await browser.execute(() => document.documentElement.outerHTML); + fs.writeFileSync('sidepanel_dom_dump.html', domDump); + + // Сохраняем скриншот sidepanel + await browser.saveScreenshot('sidepanel_error.png'); + + // Сохраняем последние логи sidepanel + fs.writeFileSync('sidepanel_logs.txt', logs.join('\n')); + // Сохраняем логи background + fs.writeFileSync('background_logs.txt', backgroundLogs.join('\n')); + + // Пробуем получить состояние чата (input, send, tab) + const chatInputVal = await $('[data-testid="chat-input"]') + .getValue() + .catch(() => 'input not found'); + const chatTabExists = await $('[data-testid="chat-tab"]') + .isExisting() + .catch(() => false); + const chatMessagesCount = (await $$('[data-testid="chat-message"]')).length; + fs.writeFileSync( + 'sidepanel_chat_state.txt', + `input: ${chatInputVal}\ntab: ${chatTabExists}\nmessages: ${chatMessagesCount}`, + ); + + throw new Error( + `Сообщение не появилось в чате.\n${errorMsg}\nСм. sidepanel_dom_dump.html, sidepanel_error.png, sidepanel_logs.txt, background_logs.txt, sidepanel_chat_state.txt для диагностики.`, + ); + } + }); }); From e899bda01fea8d28d79d0a641f35b68541860fb9 Mon Sep 17 00:00:00 2001 From: Igor Lebedev Date: Wed, 16 Jul 2025 01:46:42 +0500 Subject: [PATCH 2/3] docs(rules): formalize and cross-link workflow/merge protection rules for AI and team (best practices sync) --- .cursor/rules/workflow/branches.mdc | 2 ++ .cursor/rules/workflow/workflow.mdc | 4 +++- docs/for-ai-best-practices/README.md | 7 +++++++ docs/for-ai-best-practices/development-principles.md | 11 +++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.cursor/rules/workflow/branches.mdc b/.cursor/rules/workflow/branches.mdc index ad9c2330..285b5754 100644 --- a/.cursor/rules/workflow/branches.mdc +++ b/.cursor/rules/workflow/branches.mdc @@ -3,6 +3,8 @@ - For bugfixes, use the prefix `fix/` and a clear description of the problem. - Never mix bugfixes and features in the same branch. - After merging a bugfix, update feature branches via rebase/merge from develop. +- Direct commits or merges to `main` and `develop` are strictly forbidden. All changes must go through pull requests into `develop` only. +- Merging to `main` is allowed only from `develop` after release approval. # Examples - ✅ `feature/pyodide-integration` diff --git a/.cursor/rules/workflow/workflow.mdc b/.cursor/rules/workflow/workflow.mdc index 43637b35..98e06fef 100644 --- a/.cursor/rules/workflow/workflow.mdc +++ b/.cursor/rules/workflow/workflow.mdc @@ -2,7 +2,9 @@ - В ветке main запрещено вести работу. main используется только для релизов и production. - В ветке develop запрещено вести работу напрямую. Все изменения — только через feature-ветки с именованием feature/{смысловое_название}, которые создаются автоматически по смыслу задачи. -- Слияние feature-веток только через pull request. +- Слияние feature-веток только через pull request в develop. +- Прямой merge или commit в main и develop запрещён. +- В main разрешён merge только из develop после релизного ревью. - Все PR должны содержать описание изменений, ссылки на документацию и changelog. description: globs: diff --git a/docs/for-ai-best-practices/README.md b/docs/for-ai-best-practices/README.md index 6d7d5944..d2d1263c 100644 --- a/docs/for-ai-best-practices/README.md +++ b/docs/for-ai-best-practices/README.md @@ -17,6 +17,13 @@ This folder collects modular, transferable best practices, organizational method - AI-First Documentation Principles - Security & Quality Principles - Transferability & Project Bootstrap +- **Workflow & Branch Protection** (see: [development-principles.md](./development-principles.md)) + +### Example: Merge Protection +- ✅ feature/sidepanel-e2e → PR → develop → PR → main (release) +- ❌ direct commit to main (forbidden) +- ❌ direct commit to develop (forbidden) +- ✅ fix/plugin-card-bug → PR → develop ## Cross-References - [Project README](../../README.md) diff --git a/docs/for-ai-best-practices/development-principles.md b/docs/for-ai-best-practices/development-principles.md index bf01d302..dcf96ea1 100644 --- a/docs/for-ai-best-practices/development-principles.md +++ b/docs/for-ai-best-practices/development-principles.md @@ -14,6 +14,17 @@ These principles ensure high quality, security, and maintainability for any mode 9. **Ecosystem Thinking** — Ensure plugin/API compatibility and stability 10. **AI-First Documentation** — Write analytical comments for AI and human understanding +## Workflow & Branch Protection +- Direct commits or merges to `main` and `develop` are strictly forbidden. All changes must go through pull requests into `develop` only. +- Merging to `main` is allowed only from `develop` after release approval. +- All PRs must include documentation links and changelog updates. + +### Example: Merge Protection +- ✅ feature/sidepanel-e2e → PR → develop → PR → main (release) +- ❌ direct commit to main (forbidden) +- ❌ direct commit to develop (forbidden) +- ✅ fix/plugin-card-bug → PR → develop + ## How to Apply - Analyze each task through the lens of these principles - Select the most relevant principles for the situation From cde2ea3d8d936f13e74a10db5bb78e21ed6d9b75 Mon Sep 17 00:00:00 2001 From: Igor Lebedev Date: Wed, 16 Jul 2025 08:00:27 +0500 Subject: [PATCH 3/3] fix(commitlint): rename config to .cjs for compatibility with type: module --- .cursor/AI-access-policy.md | 7 + .cursor/README.md | 11 + .cursor/rules/README.md | 6 +- .cursor/rules/environment.yaml | 23 + .cursor/rules/workflow/branches.mdc | 3 + .git-secrets | 3 + .github/pull_request_template.md | 58 +- .github/workflows/audit.yml | 25 + .github/workflows/danger.yml | 21 + .github/workflows/release.yml | 22 + .husky/commit-msg | 1 + .husky/pre-commit | 9 + .husky/pre-push | 1 + .releaserc.json | 21 + CHANGELOG.md | 0 README.md | 8 +- bash-scripts/prevent-branch-mixing.sh | 36 + commitlint.config.cjs | 1 + danger/dangerfile.js | 35 + docs/README.md | 7 + docs/api/.nojekyll | 1 + docs/api/assets/hierarchy.js | 1 + docs/api/assets/highlight.css | 43 + docs/api/assets/icons.js | 18 + docs/api/assets/icons.svg | 1 + docs/api/assets/main.js | 2241 +++++ docs/api/assets/navigation.js | 2 + docs/api/assets/search.js | 2 + docs/api/assets/style.css | 1633 ++++ docs/api/functions/streamFileToZip.html | 1 + docs/api/hierarchy.html | 1 + docs/api/index.html | 7 + docs/api/interfaces/IManifestParser.html | 2 + docs/api/modules.html | 1 + docs/api/variables/ManifestParser.html | 1 + .../for-ai-best-practices/AI-access-policy.md | 7 + docs/for-ai-best-practices/README.md | 81 +- .../answer-self-check.md | 22 + docs/for-ai-best-practices/ci-integration.md | 57 +- .../development-principles.md | 49 + .../transfer-best-practices.md | 83 + docs/transfer-best-practices-user.md | 23 + eslint.config.ts | 70 +- import-best-practices/README.en.md | 28 + import-best-practices/README.md | 28 + memory-bank/AI-access-policy.md | 7 + memory-bank/README.md | 157 +- memory-bank/activeContext.md | 11 + memory-bank/progress.md | 168 +- package.json | 12 + pnpm-lock.yaml | 7995 ++++++++++++++++- renovate.json | 16 + secrets.json | 1 + 53 files changed, 12555 insertions(+), 513 deletions(-) create mode 100644 .cursor/AI-access-policy.md create mode 100644 .cursor/README.md create mode 100644 .cursor/rules/environment.yaml create mode 100644 .git-secrets create mode 100644 .github/workflows/audit.yml create mode 100644 .github/workflows/danger.yml create mode 100644 .github/workflows/release.yml create mode 100644 .husky/commit-msg create mode 100644 .releaserc.json create mode 100644 CHANGELOG.md create mode 100755 bash-scripts/prevent-branch-mixing.sh create mode 100644 commitlint.config.cjs create mode 100644 danger/dangerfile.js create mode 100644 docs/README.md create mode 100644 docs/api/.nojekyll create mode 100644 docs/api/assets/hierarchy.js create mode 100644 docs/api/assets/highlight.css create mode 100644 docs/api/assets/icons.js create mode 100644 docs/api/assets/icons.svg create mode 100644 docs/api/assets/main.js create mode 100644 docs/api/assets/navigation.js create mode 100644 docs/api/assets/search.js create mode 100644 docs/api/assets/style.css create mode 100644 docs/api/functions/streamFileToZip.html create mode 100644 docs/api/hierarchy.html create mode 100644 docs/api/index.html create mode 100644 docs/api/interfaces/IManifestParser.html create mode 100644 docs/api/modules.html create mode 100644 docs/api/variables/ManifestParser.html create mode 100644 docs/for-ai-best-practices/AI-access-policy.md create mode 100644 docs/for-ai-best-practices/answer-self-check.md create mode 100644 docs/for-ai-best-practices/transfer-best-practices.md create mode 100644 docs/transfer-best-practices-user.md create mode 100644 import-best-practices/README.en.md create mode 100644 import-best-practices/README.md create mode 100644 memory-bank/AI-access-policy.md create mode 100644 renovate.json create mode 100644 secrets.json diff --git a/.cursor/AI-access-policy.md b/.cursor/AI-access-policy.md new file mode 100644 index 00000000..fb4ca455 --- /dev/null +++ b/.cursor/AI-access-policy.md @@ -0,0 +1,7 @@ +# AI Access Policy + +AI-ассистент всегда имеет полный доступ ко всем файлам проекта (включая memory-bank, .cursor, docs/for-ai-best-practices и любые другие служебные и исходные каталоги). + +- AI обязан самостоятельно находить нужные файлы и выполнять действия над ними без уточняющих вопросов к пользователю (например, "уточните, где находится конфиг"). +- Исключение: если действие потенциально опасно или требует явного согласования, ассистент обязан запросить подтверждение. +- Это правило приоритетно для всех AI-операций в проекте. \ No newline at end of file diff --git a/.cursor/README.md b/.cursor/README.md new file mode 100644 index 00000000..9928a028 --- /dev/null +++ b/.cursor/README.md @@ -0,0 +1,11 @@ +## AI Access Policy + +См. [AI-access-policy.md](./AI-access-policy.md) — политика полного доступа AI-ассистента ко всем файлам проекта и проактивных действий. + +--- + +## Environment Parameters + +См. [rules/environment.yaml](rules/environment.yaml) — параметры операционной и тестовой среды, доступные AI-ассистенту для автоматизации и диагностики. + +--- \ No newline at end of file diff --git a/.cursor/rules/README.md b/.cursor/rules/README.md index e1517567..89a45608 100644 --- a/.cursor/rules/README.md +++ b/.cursor/rules/README.md @@ -1,4 +1,4 @@ -# .cursor/rules/ — Modular Rules for Cursor AI +# .cursor/rules: Project Rules & AI Onboarding This directory contains all rules and standards for automation and AI assistants in the Agent Plugins Platform. @@ -82,6 +82,10 @@ This directory contains all rules and standards for automation and AI assistants workflow.mdc ``` +## Кросс-ссылки на организационные best practices + +- [Инструкция по переносу best practices и автоматизаций](../../docs/for-ai-best-practices/transfer-best-practices.md) +- [Организационные знания и правила (memory-bank)](../../memory-bank/README.md) ## How to Use - The AI assistant should always refer to specific .mdc files when making decisions diff --git a/.cursor/rules/environment.yaml b/.cursor/rules/environment.yaml new file mode 100644 index 00000000..b9d14d2c --- /dev/null +++ b/.cursor/rules/environment.yaml @@ -0,0 +1,23 @@ +os: Manjaro Linux (Plasma) +os_version: 6.12.37-1-MANJARO +browser: + main: Chrome + main_version: 138.0.7204.100 + install: Flatpak + test: Chromium + test_version: 138.0.7204.100 + test_install: official repo (external), required for test automation +editor: Cursor +chrome_launch: Flatpak, custom args possible +debug_tools: + - Cursor + - Debugger for Chrome + - Composer Web +preferred_doc_lang: en +devtools_note: F12 only for main page, inspect sidepanel via context menu +extension_tab_name: Agent Platform Tools +ai_file_access: true # AI assistant has full access to all project files +cli_tools: + - git + - gh (GitHub CLI) + # Add more CLI tools as needed \ No newline at end of file diff --git a/.cursor/rules/workflow/branches.mdc b/.cursor/rules/workflow/branches.mdc index 285b5754..259ae270 100644 --- a/.cursor/rules/workflow/branches.mdc +++ b/.cursor/rules/workflow/branches.mdc @@ -5,10 +5,13 @@ - After merging a bugfix, update feature branches via rebase/merge from develop. - Direct commits or merges to `main` and `develop` are strictly forbidden. All changes must go through pull requests into `develop` only. - Merging to `main` is allowed only from `develop` after release approval. +- **Branch Purpose Tracking:** Before starting a new, unrelated task, you must finish the current branch (commit, push, PR, merge) and only then create a new branch for the next task. This prevents mixing tasks and improves review clarity. Exceptions: urgent bugfixes (fix/). # Examples - ✅ `feature/pyodide-integration` - ✅ `fix/tailwindcss-build-script` +- ❌ `feature/pyodide-integration` + unrelated refactor in same branch + description: globs: alwaysApply: false diff --git a/.git-secrets b/.git-secrets new file mode 100644 index 00000000..4b6c6934 --- /dev/null +++ b/.git-secrets @@ -0,0 +1,3 @@ +secrets.json +undefined +undefined \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 83c0ad95..db188018 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,25 +1,33 @@ - - - - -> `*` denotes required fields - -## Priority* - -- [ ] High: This PR needs to be merged first, before other tasks. -- [x] Medium: This PR should be merged quickly to prevent conflicts due to common changes. (default) -- [ ] Low: This PR does not affect other tasks, so it can be merged later. - -## Purpose of the PR* - - -## Changes* - - -## How to check the feature - - - - -## Reference - +# Pull Request: [Краткое описание изменений] + +## Описание + + +- [ ] Тип изменений: feature / fix / docs / chore / refactor +- [ ] Ссылка на задачу/issue: +- [ ] Краткое описание изменений: + - + - + +## Чек-лист +- [ ] Все изменения оформлены через отдельную ветку (feature/fix/doc/...) +- [ ] Нет прямых коммитов в main/develop +- [ ] Все тесты (CI) проходят успешно +- [ ] Документация и changelog обновлены +- [ ] Кросс-ссылки на правила и best practices добавлены +- [ ] **Перед началом новой задачи завершена текущая ветка (commit, push, PR, merge), новая ветка создана только после merge** + +## Ссылки и документация +- [ ] [README](../README.md) +- [ ] [Best Practices](../docs/for-ai-best-practices/README.md) +- [ ] [Workflow & Branch Protection](../docs/for-ai-best-practices/development-principles.md) +- [ ] [Cursor Rules Index](../.cursor/rules/index.mdc) + +## Требования к ревью +- [ ] Проверить соответствие workflow и защите веток +- [ ] Проверить кросс-ссылки и описание +- [ ] Оставить комментарии или одобрить PR + +--- + +_Этот шаблон подставляется автоматически для всех новых Pull Request. Следуйте структуре для ускорения ревью и автоматизации!_ diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 00000000..e2da2344 --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,25 @@ +name: Security Audit + +on: + push: + branches: + - main + - develop + pull_request: + branches: + - main + - develop + +jobs: + audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Run pnpm audit + run: pnpm audit --audit-level=moderate \ No newline at end of file diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml new file mode 100644 index 00000000..8c6315b4 --- /dev/null +++ b/.github/workflows/danger.yml @@ -0,0 +1,21 @@ +name: Danger PR Checks + +on: + pull_request: + types: [opened, synchronize, reopened, edited] + +jobs: + danger: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Run Danger + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx danger ci --dangerfile danger/dangerfile.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..96e5123b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,22 @@ +name: Release + +on: + push: + branches: + - main + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Semantic Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx semantic-release diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 00000000..6cf32f20 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1 @@ +npx --no-install commitlint --edit "$1" \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index 409035ca..b7047ccb 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1 +1,10 @@ +#!/bin/sh +branch=$(git rev-parse --abbrev-ref HEAD) +if [ "$branch" = "main" ] || [ "$branch" = "develop" ]; then + echo "\e[31mDirect commit to $branch is forbidden! Use PRs and merge only from allowed branches.\e[0m" + exit 1 +fi + +bash bash-scripts/prevent-branch-mixing.sh || exit 1 + pnpm dlx lint-staged --allow-empty diff --git a/.husky/pre-push b/.husky/pre-push index 292dc996..f7188207 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,2 +1,3 @@ #!/bin/sh bash bash-scripts/prevent-main-develop-push.sh +bash bash-scripts/prevent-branch-mixing.sh --push || exit 1 diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 00000000..bf0f56be --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,21 @@ +{ + "branches": ["main", { "name": "develop", "prerelease": true }], + "plugins": [ + ["@semantic-release/commit-analyzer"], + ["@semantic-release/release-notes-generator"], + [ + "@semantic-release/changelog", + { + "changelogFile": "CHANGELOG.md" + } + ], + [ + "@semantic-release/git", + { + "assets": ["CHANGELOG.md", "package.json", "packages/*/package.json"], + "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" + } + ], + ["@semantic-release/github"] + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..e69de29b diff --git a/README.md b/README.md index cb705652..13a338e3 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Agent-Plugins-Platform +# Agent Plugins Platform Браузерное расширение, которое позволяет выполнять Python плагины в браузере с использованием Pyodide и MCP протокола. @@ -161,3 +161,9 @@ MIT License - см. файл [LICENSE](LICENSE) **Важно:** - Все тестовые скрипты и логи рекомендуется запускать и смотреть именно в этой вкладке или через боковую панель расширения. - Название вкладки уникальное, чтобы не путать с системной вкладкой DevTools. + +## Организационные best practices и автоматизация + +- [Инструкция по переносу best practices и автоматизаций (для пользователя)](docs/transfer-best-practices-user.md) +- [AI best practices (только для AI-ассистентов, EN)](docs/for-ai-best-practices/README.md) +- [Организационные знания и правила (memory-bank, EN, только для AI)](memory-bank/README.md) diff --git a/bash-scripts/prevent-branch-mixing.sh b/bash-scripts/prevent-branch-mixing.sh new file mode 100755 index 00000000..cd672728 --- /dev/null +++ b/bash-scripts/prevent-branch-mixing.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +branch=$(git rev-parse --abbrev-ref HEAD) + +# Определяем тип ветки (feature, fix, chore, docs, refactor) +if [[ "$branch" =~ ^(feature|fix|chore|docs|refactor)/ ]]; then + branch_type=${BASH_REMATCH[1]} +else + branch_type="" +fi + +# Получаем последний коммит-месседж (для pre-commit) или все новые коммиты (для pre-push) +if [[ "$1" == "--push" ]]; then + # Для pre-push: анализируем все новые коммиты + range=$(git rev-list --branches --not --remotes | head -n 1)..HEAD + messages=$(git log $range --pretty=%s) +else + # Для pre-commit: анализируем staged коммит + messages=$(git log -1 --pretty=%s) +fi + +# Проверяем, есть ли в коммит-месседже другой тип задачи +for msg in $messages; do + if [[ "$msg" =~ ^(feature|fix|chore|docs|refactor)/ ]]; then + msg_type=${BASH_REMATCH[1]} + if [[ "$branch_type" != "$msg_type" ]]; then + echo -e "\e[31m[Branch Purpose Rule]\e[0m Ветка $branch предназначена для задач типа $branch_type, но коммит содержит задачу типа $msg_type. Завершите текущую ветку (commit, push, PR, merge) перед началом новой задачи!" + exit 1 + fi + fi + # Можно добавить дополнительные проверки по ключевым словам + # Например, если в коммите есть 'new feature' в ветке fix/ + # ... +done + +exit 0 diff --git a/commitlint.config.cjs b/commitlint.config.cjs new file mode 100644 index 00000000..422b1944 --- /dev/null +++ b/commitlint.config.cjs @@ -0,0 +1 @@ +module.exports = { extends: ['@commitlint/config-conventional'] }; diff --git a/danger/dangerfile.js b/danger/dangerfile.js new file mode 100644 index 00000000..3ef919a0 --- /dev/null +++ b/danger/dangerfile.js @@ -0,0 +1,35 @@ +// Dangerfile for Agent-Plugins-Platform + +// Проверка наличия описания PR +if (!danger.github.pr.body || danger.github.pr.body.length < 20) { + warn('PR description is too short or missing. Please provide a detailed description of your changes.'); +} + +// Проверка наличия changelog (если изменён src/ или core/) +const hasChangelog = danger.git.modified_files.some(f => f.toLowerCase().includes('changelog')); +const hasSrcChange = danger.git.modified_files.some( + f => + f.startsWith('src/') || + f.startsWith('core/') || + f.startsWith('chrome-extension/src/') || + f.startsWith('platform-core/'), +); +if (hasSrcChange && !hasChangelog) { + warn('You changed source code but did not update the CHANGELOG. Please add a changelog entry.'); +} + +// Проверка наличия кросс-ссылок на правила/документацию +if ( + !danger.github.pr.body || + !danger.github.pr.body.match( + /(best practices|workflow|branch|progress|cursor rules|development-principles|memory-bank)/i, + ) +) { + warn('PR description should include cross-references to rules, best practices, or documentation.'); +} + +// Проверка обновления документации при изменениях в src/ +const hasDocsChange = danger.git.modified_files.some(f => f.startsWith('docs/') || f.startsWith('memory-bank/')); +if (hasSrcChange && !hasDocsChange) { + message('Consider updating documentation if your code changes affect usage, architecture, or workflow.'); +} diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..7f056dfe --- /dev/null +++ b/docs/README.md @@ -0,0 +1,7 @@ +# Документация проекта + +## Организационные best practices и автоматизация + +- [Инструкция по переносу best practices и автоматизаций (для пользователя)](transfer-best-practices-user.md) +- [AI best practices (только для AI-ассистентов, EN)](for-ai-best-practices/README.md) +- [Организационные знания и правила (memory-bank, EN, только для AI)](../memory-bank/README.md) \ No newline at end of file diff --git a/docs/api/.nojekyll b/docs/api/.nojekyll new file mode 100644 index 00000000..e2ac6616 --- /dev/null +++ b/docs/api/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/api/assets/hierarchy.js b/docs/api/assets/hierarchy.js new file mode 100644 index 00000000..4170cb61 --- /dev/null +++ b/docs/api/assets/hierarchy.js @@ -0,0 +1 @@ +window.hierarchyData = 'eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzytWsqqurQUAmx4Kpg=='; diff --git a/docs/api/assets/highlight.css b/docs/api/assets/highlight.css new file mode 100644 index 00000000..db3012b5 --- /dev/null +++ b/docs/api/assets/highlight.css @@ -0,0 +1,43 @@ +:root { + --light-hl-0: #000000; + --dark-hl-0: #D4D4D4; + --light-hl-1: #0451A5; + --dark-hl-1: #9CDCFE; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +pre, code { background: var(--code-background); } diff --git a/docs/api/assets/icons.js b/docs/api/assets/icons.js new file mode 100644 index 00000000..03aa4929 --- /dev/null +++ b/docs/api/assets/icons.js @@ -0,0 +1,18 @@ +(function () { + addIcons(); + function addIcons() { + if (document.readyState === 'loading') return document.addEventListener('DOMContentLoaded', addIcons); + const svg = document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg')); + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.style.display = 'none'; + if (location.protocol === 'file:') updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll('use').forEach(el => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); + } + }); + } +})(); diff --git a/docs/api/assets/icons.svg b/docs/api/assets/icons.svg new file mode 100644 index 00000000..50ad5799 --- /dev/null +++ b/docs/api/assets/icons.svg @@ -0,0 +1 @@ +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/api/assets/main.js b/docs/api/assets/main.js new file mode 100644 index 00000000..863e1276 --- /dev/null +++ b/docs/api/assets/main.js @@ -0,0 +1,2241 @@ +'use strict'; +window.translations = { + copy: 'Copy', + copied: 'Copied!', + normally_hidden: 'This member is normally hidden due to your filter settings.', + hierarchy_expand: 'Expand', + hierarchy_collapse: 'Collapse', + folder: 'Folder', + search_index_not_available: 'The search index is not available', + search_no_results_found_for_0: 'No results found for {0}', + kind_1: 'Project', + kind_2: 'Module', + kind_4: 'Namespace', + kind_8: 'Enumeration', + kind_16: 'Enumeration Member', + kind_32: 'Variable', + kind_64: 'Function', + kind_128: 'Class', + kind_256: 'Interface', + kind_512: 'Constructor', + kind_1024: 'Property', + kind_2048: 'Method', + kind_4096: 'Call Signature', + kind_8192: 'Index Signature', + kind_16384: 'Constructor Signature', + kind_32768: 'Parameter', + kind_65536: 'Type Literal', + kind_131072: 'Type Parameter', + kind_262144: 'Accessor', + kind_524288: 'Get Signature', + kind_1048576: 'Set Signature', + kind_2097152: 'Type Alias', + kind_4194304: 'Reference', + kind_8388608: 'Document', +}; +('use strict'); +(() => { + var Ke = Object.create; + var he = Object.defineProperty; + var Ge = Object.getOwnPropertyDescriptor; + var Ze = Object.getOwnPropertyNames; + var Xe = Object.getPrototypeOf, + Ye = Object.prototype.hasOwnProperty; + var et = (t, e) => () => (e || t((e = { exports: {} }).exports, e), e.exports); + var tt = (t, e, n, r) => { + if ((e && typeof e == 'object') || typeof e == 'function') + for (let i of Ze(e)) + !Ye.call(t, i) && i !== n && he(t, i, { get: () => e[i], enumerable: !(r = Ge(e, i)) || r.enumerable }); + return t; + }; + var nt = (t, e, n) => ( + (n = t != null ? Ke(Xe(t)) : {}), + tt(e || !t || !t.__esModule ? he(n, 'default', { value: t, enumerable: !0 }) : n, t) + ); + var ye = et((me, ge) => { + (function () { + var t = function (e) { + var n = new t.Builder(); + return ( + n.pipeline.add(t.trimmer, t.stopWordFilter, t.stemmer), + n.searchPipeline.add(t.stemmer), + e.call(n, n), + n.build() + ); + }; + t.version = '2.3.9'; + ((t.utils = {}), + (t.utils.warn = (function (e) { + return function (n) { + e.console && console.warn && console.warn(n); + }; + })(this)), + (t.utils.asString = function (e) { + return e == null ? '' : e.toString(); + }), + (t.utils.clone = function (e) { + if (e == null) return e; + for (var n = Object.create(null), r = Object.keys(e), i = 0; i < r.length; i++) { + var s = r[i], + o = e[s]; + if (Array.isArray(o)) { + n[s] = o.slice(); + continue; + } + if (typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean') { + n[s] = o; + continue; + } + throw new TypeError('clone is not deep and does not support nested objects'); + } + return n; + }), + (t.FieldRef = function (e, n, r) { + ((this.docRef = e), (this.fieldName = n), (this._stringValue = r)); + }), + (t.FieldRef.joiner = '/'), + (t.FieldRef.fromString = function (e) { + var n = e.indexOf(t.FieldRef.joiner); + if (n === -1) throw 'malformed field ref string'; + var r = e.slice(0, n), + i = e.slice(n + 1); + return new t.FieldRef(i, r, e); + }), + (t.FieldRef.prototype.toString = function () { + return ( + this._stringValue == null && (this._stringValue = this.fieldName + t.FieldRef.joiner + this.docRef), + this._stringValue + ); + })); + ((t.Set = function (e) { + if (((this.elements = Object.create(null)), e)) { + this.length = e.length; + for (var n = 0; n < this.length; n++) this.elements[e[n]] = !0; + } else this.length = 0; + }), + (t.Set.complete = { + intersect: function (e) { + return e; + }, + union: function () { + return this; + }, + contains: function () { + return !0; + }, + }), + (t.Set.empty = { + intersect: function () { + return this; + }, + union: function (e) { + return e; + }, + contains: function () { + return !1; + }, + }), + (t.Set.prototype.contains = function (e) { + return !!this.elements[e]; + }), + (t.Set.prototype.intersect = function (e) { + var n, + r, + i, + s = []; + if (e === t.Set.complete) return this; + if (e === t.Set.empty) return e; + (this.length < e.length ? ((n = this), (r = e)) : ((n = e), (r = this)), (i = Object.keys(n.elements))); + for (var o = 0; o < i.length; o++) { + var a = i[o]; + a in r.elements && s.push(a); + } + return new t.Set(s); + }), + (t.Set.prototype.union = function (e) { + return e === t.Set.complete + ? t.Set.complete + : e === t.Set.empty + ? this + : new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements))); + }), + (t.idf = function (e, n) { + var r = 0; + for (var i in e) i != '_index' && (r += Object.keys(e[i]).length); + var s = (n - r + 0.5) / (r + 0.5); + return Math.log(1 + Math.abs(s)); + }), + (t.Token = function (e, n) { + ((this.str = e || ''), (this.metadata = n || {})); + }), + (t.Token.prototype.toString = function () { + return this.str; + }), + (t.Token.prototype.update = function (e) { + return ((this.str = e(this.str, this.metadata)), this); + }), + (t.Token.prototype.clone = function (e) { + return ( + (e = + e || + function (n) { + return n; + }), + new t.Token(e(this.str, this.metadata), this.metadata) + ); + })); + ((t.tokenizer = function (e, n) { + if (e == null || e == null) return []; + if (Array.isArray(e)) + return e.map(function (f) { + return new t.Token(t.utils.asString(f).toLowerCase(), t.utils.clone(n)); + }); + for (var r = e.toString().toLowerCase(), i = r.length, s = [], o = 0, a = 0; o <= i; o++) { + var c = r.charAt(o), + l = o - a; + if (c.match(t.tokenizer.separator) || o == i) { + if (l > 0) { + var d = t.utils.clone(n) || {}; + ((d.position = [a, l]), (d.index = s.length), s.push(new t.Token(r.slice(a, o), d))); + } + a = o + 1; + } + } + return s; + }), + (t.tokenizer.separator = /[\s\-]+/)); + ((t.Pipeline = function () { + this._stack = []; + }), + (t.Pipeline.registeredFunctions = Object.create(null)), + (t.Pipeline.registerFunction = function (e, n) { + (n in this.registeredFunctions && t.utils.warn('Overwriting existing registered function: ' + n), + (e.label = n), + (t.Pipeline.registeredFunctions[e.label] = e)); + }), + (t.Pipeline.warnIfFunctionNotRegistered = function (e) { + var n = e.label && e.label in this.registeredFunctions; + n || + t.utils.warn( + `Function is not registered with pipeline. This may cause problems when serialising the index. +`, + e, + ); + }), + (t.Pipeline.load = function (e) { + var n = new t.Pipeline(); + return ( + e.forEach(function (r) { + var i = t.Pipeline.registeredFunctions[r]; + if (i) n.add(i); + else throw new Error('Cannot load unregistered function: ' + r); + }), + n + ); + }), + (t.Pipeline.prototype.add = function () { + var e = Array.prototype.slice.call(arguments); + e.forEach(function (n) { + (t.Pipeline.warnIfFunctionNotRegistered(n), this._stack.push(n)); + }, this); + }), + (t.Pipeline.prototype.after = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n); + var r = this._stack.indexOf(e); + if (r == -1) throw new Error('Cannot find existingFn'); + ((r = r + 1), this._stack.splice(r, 0, n)); + }), + (t.Pipeline.prototype.before = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n); + var r = this._stack.indexOf(e); + if (r == -1) throw new Error('Cannot find existingFn'); + this._stack.splice(r, 0, n); + }), + (t.Pipeline.prototype.remove = function (e) { + var n = this._stack.indexOf(e); + n != -1 && this._stack.splice(n, 1); + }), + (t.Pipeline.prototype.run = function (e) { + for (var n = this._stack.length, r = 0; r < n; r++) { + for (var i = this._stack[r], s = [], o = 0; o < e.length; o++) { + var a = i(e[o], o, e); + if (!(a == null || a === '')) + if (Array.isArray(a)) for (var c = 0; c < a.length; c++) s.push(a[c]); + else s.push(a); + } + e = s; + } + return e; + }), + (t.Pipeline.prototype.runString = function (e, n) { + var r = new t.Token(e, n); + return this.run([r]).map(function (i) { + return i.toString(); + }); + }), + (t.Pipeline.prototype.reset = function () { + this._stack = []; + }), + (t.Pipeline.prototype.toJSON = function () { + return this._stack.map(function (e) { + return (t.Pipeline.warnIfFunctionNotRegistered(e), e.label); + }); + })); + ((t.Vector = function (e) { + ((this._magnitude = 0), (this.elements = e || [])); + }), + (t.Vector.prototype.positionForIndex = function (e) { + if (this.elements.length == 0) return 0; + for ( + var n = 0, r = this.elements.length / 2, i = r - n, s = Math.floor(i / 2), o = this.elements[s * 2]; + i > 1 && (o < e && (n = s), o > e && (r = s), o != e); + + ) + ((i = r - n), (s = n + Math.floor(i / 2)), (o = this.elements[s * 2])); + if (o == e || o > e) return s * 2; + if (o < e) return (s + 1) * 2; + }), + (t.Vector.prototype.insert = function (e, n) { + this.upsert(e, n, function () { + throw 'duplicate index'; + }); + }), + (t.Vector.prototype.upsert = function (e, n, r) { + this._magnitude = 0; + var i = this.positionForIndex(e); + this.elements[i] == e + ? (this.elements[i + 1] = r(this.elements[i + 1], n)) + : this.elements.splice(i, 0, e, n); + }), + (t.Vector.prototype.magnitude = function () { + if (this._magnitude) return this._magnitude; + for (var e = 0, n = this.elements.length, r = 1; r < n; r += 2) { + var i = this.elements[r]; + e += i * i; + } + return (this._magnitude = Math.sqrt(e)); + }), + (t.Vector.prototype.dot = function (e) { + for ( + var n = 0, r = this.elements, i = e.elements, s = r.length, o = i.length, a = 0, c = 0, l = 0, d = 0; + l < s && d < o; + + ) + ((a = r[l]), + (c = i[d]), + a < c ? (l += 2) : a > c ? (d += 2) : a == c && ((n += r[l + 1] * i[d + 1]), (l += 2), (d += 2))); + return n; + }), + (t.Vector.prototype.similarity = function (e) { + return this.dot(e) / this.magnitude() || 0; + }), + (t.Vector.prototype.toArray = function () { + for (var e = new Array(this.elements.length / 2), n = 1, r = 0; n < this.elements.length; n += 2, r++) + e[r] = this.elements[n]; + return e; + }), + (t.Vector.prototype.toJSON = function () { + return this.elements; + })); + ((t.stemmer = (function () { + var e = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log', + }, + n = { icate: 'ic', ative: '', alize: 'al', iciti: 'ic', ical: 'ic', ful: '', ness: '' }, + r = '[^aeiou]', + i = '[aeiouy]', + s = r + '[^aeiouy]*', + o = i + '[aeiou]*', + a = '^(' + s + ')?' + o + s, + c = '^(' + s + ')?' + o + s + '(' + o + ')?$', + l = '^(' + s + ')?' + o + s + o + s, + d = '^(' + s + ')?' + i, + f = new RegExp(a), + p = new RegExp(l), + v = new RegExp(c), + x = new RegExp(d), + w = /^(.+?)(ss|i)es$/, + m = /^(.+?)([^s])s$/, + g = /^(.+?)eed$/, + T = /^(.+?)(ed|ing)$/, + L = /.$/, + C = /(at|bl|iz)$/, + O = new RegExp('([^aeiouylsz])\\1$'), + j = new RegExp('^' + s + i + '[^aeiouwxy]$'), + N = /^(.+?[^aeiou])y$/, + q = + /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/, + W = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/, + B = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/, + z = /^(.+?)(s|t)(ion)$/, + _ = /^(.+?)e$/, + U = /ll$/, + J = new RegExp('^' + s + i + '[^aeiouwxy]$'), + V = function (u) { + var y, P, k, h, E, Q, H; + if (u.length < 3) return u; + if ( + ((k = u.substr(0, 1)), + k == 'y' && (u = k.toUpperCase() + u.substr(1)), + (h = w), + (E = m), + h.test(u) ? (u = u.replace(h, '$1$2')) : E.test(u) && (u = u.replace(E, '$1$2')), + (h = g), + (E = T), + h.test(u)) + ) { + var b = h.exec(u); + ((h = f), h.test(b[1]) && ((h = L), (u = u.replace(h, '')))); + } else if (E.test(u)) { + var b = E.exec(u); + ((y = b[1]), + (E = x), + E.test(y) && + ((u = y), + (E = C), + (Q = O), + (H = j), + E.test(u) + ? (u = u + 'e') + : Q.test(u) + ? ((h = L), (u = u.replace(h, ''))) + : H.test(u) && (u = u + 'e'))); + } + if (((h = N), h.test(u))) { + var b = h.exec(u); + ((y = b[1]), (u = y + 'i')); + } + if (((h = q), h.test(u))) { + var b = h.exec(u); + ((y = b[1]), (P = b[2]), (h = f), h.test(y) && (u = y + e[P])); + } + if (((h = W), h.test(u))) { + var b = h.exec(u); + ((y = b[1]), (P = b[2]), (h = f), h.test(y) && (u = y + n[P])); + } + if (((h = B), (E = z), h.test(u))) { + var b = h.exec(u); + ((y = b[1]), (h = p), h.test(y) && (u = y)); + } else if (E.test(u)) { + var b = E.exec(u); + ((y = b[1] + b[2]), (E = p), E.test(y) && (u = y)); + } + if (((h = _), h.test(u))) { + var b = h.exec(u); + ((y = b[1]), (h = p), (E = v), (Q = J), (h.test(y) || (E.test(y) && !Q.test(y))) && (u = y)); + } + return ( + (h = U), + (E = p), + h.test(u) && E.test(u) && ((h = L), (u = u.replace(h, ''))), + k == 'y' && (u = k.toLowerCase() + u.substr(1)), + u + ); + }; + return function (A) { + return A.update(V); + }; + })()), + t.Pipeline.registerFunction(t.stemmer, 'stemmer')); + ((t.generateStopWordFilter = function (e) { + var n = e.reduce(function (r, i) { + return ((r[i] = i), r); + }, {}); + return function (r) { + if (r && n[r.toString()] !== r.toString()) return r; + }; + }), + (t.stopWordFilter = t.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'all', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'any', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'do', + 'does', + 'either', + 'else', + 'ever', + 'every', + 'for', + 'from', + 'get', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'in', + 'into', + 'is', + 'it', + 'its', + 'just', + 'least', + 'let', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'only', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'where', + 'which', + 'while', + 'who', + 'whom', + 'why', + 'will', + 'with', + 'would', + 'yet', + 'you', + 'your', + ])), + t.Pipeline.registerFunction(t.stopWordFilter, 'stopWordFilter')); + ((t.trimmer = function (e) { + return e.update(function (n) { + return n.replace(/^\W+/, '').replace(/\W+$/, ''); + }); + }), + t.Pipeline.registerFunction(t.trimmer, 'trimmer')); + ((t.TokenSet = function () { + ((this.final = !1), (this.edges = {}), (this.id = t.TokenSet._nextId), (t.TokenSet._nextId += 1)); + }), + (t.TokenSet._nextId = 1), + (t.TokenSet.fromArray = function (e) { + for (var n = new t.TokenSet.Builder(), r = 0, i = e.length; r < i; r++) n.insert(e[r]); + return (n.finish(), n.root); + }), + (t.TokenSet.fromClause = function (e) { + return 'editDistance' in e + ? t.TokenSet.fromFuzzyString(e.term, e.editDistance) + : t.TokenSet.fromString(e.term); + }), + (t.TokenSet.fromFuzzyString = function (e, n) { + for (var r = new t.TokenSet(), i = [{ node: r, editsRemaining: n, str: e }]; i.length; ) { + var s = i.pop(); + if (s.str.length > 0) { + var o = s.str.charAt(0), + a; + (o in s.node.edges ? (a = s.node.edges[o]) : ((a = new t.TokenSet()), (s.node.edges[o] = a)), + s.str.length == 1 && (a.final = !0), + i.push({ node: a, editsRemaining: s.editsRemaining, str: s.str.slice(1) })); + } + if (s.editsRemaining != 0) { + if ('*' in s.node.edges) var c = s.node.edges['*']; + else { + var c = new t.TokenSet(); + s.node.edges['*'] = c; + } + if ( + (s.str.length == 0 && (c.final = !0), + i.push({ node: c, editsRemaining: s.editsRemaining - 1, str: s.str }), + s.str.length > 1 && i.push({ node: s.node, editsRemaining: s.editsRemaining - 1, str: s.str.slice(1) }), + s.str.length == 1 && (s.node.final = !0), + s.str.length >= 1) + ) { + if ('*' in s.node.edges) var l = s.node.edges['*']; + else { + var l = new t.TokenSet(); + s.node.edges['*'] = l; + } + (s.str.length == 1 && (l.final = !0), + i.push({ node: l, editsRemaining: s.editsRemaining - 1, str: s.str.slice(1) })); + } + if (s.str.length > 1) { + var d = s.str.charAt(0), + f = s.str.charAt(1), + p; + (f in s.node.edges ? (p = s.node.edges[f]) : ((p = new t.TokenSet()), (s.node.edges[f] = p)), + s.str.length == 1 && (p.final = !0), + i.push({ node: p, editsRemaining: s.editsRemaining - 1, str: d + s.str.slice(2) })); + } + } + } + return r; + }), + (t.TokenSet.fromString = function (e) { + for (var n = new t.TokenSet(), r = n, i = 0, s = e.length; i < s; i++) { + var o = e[i], + a = i == s - 1; + if (o == '*') ((n.edges[o] = n), (n.final = a)); + else { + var c = new t.TokenSet(); + ((c.final = a), (n.edges[o] = c), (n = c)); + } + } + return r; + }), + (t.TokenSet.prototype.toArray = function () { + for (var e = [], n = [{ prefix: '', node: this }]; n.length; ) { + var r = n.pop(), + i = Object.keys(r.node.edges), + s = i.length; + r.node.final && (r.prefix.charAt(0), e.push(r.prefix)); + for (var o = 0; o < s; o++) { + var a = i[o]; + n.push({ prefix: r.prefix.concat(a), node: r.node.edges[a] }); + } + } + return e; + }), + (t.TokenSet.prototype.toString = function () { + if (this._str) return this._str; + for (var e = this.final ? '1' : '0', n = Object.keys(this.edges).sort(), r = n.length, i = 0; i < r; i++) { + var s = n[i], + o = this.edges[s]; + e = e + s + o.id; + } + return e; + }), + (t.TokenSet.prototype.intersect = function (e) { + for (var n = new t.TokenSet(), r = void 0, i = [{ qNode: e, output: n, node: this }]; i.length; ) { + r = i.pop(); + for ( + var s = Object.keys(r.qNode.edges), o = s.length, a = Object.keys(r.node.edges), c = a.length, l = 0; + l < o; + l++ + ) + for (var d = s[l], f = 0; f < c; f++) { + var p = a[f]; + if (p == d || d == '*') { + var v = r.node.edges[p], + x = r.qNode.edges[d], + w = v.final && x.final, + m = void 0; + (p in r.output.edges + ? ((m = r.output.edges[p]), (m.final = m.final || w)) + : ((m = new t.TokenSet()), (m.final = w), (r.output.edges[p] = m)), + i.push({ qNode: x, output: m, node: v })); + } + } + } + return n; + }), + (t.TokenSet.Builder = function () { + ((this.previousWord = ''), + (this.root = new t.TokenSet()), + (this.uncheckedNodes = []), + (this.minimizedNodes = {})); + }), + (t.TokenSet.Builder.prototype.insert = function (e) { + var n, + r = 0; + if (e < this.previousWord) throw new Error('Out of order word insertion'); + for (var i = 0; i < e.length && i < this.previousWord.length && e[i] == this.previousWord[i]; i++) r++; + (this.minimize(r), + this.uncheckedNodes.length == 0 + ? (n = this.root) + : (n = this.uncheckedNodes[this.uncheckedNodes.length - 1].child)); + for (var i = r; i < e.length; i++) { + var s = new t.TokenSet(), + o = e[i]; + ((n.edges[o] = s), this.uncheckedNodes.push({ parent: n, char: o, child: s }), (n = s)); + } + ((n.final = !0), (this.previousWord = e)); + }), + (t.TokenSet.Builder.prototype.finish = function () { + this.minimize(0); + }), + (t.TokenSet.Builder.prototype.minimize = function (e) { + for (var n = this.uncheckedNodes.length - 1; n >= e; n--) { + var r = this.uncheckedNodes[n], + i = r.child.toString(); + (i in this.minimizedNodes + ? (r.parent.edges[r.char] = this.minimizedNodes[i]) + : ((r.child._str = i), (this.minimizedNodes[i] = r.child)), + this.uncheckedNodes.pop()); + } + })); + ((t.Index = function (e) { + ((this.invertedIndex = e.invertedIndex), + (this.fieldVectors = e.fieldVectors), + (this.tokenSet = e.tokenSet), + (this.fields = e.fields), + (this.pipeline = e.pipeline)); + }), + (t.Index.prototype.search = function (e) { + return this.query(function (n) { + var r = new t.QueryParser(e, n); + r.parse(); + }); + }), + (t.Index.prototype.query = function (e) { + for ( + var n = new t.Query(this.fields), + r = Object.create(null), + i = Object.create(null), + s = Object.create(null), + o = Object.create(null), + a = Object.create(null), + c = 0; + c < this.fields.length; + c++ + ) + i[this.fields[c]] = new t.Vector(); + e.call(n, n); + for (var c = 0; c < n.clauses.length; c++) { + var l = n.clauses[c], + d = null, + f = t.Set.empty; + l.usePipeline ? (d = this.pipeline.runString(l.term, { fields: l.fields })) : (d = [l.term]); + for (var p = 0; p < d.length; p++) { + var v = d[p]; + l.term = v; + var x = t.TokenSet.fromClause(l), + w = this.tokenSet.intersect(x).toArray(); + if (w.length === 0 && l.presence === t.Query.presence.REQUIRED) { + for (var m = 0; m < l.fields.length; m++) { + var g = l.fields[m]; + o[g] = t.Set.empty; + } + break; + } + for (var T = 0; T < w.length; T++) + for (var L = w[T], C = this.invertedIndex[L], O = C._index, m = 0; m < l.fields.length; m++) { + var g = l.fields[m], + j = C[g], + N = Object.keys(j), + q = L + '/' + g, + W = new t.Set(N); + if ( + (l.presence == t.Query.presence.REQUIRED && + ((f = f.union(W)), o[g] === void 0 && (o[g] = t.Set.complete)), + l.presence == t.Query.presence.PROHIBITED) + ) { + (a[g] === void 0 && (a[g] = t.Set.empty), (a[g] = a[g].union(W))); + continue; + } + if ( + (i[g].upsert(O, l.boost, function (Ue, Je) { + return Ue + Je; + }), + !s[q]) + ) { + for (var B = 0; B < N.length; B++) { + var z = N[B], + _ = new t.FieldRef(z, g), + U = j[z], + J; + (J = r[_]) === void 0 ? (r[_] = new t.MatchData(L, g, U)) : J.add(L, g, U); + } + s[q] = !0; + } + } + } + if (l.presence === t.Query.presence.REQUIRED) + for (var m = 0; m < l.fields.length; m++) { + var g = l.fields[m]; + o[g] = o[g].intersect(f); + } + } + for (var V = t.Set.complete, A = t.Set.empty, c = 0; c < this.fields.length; c++) { + var g = this.fields[c]; + (o[g] && (V = V.intersect(o[g])), a[g] && (A = A.union(a[g]))); + } + var u = Object.keys(r), + y = [], + P = Object.create(null); + if (n.isNegated()) { + u = Object.keys(this.fieldVectors); + for (var c = 0; c < u.length; c++) { + var _ = u[c], + k = t.FieldRef.fromString(_); + r[_] = new t.MatchData(); + } + } + for (var c = 0; c < u.length; c++) { + var k = t.FieldRef.fromString(u[c]), + h = k.docRef; + if (V.contains(h) && !A.contains(h)) { + var E = this.fieldVectors[k], + Q = i[k.fieldName].similarity(E), + H; + if ((H = P[h]) !== void 0) ((H.score += Q), H.matchData.combine(r[k])); + else { + var b = { ref: h, score: Q, matchData: r[k] }; + ((P[h] = b), y.push(b)); + } + } + } + return y.sort(function (We, ze) { + return ze.score - We.score; + }); + }), + (t.Index.prototype.toJSON = function () { + var e = Object.keys(this.invertedIndex) + .sort() + .map(function (r) { + return [r, this.invertedIndex[r]]; + }, this), + n = Object.keys(this.fieldVectors).map(function (r) { + return [r, this.fieldVectors[r].toJSON()]; + }, this); + return { + version: t.version, + fields: this.fields, + fieldVectors: n, + invertedIndex: e, + pipeline: this.pipeline.toJSON(), + }; + }), + (t.Index.load = function (e) { + var n = {}, + r = {}, + i = e.fieldVectors, + s = Object.create(null), + o = e.invertedIndex, + a = new t.TokenSet.Builder(), + c = t.Pipeline.load(e.pipeline); + e.version != t.version && + t.utils.warn( + "Version mismatch when loading serialised index. Current version of lunr '" + + t.version + + "' does not match serialized index '" + + e.version + + "'", + ); + for (var l = 0; l < i.length; l++) { + var d = i[l], + f = d[0], + p = d[1]; + r[f] = new t.Vector(p); + } + for (var l = 0; l < o.length; l++) { + var d = o[l], + v = d[0], + x = d[1]; + (a.insert(v), (s[v] = x)); + } + return ( + a.finish(), + (n.fields = e.fields), + (n.fieldVectors = r), + (n.invertedIndex = s), + (n.tokenSet = a.root), + (n.pipeline = c), + new t.Index(n) + ); + })); + ((t.Builder = function () { + ((this._ref = 'id'), + (this._fields = Object.create(null)), + (this._documents = Object.create(null)), + (this.invertedIndex = Object.create(null)), + (this.fieldTermFrequencies = {}), + (this.fieldLengths = {}), + (this.tokenizer = t.tokenizer), + (this.pipeline = new t.Pipeline()), + (this.searchPipeline = new t.Pipeline()), + (this.documentCount = 0), + (this._b = 0.75), + (this._k1 = 1.2), + (this.termIndex = 0), + (this.metadataWhitelist = [])); + }), + (t.Builder.prototype.ref = function (e) { + this._ref = e; + }), + (t.Builder.prototype.field = function (e, n) { + if (/\//.test(e)) throw new RangeError("Field '" + e + "' contains illegal character '/'"); + this._fields[e] = n || {}; + }), + (t.Builder.prototype.b = function (e) { + e < 0 ? (this._b = 0) : e > 1 ? (this._b = 1) : (this._b = e); + }), + (t.Builder.prototype.k1 = function (e) { + this._k1 = e; + }), + (t.Builder.prototype.add = function (e, n) { + var r = e[this._ref], + i = Object.keys(this._fields); + ((this._documents[r] = n || {}), (this.documentCount += 1)); + for (var s = 0; s < i.length; s++) { + var o = i[s], + a = this._fields[o].extractor, + c = a ? a(e) : e[o], + l = this.tokenizer(c, { fields: [o] }), + d = this.pipeline.run(l), + f = new t.FieldRef(r, o), + p = Object.create(null); + ((this.fieldTermFrequencies[f] = p), (this.fieldLengths[f] = 0), (this.fieldLengths[f] += d.length)); + for (var v = 0; v < d.length; v++) { + var x = d[v]; + if ((p[x] == null && (p[x] = 0), (p[x] += 1), this.invertedIndex[x] == null)) { + var w = Object.create(null); + ((w._index = this.termIndex), (this.termIndex += 1)); + for (var m = 0; m < i.length; m++) w[i[m]] = Object.create(null); + this.invertedIndex[x] = w; + } + this.invertedIndex[x][o][r] == null && (this.invertedIndex[x][o][r] = Object.create(null)); + for (var g = 0; g < this.metadataWhitelist.length; g++) { + var T = this.metadataWhitelist[g], + L = x.metadata[T]; + (this.invertedIndex[x][o][r][T] == null && (this.invertedIndex[x][o][r][T] = []), + this.invertedIndex[x][o][r][T].push(L)); + } + } + } + }), + (t.Builder.prototype.calculateAverageFieldLengths = function () { + for (var e = Object.keys(this.fieldLengths), n = e.length, r = {}, i = {}, s = 0; s < n; s++) { + var o = t.FieldRef.fromString(e[s]), + a = o.fieldName; + (i[a] || (i[a] = 0), (i[a] += 1), r[a] || (r[a] = 0), (r[a] += this.fieldLengths[o])); + } + for (var c = Object.keys(this._fields), s = 0; s < c.length; s++) { + var l = c[s]; + r[l] = r[l] / i[l]; + } + this.averageFieldLength = r; + }), + (t.Builder.prototype.createFieldVectors = function () { + for ( + var e = {}, n = Object.keys(this.fieldTermFrequencies), r = n.length, i = Object.create(null), s = 0; + s < r; + s++ + ) { + for ( + var o = t.FieldRef.fromString(n[s]), + a = o.fieldName, + c = this.fieldLengths[o], + l = new t.Vector(), + d = this.fieldTermFrequencies[o], + f = Object.keys(d), + p = f.length, + v = this._fields[a].boost || 1, + x = this._documents[o.docRef].boost || 1, + w = 0; + w < p; + w++ + ) { + var m = f[w], + g = d[m], + T = this.invertedIndex[m]._index, + L, + C, + O; + (i[m] === void 0 ? ((L = t.idf(this.invertedIndex[m], this.documentCount)), (i[m] = L)) : (L = i[m]), + (C = + (L * ((this._k1 + 1) * g)) / + (this._k1 * (1 - this._b + this._b * (c / this.averageFieldLength[a])) + g)), + (C *= v), + (C *= x), + (O = Math.round(C * 1e3) / 1e3), + l.insert(T, O)); + } + e[o] = l; + } + this.fieldVectors = e; + }), + (t.Builder.prototype.createTokenSet = function () { + this.tokenSet = t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort()); + }), + (t.Builder.prototype.build = function () { + return ( + this.calculateAverageFieldLengths(), + this.createFieldVectors(), + this.createTokenSet(), + new t.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline, + }) + ); + }), + (t.Builder.prototype.use = function (e) { + var n = Array.prototype.slice.call(arguments, 1); + (n.unshift(this), e.apply(this, n)); + }), + (t.MatchData = function (e, n, r) { + for (var i = Object.create(null), s = Object.keys(r || {}), o = 0; o < s.length; o++) { + var a = s[o]; + i[a] = r[a].slice(); + } + ((this.metadata = Object.create(null)), + e !== void 0 && ((this.metadata[e] = Object.create(null)), (this.metadata[e][n] = i))); + }), + (t.MatchData.prototype.combine = function (e) { + for (var n = Object.keys(e.metadata), r = 0; r < n.length; r++) { + var i = n[r], + s = Object.keys(e.metadata[i]); + this.metadata[i] == null && (this.metadata[i] = Object.create(null)); + for (var o = 0; o < s.length; o++) { + var a = s[o], + c = Object.keys(e.metadata[i][a]); + this.metadata[i][a] == null && (this.metadata[i][a] = Object.create(null)); + for (var l = 0; l < c.length; l++) { + var d = c[l]; + this.metadata[i][a][d] == null + ? (this.metadata[i][a][d] = e.metadata[i][a][d]) + : (this.metadata[i][a][d] = this.metadata[i][a][d].concat(e.metadata[i][a][d])); + } + } + } + }), + (t.MatchData.prototype.add = function (e, n, r) { + if (!(e in this.metadata)) { + ((this.metadata[e] = Object.create(null)), (this.metadata[e][n] = r)); + return; + } + if (!(n in this.metadata[e])) { + this.metadata[e][n] = r; + return; + } + for (var i = Object.keys(r), s = 0; s < i.length; s++) { + var o = i[s]; + o in this.metadata[e][n] + ? (this.metadata[e][n][o] = this.metadata[e][n][o].concat(r[o])) + : (this.metadata[e][n][o] = r[o]); + } + }), + (t.Query = function (e) { + ((this.clauses = []), (this.allFields = e)); + }), + (t.Query.wildcard = new String('*')), + (t.Query.wildcard.NONE = 0), + (t.Query.wildcard.LEADING = 1), + (t.Query.wildcard.TRAILING = 2), + (t.Query.presence = { OPTIONAL: 1, REQUIRED: 2, PROHIBITED: 3 }), + (t.Query.prototype.clause = function (e) { + return ( + 'fields' in e || (e.fields = this.allFields), + 'boost' in e || (e.boost = 1), + 'usePipeline' in e || (e.usePipeline = !0), + 'wildcard' in e || (e.wildcard = t.Query.wildcard.NONE), + e.wildcard & t.Query.wildcard.LEADING && e.term.charAt(0) != t.Query.wildcard && (e.term = '*' + e.term), + e.wildcard & t.Query.wildcard.TRAILING && + e.term.slice(-1) != t.Query.wildcard && + (e.term = '' + e.term + '*'), + 'presence' in e || (e.presence = t.Query.presence.OPTIONAL), + this.clauses.push(e), + this + ); + }), + (t.Query.prototype.isNegated = function () { + for (var e = 0; e < this.clauses.length; e++) + if (this.clauses[e].presence != t.Query.presence.PROHIBITED) return !1; + return !0; + }), + (t.Query.prototype.term = function (e, n) { + if (Array.isArray(e)) + return ( + e.forEach(function (i) { + this.term(i, t.utils.clone(n)); + }, this), + this + ); + var r = n || {}; + return ((r.term = e.toString()), this.clause(r), this); + }), + (t.QueryParseError = function (e, n, r) { + ((this.name = 'QueryParseError'), (this.message = e), (this.start = n), (this.end = r)); + }), + (t.QueryParseError.prototype = new Error()), + (t.QueryLexer = function (e) { + ((this.lexemes = []), + (this.str = e), + (this.length = e.length), + (this.pos = 0), + (this.start = 0), + (this.escapeCharPositions = [])); + }), + (t.QueryLexer.prototype.run = function () { + for (var e = t.QueryLexer.lexText; e; ) e = e(this); + }), + (t.QueryLexer.prototype.sliceString = function () { + for (var e = [], n = this.start, r = this.pos, i = 0; i < this.escapeCharPositions.length; i++) + ((r = this.escapeCharPositions[i]), e.push(this.str.slice(n, r)), (n = r + 1)); + return (e.push(this.str.slice(n, this.pos)), (this.escapeCharPositions.length = 0), e.join('')); + }), + (t.QueryLexer.prototype.emit = function (e) { + (this.lexemes.push({ type: e, str: this.sliceString(), start: this.start, end: this.pos }), + (this.start = this.pos)); + }), + (t.QueryLexer.prototype.escapeCharacter = function () { + (this.escapeCharPositions.push(this.pos - 1), (this.pos += 1)); + }), + (t.QueryLexer.prototype.next = function () { + if (this.pos >= this.length) return t.QueryLexer.EOS; + var e = this.str.charAt(this.pos); + return ((this.pos += 1), e); + }), + (t.QueryLexer.prototype.width = function () { + return this.pos - this.start; + }), + (t.QueryLexer.prototype.ignore = function () { + (this.start == this.pos && (this.pos += 1), (this.start = this.pos)); + }), + (t.QueryLexer.prototype.backup = function () { + this.pos -= 1; + }), + (t.QueryLexer.prototype.acceptDigitRun = function () { + var e, n; + do ((e = this.next()), (n = e.charCodeAt(0))); + while (n > 47 && n < 58); + e != t.QueryLexer.EOS && this.backup(); + }), + (t.QueryLexer.prototype.more = function () { + return this.pos < this.length; + }), + (t.QueryLexer.EOS = 'EOS'), + (t.QueryLexer.FIELD = 'FIELD'), + (t.QueryLexer.TERM = 'TERM'), + (t.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'), + (t.QueryLexer.BOOST = 'BOOST'), + (t.QueryLexer.PRESENCE = 'PRESENCE'), + (t.QueryLexer.lexField = function (e) { + return (e.backup(), e.emit(t.QueryLexer.FIELD), e.ignore(), t.QueryLexer.lexText); + }), + (t.QueryLexer.lexTerm = function (e) { + if ((e.width() > 1 && (e.backup(), e.emit(t.QueryLexer.TERM)), e.ignore(), e.more())) + return t.QueryLexer.lexText; + }), + (t.QueryLexer.lexEditDistance = function (e) { + return (e.ignore(), e.acceptDigitRun(), e.emit(t.QueryLexer.EDIT_DISTANCE), t.QueryLexer.lexText); + }), + (t.QueryLexer.lexBoost = function (e) { + return (e.ignore(), e.acceptDigitRun(), e.emit(t.QueryLexer.BOOST), t.QueryLexer.lexText); + }), + (t.QueryLexer.lexEOS = function (e) { + e.width() > 0 && e.emit(t.QueryLexer.TERM); + }), + (t.QueryLexer.termSeparator = t.tokenizer.separator), + (t.QueryLexer.lexText = function (e) { + for (;;) { + var n = e.next(); + if (n == t.QueryLexer.EOS) return t.QueryLexer.lexEOS; + if (n.charCodeAt(0) == 92) { + e.escapeCharacter(); + continue; + } + if (n == ':') return t.QueryLexer.lexField; + if (n == '~') return (e.backup(), e.width() > 0 && e.emit(t.QueryLexer.TERM), t.QueryLexer.lexEditDistance); + if (n == '^') return (e.backup(), e.width() > 0 && e.emit(t.QueryLexer.TERM), t.QueryLexer.lexBoost); + if ((n == '+' && e.width() === 1) || (n == '-' && e.width() === 1)) + return (e.emit(t.QueryLexer.PRESENCE), t.QueryLexer.lexText); + if (n.match(t.QueryLexer.termSeparator)) return t.QueryLexer.lexTerm; + } + }), + (t.QueryParser = function (e, n) { + ((this.lexer = new t.QueryLexer(e)), (this.query = n), (this.currentClause = {}), (this.lexemeIdx = 0)); + }), + (t.QueryParser.prototype.parse = function () { + (this.lexer.run(), (this.lexemes = this.lexer.lexemes)); + for (var e = t.QueryParser.parseClause; e; ) e = e(this); + return this.query; + }), + (t.QueryParser.prototype.peekLexeme = function () { + return this.lexemes[this.lexemeIdx]; + }), + (t.QueryParser.prototype.consumeLexeme = function () { + var e = this.peekLexeme(); + return ((this.lexemeIdx += 1), e); + }), + (t.QueryParser.prototype.nextClause = function () { + var e = this.currentClause; + (this.query.clause(e), (this.currentClause = {})); + }), + (t.QueryParser.parseClause = function (e) { + var n = e.peekLexeme(); + if (n != null) + switch (n.type) { + case t.QueryLexer.PRESENCE: + return t.QueryParser.parsePresence; + case t.QueryLexer.FIELD: + return t.QueryParser.parseField; + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm; + default: + var r = 'expected either a field or a term, found ' + n.type; + throw ( + n.str.length >= 1 && (r += " with value '" + n.str + "'"), + new t.QueryParseError(r, n.start, n.end) + ); + } + }), + (t.QueryParser.parsePresence = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + switch (n.str) { + case '-': + e.currentClause.presence = t.Query.presence.PROHIBITED; + break; + case '+': + e.currentClause.presence = t.Query.presence.REQUIRED; + break; + default: + var r = "unrecognised presence operator'" + n.str + "'"; + throw new t.QueryParseError(r, n.start, n.end); + } + var i = e.peekLexeme(); + if (i == null) { + var r = 'expecting term or field, found nothing'; + throw new t.QueryParseError(r, n.start, n.end); + } + switch (i.type) { + case t.QueryLexer.FIELD: + return t.QueryParser.parseField; + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm; + default: + var r = "expecting term or field, found '" + i.type + "'"; + throw new t.QueryParseError(r, i.start, i.end); + } + } + }), + (t.QueryParser.parseField = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + if (e.query.allFields.indexOf(n.str) == -1) { + var r = e.query.allFields + .map(function (o) { + return "'" + o + "'"; + }) + .join(', '), + i = "unrecognised field '" + n.str + "', possible fields: " + r; + throw new t.QueryParseError(i, n.start, n.end); + } + e.currentClause.fields = [n.str]; + var s = e.peekLexeme(); + if (s == null) { + var i = 'expecting term, found nothing'; + throw new t.QueryParseError(i, n.start, n.end); + } + switch (s.type) { + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm; + default: + var i = "expecting term, found '" + s.type + "'"; + throw new t.QueryParseError(i, s.start, s.end); + } + } + }), + (t.QueryParser.parseTerm = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + ((e.currentClause.term = n.str.toLowerCase()), + n.str.indexOf('*') != -1 && (e.currentClause.usePipeline = !1)); + var r = e.peekLexeme(); + if (r == null) { + e.nextClause(); + return; + } + switch (r.type) { + case t.QueryLexer.TERM: + return (e.nextClause(), t.QueryParser.parseTerm); + case t.QueryLexer.FIELD: + return (e.nextClause(), t.QueryParser.parseField); + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance; + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost; + case t.QueryLexer.PRESENCE: + return (e.nextClause(), t.QueryParser.parsePresence); + default: + var i = "Unexpected lexeme type '" + r.type + "'"; + throw new t.QueryParseError(i, r.start, r.end); + } + } + }), + (t.QueryParser.parseEditDistance = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + var r = parseInt(n.str, 10); + if (isNaN(r)) { + var i = 'edit distance must be numeric'; + throw new t.QueryParseError(i, n.start, n.end); + } + e.currentClause.editDistance = r; + var s = e.peekLexeme(); + if (s == null) { + e.nextClause(); + return; + } + switch (s.type) { + case t.QueryLexer.TERM: + return (e.nextClause(), t.QueryParser.parseTerm); + case t.QueryLexer.FIELD: + return (e.nextClause(), t.QueryParser.parseField); + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance; + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost; + case t.QueryLexer.PRESENCE: + return (e.nextClause(), t.QueryParser.parsePresence); + default: + var i = "Unexpected lexeme type '" + s.type + "'"; + throw new t.QueryParseError(i, s.start, s.end); + } + } + }), + (t.QueryParser.parseBoost = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + var r = parseInt(n.str, 10); + if (isNaN(r)) { + var i = 'boost must be numeric'; + throw new t.QueryParseError(i, n.start, n.end); + } + e.currentClause.boost = r; + var s = e.peekLexeme(); + if (s == null) { + e.nextClause(); + return; + } + switch (s.type) { + case t.QueryLexer.TERM: + return (e.nextClause(), t.QueryParser.parseTerm); + case t.QueryLexer.FIELD: + return (e.nextClause(), t.QueryParser.parseField); + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance; + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost; + case t.QueryLexer.PRESENCE: + return (e.nextClause(), t.QueryParser.parsePresence); + default: + var i = "Unexpected lexeme type '" + s.type + "'"; + throw new t.QueryParseError(i, s.start, s.end); + } + } + }), + (function (e, n) { + typeof define == 'function' && define.amd + ? define(n) + : typeof me == 'object' + ? (ge.exports = n()) + : (e.lunr = n()); + })(this, function () { + return t; + })); + })(); + }); + var M, + G = { + getItem() { + return null; + }, + setItem() {}, + }, + K; + try { + ((K = localStorage), (M = K)); + } catch { + ((K = G), (M = G)); + } + var S = { + getItem: t => M.getItem(t), + setItem: (t, e) => M.setItem(t, e), + disableWritingLocalStorage() { + M = G; + }, + disable() { + (localStorage.clear(), (M = G)); + }, + enable() { + M = K; + }, + }; + window.TypeDoc ||= { + disableWritingLocalStorage() { + S.disableWritingLocalStorage(); + }, + disableLocalStorage: () => { + S.disable(); + }, + enableLocalStorage: () => { + S.enable(); + }, + }; + window.translations ||= { + copy: 'Copy', + copied: 'Copied!', + normally_hidden: 'This member is normally hidden due to your filter settings.', + hierarchy_expand: 'Expand', + hierarchy_collapse: 'Collapse', + search_index_not_available: 'The search index is not available', + search_no_results_found_for_0: 'No results found for {0}', + folder: 'Folder', + kind_1: 'Project', + kind_2: 'Module', + kind_4: 'Namespace', + kind_8: 'Enumeration', + kind_16: 'Enumeration Member', + kind_32: 'Variable', + kind_64: 'Function', + kind_128: 'Class', + kind_256: 'Interface', + kind_512: 'Constructor', + kind_1024: 'Property', + kind_2048: 'Method', + kind_4096: 'Call Signature', + kind_8192: 'Index Signature', + kind_16384: 'Constructor Signature', + kind_32768: 'Parameter', + kind_65536: 'Type Literal', + kind_131072: 'Type Parameter', + kind_262144: 'Accessor', + kind_524288: 'Get Signature', + kind_1048576: 'Set Signature', + kind_2097152: 'Type Alias', + kind_4194304: 'Reference', + kind_8388608: 'Document', + }; + var pe = []; + function X(t, e) { + pe.push({ selector: e, constructor: t }); + } + var Z = class { + alwaysVisibleMember = null; + constructor() { + (this.createComponents(document.body), + this.ensureFocusedElementVisible(), + this.listenForCodeCopies(), + window.addEventListener('hashchange', () => this.ensureFocusedElementVisible()), + document.body.style.display || + (this.ensureFocusedElementVisible(), this.updateIndexVisibility(), this.scrollToHash())); + } + createComponents(e) { + pe.forEach(n => { + e.querySelectorAll(n.selector).forEach(r => { + r.dataset.hasInstance || (new n.constructor({ el: r, app: this }), (r.dataset.hasInstance = String(!0))); + }); + }); + } + filterChanged() { + this.ensureFocusedElementVisible(); + } + showPage() { + document.body.style.display && + (document.body.style.removeProperty('display'), + this.ensureFocusedElementVisible(), + this.updateIndexVisibility(), + this.scrollToHash()); + } + scrollToHash() { + if (location.hash) { + let e = document.getElementById(location.hash.substring(1)); + if (!e) return; + e.scrollIntoView({ behavior: 'instant', block: 'start' }); + } + } + ensureActivePageVisible() { + let e = document.querySelector('.tsd-navigation .current'), + n = e?.parentElement; + for (; n && !n.classList.contains('.tsd-navigation'); ) + (n instanceof HTMLDetailsElement && (n.open = !0), (n = n.parentElement)); + if (e && !rt(e)) { + let r = e.getBoundingClientRect().top - document.documentElement.clientHeight / 4; + ((document.querySelector('.site-menu').scrollTop = r), (document.querySelector('.col-sidebar').scrollTop = r)); + } + } + updateIndexVisibility() { + let e = document.querySelector('.tsd-index-content'), + n = e?.open; + (e && (e.open = !0), + document.querySelectorAll('.tsd-index-section').forEach(r => { + r.style.display = 'block'; + let i = Array.from(r.querySelectorAll('.tsd-index-link')).every(s => s.offsetParent == null); + r.style.display = i ? 'none' : 'block'; + }), + e && (e.open = n)); + } + ensureFocusedElementVisible() { + if ( + (this.alwaysVisibleMember && + (this.alwaysVisibleMember.classList.remove('always-visible'), + this.alwaysVisibleMember.firstElementChild.remove(), + (this.alwaysVisibleMember = null)), + !location.hash) + ) + return; + let e = document.getElementById(location.hash.substring(1)); + if (!e) return; + let n = e.parentElement; + for (; n && n.tagName !== 'SECTION'; ) n = n.parentElement; + if (!n) return; + let r = n.offsetParent == null, + i = n; + for (; i !== document.body; ) (i instanceof HTMLDetailsElement && (i.open = !0), (i = i.parentElement)); + if (n.offsetParent == null) { + ((this.alwaysVisibleMember = n), n.classList.add('always-visible')); + let s = document.createElement('p'); + (s.classList.add('warning'), (s.textContent = window.translations.normally_hidden), n.prepend(s)); + } + r && e.scrollIntoView(); + } + listenForCodeCopies() { + document.querySelectorAll('pre > button').forEach(e => { + let n; + e.addEventListener('click', () => { + (e.previousElementSibling instanceof HTMLElement && + navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()), + (e.textContent = window.translations.copied), + e.classList.add('visible'), + clearTimeout(n), + (n = setTimeout(() => { + (e.classList.remove('visible'), + (n = setTimeout(() => { + e.textContent = window.translations.copy; + }, 100))); + }, 1e3))); + }); + }); + } + }; + function rt(t) { + let e = t.getBoundingClientRect(), + n = Math.max(document.documentElement.clientHeight, window.innerHeight); + return !(e.bottom < 0 || e.top - n >= 0); + } + var fe = (t, e = 100) => { + let n; + return () => { + (clearTimeout(n), (n = setTimeout(() => t(), e))); + }; + }; + var Ie = nt(ye(), 1); + async function R(t) { + let e = Uint8Array.from(atob(t), s => s.charCodeAt(0)), + r = new Blob([e]).stream().pipeThrough(new DecompressionStream('deflate')), + i = await new Response(r).text(); + return JSON.parse(i); + } + var Y = 'closing', + ae = 'tsd-overlay'; + function it() { + let t = Math.abs(window.innerWidth - document.documentElement.clientWidth); + ((document.body.style.overflow = 'hidden'), (document.body.style.paddingRight = `${t}px`)); + } + function st() { + (document.body.style.removeProperty('overflow'), document.body.style.removeProperty('padding-right')); + } + function xe(t, e) { + (t.addEventListener('animationend', () => { + t.classList.contains(Y) && (t.classList.remove(Y), document.getElementById(ae)?.remove(), t.close(), st()); + }), + t.addEventListener('cancel', n => { + (n.preventDefault(), ve(t)); + }), + e?.closeOnClick && + document.addEventListener( + 'click', + n => { + t.open && !t.contains(n.target) && ve(t); + }, + !0, + )); + } + function Ee(t) { + if (t.open) return; + let e = document.createElement('div'); + ((e.id = ae), document.body.appendChild(e), t.showModal(), it()); + } + function ve(t) { + if (!t.open) return; + (document.getElementById(ae)?.classList.add(Y), t.classList.add(Y)); + } + var I = class { + el; + app; + constructor(e) { + ((this.el = e.el), (this.app = e.app)); + } + }; + var be = document.head.appendChild(document.createElement('style')); + be.dataset.for = 'filters'; + var le = {}; + function we(t) { + for (let e of t.split(/\s+/)) if (le.hasOwnProperty(e) && !le[e]) return !0; + return !1; + } + var ee = class extends I { + key; + value; + constructor(e) { + (super(e), + (this.key = `filter-${this.el.name}`), + (this.value = this.el.checked), + this.el.addEventListener('change', () => { + this.setLocalStorage(this.el.checked); + }), + this.setLocalStorage(this.fromLocalStorage()), + (be.innerHTML += `html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`), + this.app.updateIndexVisibility()); + } + fromLocalStorage() { + let e = S.getItem(this.key); + return e ? e === 'true' : this.el.checked; + } + setLocalStorage(e) { + (S.setItem(this.key, e.toString()), (this.value = e), this.handleValueChange()); + } + handleValueChange() { + ((this.el.checked = this.value), + document.documentElement.classList.toggle(this.key, this.value), + (le[`tsd-is-${this.el.name}`] = this.value), + this.app.filterChanged(), + this.app.updateIndexVisibility()); + } + }; + var Le = 0; + async function Se(t, e) { + if (!window.searchData) return; + let n = await R(window.searchData); + ((t.data = n), (t.index = Ie.Index.load(n.index)), (e.innerHTML = '')); + } + function _e() { + let t = document.getElementById('tsd-search-trigger'), + e = document.getElementById('tsd-search'), + n = document.getElementById('tsd-search-input'), + r = document.getElementById('tsd-search-results'), + i = document.getElementById('tsd-search-script'), + s = document.getElementById('tsd-search-status'); + if (!(t && e && n && r && i && s)) throw new Error('Search controls missing'); + let o = { base: document.documentElement.dataset.base }; + (o.base.endsWith('/') || (o.base += '/'), + i.addEventListener('error', () => { + let a = window.translations.search_index_not_available; + Pe(s, a); + }), + i.addEventListener('load', () => { + Se(o, s); + }), + Se(o, s), + ot({ trigger: t, searchEl: e, results: r, field: n, status: s }, o)); + } + function ot(t, e) { + let { field: n, results: r, searchEl: i, status: s, trigger: o } = t; + xe(i, { closeOnClick: !0 }); + function a() { + (Ee(i), n.setSelectionRange(0, n.value.length)); + } + (o.addEventListener('click', a), + n.addEventListener( + 'input', + fe(() => { + at(r, n, s, e); + }, 200), + ), + n.addEventListener('keydown', l => { + if (r.childElementCount === 0 || l.ctrlKey || l.metaKey || l.altKey) return; + let d = n.getAttribute('aria-activedescendant'), + f = d ? document.getElementById(d) : null; + if (f) { + let p = !1, + v = !1; + switch (l.key) { + case 'Home': + case 'End': + case 'ArrowLeft': + case 'ArrowRight': + v = !0; + break; + case 'ArrowDown': + case 'ArrowUp': + p = l.shiftKey; + break; + } + (p || v) && ke(n); + } + if (!l.shiftKey) + switch (l.key) { + case 'Enter': + f?.querySelector('a')?.click(); + break; + case 'ArrowUp': + (Te(r, n, f, -1), l.preventDefault()); + break; + case 'ArrowDown': + (Te(r, n, f, 1), l.preventDefault()); + break; + } + })); + function c() { + ke(n); + } + (n.addEventListener('change', c), + n.addEventListener('blur', c), + n.addEventListener('click', c), + document.body.addEventListener('keydown', l => { + if (l.altKey || l.metaKey || l.shiftKey) return; + let d = l.ctrlKey && l.key === 'k', + f = !l.ctrlKey && !ut() && l.key === '/'; + (d || f) && (l.preventDefault(), a()); + })); + } + function at(t, e, n, r) { + if (!r.index || !r.data) return; + ((t.innerHTML = ''), (n.innerHTML = ''), (Le += 1)); + let i = e.value.trim(), + s; + if (i) { + let a = i + .split(' ') + .map(c => (c.length ? `*${c}*` : '')) + .join(' '); + s = r.index.search(a).filter(({ ref: c }) => { + let l = r.data.rows[Number(c)].classes; + return !l || !we(l); + }); + } else s = []; + if (s.length === 0 && i) { + let a = window.translations.search_no_results_found_for_0.replace('{0}', ` "${te(i)}" `); + Pe(n, a); + return; + } + for (let a = 0; a < s.length; a++) { + let c = s[a], + l = r.data.rows[Number(c.ref)], + d = 1; + (l.name.toLowerCase().startsWith(i.toLowerCase()) && (d *= 10 / (1 + Math.abs(l.name.length - i.length))), + (c.score *= d)); + } + s.sort((a, c) => c.score - a.score); + let o = Math.min(10, s.length); + for (let a = 0; a < o; a++) { + let c = r.data.rows[Number(s[a].ref)], + d = ``, + f = Ce(c.name, i); + (globalThis.DEBUG_SEARCH_WEIGHTS && (f += ` (score: ${s[a].score.toFixed(2)})`), + c.parent && + (f = ` + ${Ce(c.parent, i)}.${f}`)); + let p = document.createElement('li'); + ((p.id = `tsd-search:${Le}-${a}`), + (p.role = 'option'), + (p.ariaSelected = 'false'), + (p.classList.value = c.classes ?? '')); + let v = document.createElement('a'); + ((v.tabIndex = -1), + (v.href = r.base + c.url), + (v.innerHTML = d + `${f}`), + p.append(v), + t.appendChild(p)); + } + } + function Te(t, e, n, r) { + let i; + if ( + (r === 1 + ? (i = n?.nextElementSibling || t.firstElementChild) + : (i = n?.previousElementSibling || t.lastElementChild), + i !== n) + ) { + if (!i || i.role !== 'option') { + console.error('Option missing'); + return; + } + ((i.ariaSelected = 'true'), + i.scrollIntoView({ behavior: 'smooth', block: 'nearest' }), + e.setAttribute('aria-activedescendant', i.id), + n?.setAttribute('aria-selected', 'false')); + } + } + function ke(t) { + let e = t.getAttribute('aria-activedescendant'); + ((e ? document.getElementById(e) : null)?.setAttribute('aria-selected', 'false'), + t.setAttribute('aria-activedescendant', '')); + } + function Ce(t, e) { + if (e === '') return t; + let n = t.toLocaleLowerCase(), + r = e.toLocaleLowerCase(), + i = [], + s = 0, + o = n.indexOf(r); + for (; o != -1; ) + (i.push(te(t.substring(s, o)), `${te(t.substring(o, o + r.length))}`), + (s = o + r.length), + (o = n.indexOf(r, s))); + return (i.push(te(t.substring(s))), i.join('')); + } + var lt = { '&': '&', '<': '<', '>': '>', "'": ''', '"': '"' }; + function te(t) { + return t.replace(/[&<>"'"]/g, e => lt[e]); + } + function Pe(t, e) { + t.innerHTML = e ? `
${e}
` : ''; + } + var ct = ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'range', 'reset', 'submit']; + function ut() { + let t = document.activeElement; + return t + ? t.isContentEditable || t.tagName === 'TEXTAREA' || t.tagName === 'SEARCH' + ? !0 + : t.tagName === 'INPUT' && !ct.includes(t.type) + : !1; + } + var D = 'mousedown', + Me = 'mousemove', + $ = 'mouseup', + ne = { x: 0, y: 0 }, + Qe = !1, + ce = !1, + dt = !1, + F = !1, + Oe = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); + document.documentElement.classList.add(Oe ? 'is-mobile' : 'not-mobile'); + Oe && + 'ontouchstart' in document.documentElement && + ((dt = !0), (D = 'touchstart'), (Me = 'touchmove'), ($ = 'touchend')); + document.addEventListener(D, t => { + ((ce = !0), (F = !1)); + let e = D == 'touchstart' ? t.targetTouches[0] : t; + ((ne.y = e.pageY || 0), (ne.x = e.pageX || 0)); + }); + document.addEventListener(Me, t => { + if (ce && !F) { + let e = D == 'touchstart' ? t.targetTouches[0] : t, + n = ne.x - (e.pageX || 0), + r = ne.y - (e.pageY || 0); + F = Math.sqrt(n * n + r * r) > 10; + } + }); + document.addEventListener($, () => { + ce = !1; + }); + document.addEventListener('click', t => { + Qe && (t.preventDefault(), t.stopImmediatePropagation(), (Qe = !1)); + }); + var re = class extends I { + active; + className; + constructor(e) { + (super(e), + (this.className = this.el.dataset.toggle || ''), + this.el.addEventListener($, n => this.onPointerUp(n)), + this.el.addEventListener('click', n => n.preventDefault()), + document.addEventListener(D, n => this.onDocumentPointerDown(n)), + document.addEventListener($, n => this.onDocumentPointerUp(n))); + } + setActive(e) { + if (this.active == e) return; + ((this.active = e), + document.documentElement.classList.toggle('has-' + this.className, e), + this.el.classList.toggle('active', e)); + let n = (this.active ? 'to-has-' : 'from-has-') + this.className; + (document.documentElement.classList.add(n), setTimeout(() => document.documentElement.classList.remove(n), 500)); + } + onPointerUp(e) { + F || (this.setActive(!0), e.preventDefault()); + } + onDocumentPointerDown(e) { + if (this.active) { + if (e.target.closest('.col-sidebar, .tsd-filter-group')) return; + this.setActive(!1); + } + } + onDocumentPointerUp(e) { + if (!F && this.active && e.target.closest('.col-sidebar')) { + let n = e.target.closest('a'); + if (n) { + let r = window.location.href; + (r.indexOf('#') != -1 && (r = r.substring(0, r.indexOf('#'))), + n.href.substring(0, r.length) == r && setTimeout(() => this.setActive(!1), 250)); + } + } + } + }; + var ue = new Map(), + de = class { + open; + accordions = []; + key; + constructor(e, n) { + ((this.key = e), (this.open = n)); + } + add(e) { + (this.accordions.push(e), + (e.open = this.open), + e.addEventListener('toggle', () => { + this.toggle(e.open); + })); + } + toggle(e) { + for (let n of this.accordions) n.open = e; + S.setItem(this.key, e.toString()); + } + }, + ie = class extends I { + constructor(e) { + super(e); + let n = this.el.querySelector('summary'), + r = n.querySelector('a'); + r && + r.addEventListener('click', () => { + location.assign(r.href); + }); + let i = `tsd-accordion-${n.dataset.key ?? n.textContent.trim().replace(/\s+/g, '-').toLowerCase()}`, + s; + if (ue.has(i)) s = ue.get(i); + else { + let o = S.getItem(i), + a = o ? o === 'true' : this.el.open; + ((s = new de(i, a)), ue.set(i, s)); + } + s.add(this.el); + } + }; + function He(t) { + let e = S.getItem('tsd-theme') || 'os'; + ((t.value = e), + Ae(e), + t.addEventListener('change', () => { + (S.setItem('tsd-theme', t.value), Ae(t.value)); + })); + } + function Ae(t) { + document.documentElement.dataset.theme = t; + } + var se; + function Ne() { + let t = document.getElementById('tsd-nav-script'); + t && (t.addEventListener('load', Re), Re()); + } + async function Re() { + let t = document.getElementById('tsd-nav-container'); + if (!t || !window.navigationData) return; + let e = await R(window.navigationData); + ((se = document.documentElement.dataset.base), se.endsWith('/') || (se += '/'), (t.innerHTML = '')); + for (let n of e) Be(n, t, []); + (window.app.createComponents(t), window.app.showPage(), window.app.ensureActivePageVisible()); + } + function Be(t, e, n) { + let r = e.appendChild(document.createElement('li')); + if (t.children) { + let i = [...n, t.text], + s = r.appendChild(document.createElement('details')); + s.className = t.class ? `${t.class} tsd-accordion` : 'tsd-accordion'; + let o = s.appendChild(document.createElement('summary')); + ((o.className = 'tsd-accordion-summary'), + (o.dataset.key = i.join('$')), + (o.innerHTML = + ''), + De(t, o)); + let a = s.appendChild(document.createElement('div')); + a.className = 'tsd-accordion-details'; + let c = a.appendChild(document.createElement('ul')); + c.className = 'tsd-nested-navigation'; + for (let l of t.children) Be(l, c, i); + } else De(t, r, t.class); + } + function De(t, e, n) { + if (t.path) { + let r = e.appendChild(document.createElement('a')); + if ( + ((r.href = se + t.path), + n && (r.className = n), + location.pathname === r.pathname && + !r.href.includes('#') && + (r.classList.add('current'), (r.ariaCurrent = 'page')), + t.kind) + ) { + let i = window.translations[`kind_${t.kind}`].replaceAll('"', '"'); + r.innerHTML = ``; + } + r.appendChild(Fe(t.text, document.createElement('span'))); + } else { + let r = e.appendChild(document.createElement('span')), + i = window.translations.folder.replaceAll('"', '"'); + ((r.innerHTML = ``), + r.appendChild(Fe(t.text, document.createElement('span')))); + } + } + function Fe(t, e) { + let n = t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/); + for (let r = 0; r < n.length; ++r) + (r !== 0 && e.appendChild(document.createElement('wbr')), e.appendChild(document.createTextNode(n[r]))); + return e; + } + var oe = document.documentElement.dataset.base; + oe.endsWith('/') || (oe += '/'); + function $e() { + document.querySelector('.tsd-full-hierarchy') ? ht() : document.querySelector('.tsd-hierarchy') && pt(); + } + function ht() { + document.addEventListener('click', r => { + let i = r.target; + for (; i.parentElement && i.parentElement.tagName != 'LI'; ) i = i.parentElement; + i.dataset.dropdown && (i.dataset.dropdown = String(i.dataset.dropdown !== 'true')); + }); + let t = new Map(), + e = new Set(); + for (let r of document.querySelectorAll('.tsd-full-hierarchy [data-refl]')) { + let i = r.querySelector('ul'); + t.has(r.dataset.refl) ? e.add(r.dataset.refl) : i && t.set(r.dataset.refl, i); + } + for (let r of e) n(r); + function n(r) { + let i = t.get(r).cloneNode(!0); + (i.querySelectorAll('[id]').forEach(s => { + s.removeAttribute('id'); + }), + i.querySelectorAll('[data-dropdown]').forEach(s => { + s.dataset.dropdown = 'false'; + })); + for (let s of document.querySelectorAll(`[data-refl="${r}"]`)) { + let o = gt(), + a = s.querySelector('ul'); + (s.insertBefore(o, a), (o.dataset.dropdown = String(!!a)), a || s.appendChild(i.cloneNode(!0))); + } + } + } + function pt() { + let t = document.getElementById('tsd-hierarchy-script'); + t && (t.addEventListener('load', Ve), Ve()); + } + async function Ve() { + let t = document.querySelector('.tsd-panel.tsd-hierarchy:has(h4 a)'); + if (!t || !window.hierarchyData) return; + let e = +t.dataset.refl, + n = await R(window.hierarchyData), + r = t.querySelector('ul'), + i = document.createElement('ul'); + if ( + (i.classList.add('tsd-hierarchy'), + ft(i, n, e), + r.querySelectorAll('li').length == i.querySelectorAll('li').length) + ) + return; + let s = document.createElement('span'); + (s.classList.add('tsd-hierarchy-toggle'), + (s.textContent = window.translations.hierarchy_expand), + t.querySelector('h4 a')?.insertAdjacentElement('afterend', s), + s.insertAdjacentText('beforebegin', ', '), + s.addEventListener('click', () => { + s.textContent === window.translations.hierarchy_expand + ? (r.insertAdjacentElement('afterend', i), + r.remove(), + (s.textContent = window.translations.hierarchy_collapse)) + : (i.insertAdjacentElement('afterend', r), + i.remove(), + (s.textContent = window.translations.hierarchy_expand)); + })); + } + function ft(t, e, n) { + let r = e.roots.filter(i => mt(e, i, n)); + for (let i of r) t.appendChild(je(e, i, n)); + } + function je(t, e, n, r = new Set()) { + if (r.has(e)) return; + r.add(e); + let i = t.reflections[e], + s = document.createElement('li'); + if ((s.classList.add('tsd-hierarchy-item'), e === n)) { + let o = s.appendChild(document.createElement('span')); + ((o.textContent = i.name), o.classList.add('tsd-hierarchy-target')); + } else { + for (let a of i.uniqueNameParents || []) { + let c = t.reflections[a], + l = s.appendChild(document.createElement('a')); + ((l.textContent = c.name), + (l.href = oe + c.url), + (l.className = c.class + ' tsd-signature-type'), + s.append(document.createTextNode('.'))); + } + let o = s.appendChild(document.createElement('a')); + ((o.textContent = t.reflections[e].name), (o.href = oe + i.url), (o.className = i.class + ' tsd-signature-type')); + } + if (i.children) { + let o = s.appendChild(document.createElement('ul')); + o.classList.add('tsd-hierarchy'); + for (let a of i.children) { + let c = je(t, a, n, r); + c && o.appendChild(c); + } + } + return (r.delete(e), s); + } + function mt(t, e, n) { + if (e === n) return !0; + let r = new Set(), + i = [t.reflections[e]]; + for (; i.length; ) { + let s = i.pop(); + if (!r.has(s)) { + r.add(s); + for (let o of s.children || []) { + if (o === n) return !0; + i.push(t.reflections[o]); + } + } + } + return !1; + } + function gt() { + let t = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + return ( + t.setAttribute('width', '20'), + t.setAttribute('height', '20'), + t.setAttribute('viewBox', '0 0 24 24'), + t.setAttribute('fill', 'none'), + (t.innerHTML = ''), + t + ); + } + X(re, 'a[data-toggle]'); + X(ie, '.tsd-accordion'); + X(ee, '.tsd-filter-item input[type=checkbox]'); + var qe = document.getElementById('tsd-theme'); + qe && He(qe); + var yt = new Z(); + Object.defineProperty(window, 'app', { value: yt }); + _e(); + Ne(); + $e(); + 'virtualKeyboard' in navigator && (navigator.virtualKeyboard.overlaysContent = !0); +})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/docs/api/assets/navigation.js b/docs/api/assets/navigation.js new file mode 100644 index 00000000..9e63c947 --- /dev/null +++ b/docs/api/assets/navigation.js @@ -0,0 +1,2 @@ +window.navigationData = + 'eJx9zL0KwkAMAOB3yXx4ULXDPYDgIDg4KQ6x5mjwmpYkiiB9dzd/Crp/fIcHON0dEqw3KJzJfItqpBBgQG8hAYuTZmzI4sTMWu8KBLiwnCFVy3oMr+7XdkNlPBWy+O+aVx+VuRJ2Ky606/c8vK98lca5F4sT8p3Vi/H4BNJLUM0='; diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js new file mode 100644 index 00000000..44908119 --- /dev/null +++ b/docs/api/assets/search.js @@ -0,0 +1,2 @@ +window.searchData = + 'eJyVkt1q4zAQRt/l21uR2HJbWD3AQi8WFhp6scIU1R63orZkJCVb1vjdi/+itnFoeidGc85oRtPB2X8eQnZ40aaE4Nc3DEY1BIHb38roinz4o5wnB4a9qyGgTSBXqYL89lPK5jk0NRiKWnlPHgLo2aJOE351dBfWHMiFBd/Zu+C0ebq0xo+Zb+arYP3Cv6vN0CpHJqz0Ep+V8eOjzvR7UE6rx5r89hvd3sRefXCkml+6pp39q9ujt9qbImhr/PZTxpo4Z9CmpFeIDgdyXlsDAb7JNj/BUGmqy+Efp5oMhW2aoXOG0hb78ZjPafdUBOuG5Cl7m4DJhKV8k1zlOZMLO8bHwKKIkZFLwWS6wqUnXPqB42CSr3D8hOMfuAxMZitcdsJNkXFkw5ZQeTuNTkqcXZwOD/OA0+XnOqQQXd/HcYqufzfR4W6oqxdbOy9OdCXRlVzkOq/iUcUvUk1bVemagv0/7F10ZdGVfe3KGVrdUq0NQci8798AO4ppEQ=='; diff --git a/docs/api/assets/style.css b/docs/api/assets/style.css new file mode 100644 index 00000000..5ba5a2a9 --- /dev/null +++ b/docs/api/assets/style.css @@ -0,0 +1,1633 @@ +@layer typedoc { + :root { + --dim-toolbar-contents-height: 2.5rem; + --dim-toolbar-border-bottom-width: 1px; + --dim-header-height: calc( + var(--dim-toolbar-border-bottom-width) + + var(--dim-toolbar-contents-height) + ); + + /* 0rem For mobile; unit is required for calculation in `calc` */ + --dim-container-main-margin-y: 0rem; + + --dim-footer-height: 3.5rem; + + --modal-animation-duration: 0.2s; + } + + :root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --light-color-background-active: #d6d8da; + --light-color-background-warning: #e6e600; + --light-color-warning-text: #222; + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-background-active); + --light-color-text: #222; + --light-color-contrast-text: #000; + --light-color-text-aside: #5e5e5e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: #9f5f30; + --light-color-ts-method: #be3989; + --light-color-ts-reference: #ff4d82; + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var( + --light-color-ts-constructor + ); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: #c73c3c; + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-color-alert-note: #0969d9; + --light-color-alert-tip: #1a7f37; + --light-color-alert-important: #8250df; + --light-color-alert-warning: #9a6700; + --light-color-alert-caution: #cf222e; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + } + + :root { + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --dark-color-background-active: #5d5d6a; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: var(--dark-color-background-active); + --dark-color-text: #f5f5f5; + --dark-color-contrast-text: #ffffff; + --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: #ff6060; + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-color-alert-note: #0969d9; + --dark-color-alert-tip: #1a7f37; + --dark-color-alert-important: #8250df; + --dark-color-alert-warning: #9a6700; + --dark-color-alert-caution: #cf222e; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; + } + + @media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var( + --light-color-background-secondary + ); + --color-background-active: var(--light-color-background-active); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); + --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-alert-note: var(--light-color-alert-note); + --color-alert-tip: var(--light-color-alert-tip); + --color-alert-important: var(--light-color-alert-important); + --color-alert-warning: var(--light-color-alert-warning); + --color-alert-caution: var(--light-color-alert-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + } + + @media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var( + --dark-color-background-secondary + ); + --color-background-active: var(--dark-color-background-active); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); + --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-alert-note: var(--dark-color-alert-note); + --color-alert-tip: var(--dark-color-alert-tip); + --color-alert-important: var(--dark-color-alert-important); + --color-alert-warning: var(--dark-color-alert-warning); + --color-alert-caution: var(--dark-color-alert-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + } + + :root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-active: var(--light-color-background-active); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); + --color-text-aside: var(--light-color-text-aside); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-note: var(--light-color-note); + --color-tip: var(--light-color-tip); + --color-important: var(--light-color-important); + --color-warning: var(--light-color-warning); + --color-caution: var(--light-color-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + + :root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-active: var(--dark-color-background-active); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); + --color-text-aside: var(--dark-color-text-aside); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-note: var(--dark-color-note); + --color-tip: var(--dark-color-tip); + --color-important: var(--dark-color-important); + --color-warning: var(--dark-color-warning); + --color-caution: var(--dark-color-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + + html { + color-scheme: var(--color-scheme); + @media (prefers-reduced-motion: no-preference) { + scroll-behavior: smooth; + } + } + + *:focus-visible, + .tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); + } + + .always-visible, + .always-visible .tsd-signatures { + display: inherit !important; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.2; + } + + h1 { + font-size: 1.875rem; + margin: 0.67rem 0; + } + + h2 { + font-size: 1.5rem; + margin: 0.83rem 0; + } + + h3 { + font-size: 1.25rem; + margin: 1rem 0; + } + + h4 { + font-size: 1.05rem; + margin: 1.33rem 0; + } + + h5 { + font-size: 1rem; + margin: 1.5rem 0; + } + + h6 { + font-size: 0.875rem; + margin: 2.33rem 0; + } + + dl, + menu, + ol, + ul { + margin: 1em 0; + } + + dd { + margin: 0 0 0 34px; + } + + .container { + max-width: 1700px; + padding: 0 2rem; + } + + /* Footer */ + footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: var(--dim-footer-height); + } + footer > p { + margin: 0 1em; + } + + .container-main { + margin: var(--dim-container-main-margin-y) auto; + /* toolbar, footer, margin */ + min-height: calc( + 100svh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + } + + @keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } + } + @keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } + } + @keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } + } + @keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } + } + body { + background: var(--color-background); + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); + margin: 0; + } + + a { + color: var(--color-link); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; + } + a.tsd-anchor-link { + color: var(--color-text); + } + :target { + scroll-margin-block: calc(var(--dim-header-height) + 0.5rem); + } + + code, + pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; + } + + pre { + position: relative; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); + margin-bottom: 8px; + } + pre code { + padding: 0; + font-size: 100%; + } + pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; + } + pre:hover > button, + pre > button.visible, + pre > button:focus-visible { + opacity: 1; + } + + blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; + } + + img { + max-width: 100%; + } + + * { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); + } + + *::-webkit-scrollbar { + width: 0.75rem; + } + + *::-webkit-scrollbar-track { + background: var(--color-icon-background); + } + + *::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); + } + + dialog { + border: none; + outline: none; + padding: 0; + background-color: var(--color-background); + } + dialog::backdrop { + display: none; + } + #tsd-overlay { + background-color: rgba(0, 0, 0, 0.5); + position: fixed; + z-index: 9999; + top: 0; + left: 0; + right: 0; + bottom: 0; + animation: fade-in var(--modal-animation-duration) forwards; + } + #tsd-overlay.closing { + animation-name: fade-out; + } + + .tsd-typography { + line-height: 1.333em; + } + .tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; + } + .tsd-typography .tsd-index-panel h3, + .tsd-index-panel .tsd-typography h3, + .tsd-typography h4, + .tsd-typography h5, + .tsd-typography h6 { + font-size: 1em; + } + .tsd-typography h5, + .tsd-typography h6 { + font-weight: normal; + } + .tsd-typography p, + .tsd-typography ul, + .tsd-typography ol { + margin: 1em 0; + } + .tsd-typography table { + border-collapse: collapse; + border: none; + } + .tsd-typography td, + .tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); + } + .tsd-typography thead, + .tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); + } + + .tsd-alert { + padding: 8px 16px; + margin-bottom: 16px; + border-left: 0.25em solid var(--alert-color); + } + .tsd-alert blockquote > :last-child, + .tsd-alert > :last-child { + margin-bottom: 0; + } + .tsd-alert-title { + color: var(--alert-color); + display: inline-flex; + align-items: center; + } + .tsd-alert-title span { + margin-left: 4px; + } + + .tsd-alert-note { + --alert-color: var(--color-alert-note); + } + .tsd-alert-tip { + --alert-color: var(--color-alert-tip); + } + .tsd-alert-important { + --alert-color: var(--color-alert-important); + } + .tsd-alert-warning { + --alert-color: var(--color-alert-warning); + } + .tsd-alert-caution { + --alert-color: var(--color-alert-caution); + } + + .tsd-breadcrumb { + margin: 0; + margin-top: 1rem; + padding: 0; + color: var(--color-text-aside); + } + .tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; + } + .tsd-breadcrumb a:hover { + text-decoration: underline; + } + .tsd-breadcrumb li { + display: inline; + } + .tsd-breadcrumb li:after { + content: " / "; + } + + .tsd-comment-tags { + display: flex; + flex-direction: column; + } + dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; + } + dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; + } + dl.tsd-comment-tag-group dd { + margin: 0; + } + code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; + } + h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; + } + + dl.tsd-comment-tag-group dd:before, + dl.tsd-comment-tag-group dd:after { + content: " "; + } + dl.tsd-comment-tag-group dd pre, + dl.tsd-comment-tag-group dd:after { + clear: both; + } + dl.tsd-comment-tag-group p { + margin: 0; + } + + .tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; + } + .tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; + } + + .tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; + } + .tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; + } + .tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + } + .tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; + } + .tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; + } + .tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; + } + .tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); + } + .tsd-checkbox-background { + fill: var(--color-accent); + } + input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); + } + + .settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; + } + + .tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; + } + + .tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; + } + + .tsd-hierarchy h4 label:hover span { + text-decoration: underline; + } + + .tsd-hierarchy { + list-style: square; + margin: 0; + } + .tsd-hierarchy-target { + font-weight: bold; + } + .tsd-hierarchy-toggle { + color: var(--color-link); + cursor: pointer; + } + + .tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); + } + .tsd-full-hierarchy, + .tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; + } + .tsd-full-hierarchy ul { + padding-left: 1.5rem; + } + .tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-full-hierarchy svg[data-dropdown] { + cursor: pointer; + } + .tsd-full-hierarchy svg[data-dropdown="false"] { + transform: rotate(-90deg); + } + .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { + display: none; + } + + .tsd-panel-group.tsd-index-group { + margin-bottom: 0; + } + .tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; + } + @media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } + } + @media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } + } + .tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; + } + + .tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; + } + + .tsd-anchor { + position: relative; + top: -100px; + } + + .tsd-member { + position: relative; + } + .tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; + } + + .tsd-navigation.settings { + margin: 0; + margin-bottom: 1rem; + } + .tsd-navigation > a, + .tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; + } + .tsd-navigation a, + .tsd-navigation summary > span, + .tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; + } + .tsd-navigation a.current, + .tsd-page-navigation a.current { + background: var(--color-active-menu-item); + color: var(--color-contrast-text); + } + .tsd-navigation a:hover, + .tsd-page-navigation a:hover { + text-decoration: underline; + } + .tsd-navigation ul, + .tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; + } + .tsd-navigation li, + .tsd-page-navigation li { + padding: 0; + max-width: 100%; + } + .tsd-navigation .tsd-nav-link { + display: none; + } + .tsd-nested-navigation { + margin-left: 3rem; + } + .tsd-nested-navigation > li > details { + margin-left: -1.5rem; + } + .tsd-small-nested-navigation { + margin-left: 1.5rem; + } + .tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; + } + + .tsd-page-navigation-section > summary { + padding: 0.25rem; + } + .tsd-page-navigation-section > summary > svg { + margin-right: 0.25rem; + } + .tsd-page-navigation-section > div { + margin-left: 30px; + } + .tsd-page-navigation ul { + padding-left: 1.75rem; + } + + #tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; + } + #tsd-sidebar-links a:last-of-type { + margin-bottom: 0; + } + + a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ + display: flex; + align-items: center; + gap: 0.25rem; + box-sizing: border-box; + } + .tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ + } + .tsd-accordion-summary, + .tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; + } + .tsd-accordion-summary a { + width: calc(100% - 1.5rem); + } + .tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + } + /* + * We need to be careful to target the arrow indicating whether the accordion + * is open, but not any other SVGs included in the details element. + */ + .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child { + transform: rotate(-90deg); + } + .tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; + } + .tsd-index-summary { + margin-top: 1.5rem; + margin-bottom: 0.75rem; + display: flex; + align-content: center; + } + + .tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + .tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; + } + .tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; + } + + .tsd-panel { + margin-bottom: 2.5rem; + } + .tsd-panel.tsd-member { + margin-bottom: 4rem; + } + .tsd-panel:empty { + display: none; + } + .tsd-panel > h1, + .tsd-panel > h2, + .tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; + } + .tsd-panel > h1.tsd-before-signature, + .tsd-panel > h2.tsd-before-signature, + .tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; + } + + .tsd-panel-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group details { + margin: 2rem 0; + } + .tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; + } + + #tsd-search[open] { + animation: fade-in var(--modal-animation-duration) ease-out forwards; + } + #tsd-search[open].closing { + animation-name: fade-out; + } + + /* Avoid setting `display` on closed dialog */ + #tsd-search[open] { + display: flex; + flex-direction: column; + padding: 1rem; + width: 32rem; + max-width: 90vw; + max-height: calc(100vh - env(keyboard-inset-height, 0px) - 25vh); + /* Anchor dialog to top */ + margin-top: 10vh; + border-radius: 6px; + will-change: max-height; + } + #tsd-search-input { + box-sizing: border-box; + width: 100%; + padding: 0 0.625rem; /* 10px */ + outline: 0; + border: 2px solid var(--color-accent); + background-color: transparent; + color: var(--color-text); + border-radius: 4px; + height: 2.5rem; + flex: 0 0 auto; + font-size: 0.875rem; + transition: border-color 0.2s, background-color 0.2s; + } + #tsd-search-input:focus-visible { + background-color: var(--color-background-active); + border-color: transparent; + color: var(--color-contrast-text); + } + #tsd-search-input::placeholder { + color: inherit; + opacity: 0.8; + } + #tsd-search-results { + margin: 0; + padding: 0; + list-style: none; + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow-y: auto; + } + #tsd-search-results:not(:empty) { + margin-top: 0.5rem; + } + #tsd-search-results > li { + background-color: var(--color-background); + line-height: 1.5; + box-sizing: border-box; + border-radius: 4px; + } + #tsd-search-results > li:nth-child(even) { + background-color: var(--color-background-secondary); + } + #tsd-search-results > li:is(:hover, [aria-selected="true"]) { + background-color: var(--color-background-active); + color: var(--color-contrast-text); + } + /* It's important that this takes full size of parent `li`, to capture a click on `li` */ + #tsd-search-results > li > a { + display: flex; + align-items: center; + padding: 0.5rem 0.25rem; + box-sizing: border-box; + width: 100%; + } + #tsd-search-results > li > a > .text { + flex: 1 1 auto; + min-width: 0; + overflow-wrap: anywhere; + } + #tsd-search-results > li > a .parent { + color: var(--color-text-aside); + } + #tsd-search-results > li > a mark { + color: inherit; + background-color: inherit; + font-weight: bold; + } + #tsd-search-status { + flex: 1; + display: grid; + place-content: center; + text-align: center; + overflow-wrap: anywhere; + } + #tsd-search-status:not(:empty) { + min-height: 6rem; + } + + .tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; + } + + .tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; + } + + .tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; + } + + .tsd-signature-type { + font-style: italic; + font-weight: normal; + } + + .tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; + } + .tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; + } + .tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; + } + .tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; + } + .tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; + } + + ul.tsd-parameter-list, + ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; + } + ul.tsd-parameter-list > li.tsd-parameter-signature, + ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; + } + ul.tsd-parameter-list h5, + ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; + } + .tsd-sources { + margin-top: 1rem; + font-size: 0.875em; + } + .tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; + } + .tsd-sources ul { + list-style: none; + padding: 0; + } + + .tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: var(--dim-toolbar-border-bottom-width) + var(--color-accent) solid; + transition: transform 0.3s ease-in-out; + } + .tsd-page-toolbar a { + color: var(--color-text); + } + .tsd-toolbar-contents { + display: flex; + align-items: center; + height: var(--dim-toolbar-contents-height); + margin: 0 auto; + } + .tsd-toolbar-contents > .title { + font-weight: bold; + margin-right: auto; + } + #tsd-toolbar-links { + display: flex; + align-items: center; + gap: 1.5rem; + margin-right: 1rem; + } + + .tsd-widget { + box-sizing: border-box; + display: inline-block; + opacity: 0.8; + height: 2.5rem; + width: 2.5rem; + transition: opacity 0.1s, background-color 0.1s; + text-align: center; + cursor: pointer; + border: none; + background-color: transparent; + } + .tsd-widget:hover { + opacity: 0.9; + } + .tsd-widget:active { + opacity: 1; + background-color: var(--color-accent); + } + #tsd-toolbar-menu-trigger { + display: none; + } + + .tsd-member-summary-name { + display: inline-flex; + align-items: center; + padding: 0.25rem; + text-decoration: none; + } + + .tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + color: var(--color-text); + vertical-align: middle; + } + + .tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; + } + + .tsd-member-summary-name:hover > .tsd-anchor-icon svg, + .tsd-anchor-link:hover > .tsd-anchor-icon svg, + .tsd-anchor-icon:focus-visible svg { + visibility: visible; + } + + .deprecated { + text-decoration: line-through !important; + } + + .warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); + } + + .tsd-kind-project { + color: var(--color-ts-project); + } + .tsd-kind-module { + color: var(--color-ts-module); + } + .tsd-kind-namespace { + color: var(--color-ts-namespace); + } + .tsd-kind-enum { + color: var(--color-ts-enum); + } + .tsd-kind-enum-member { + color: var(--color-ts-enum-member); + } + .tsd-kind-variable { + color: var(--color-ts-variable); + } + .tsd-kind-function { + color: var(--color-ts-function); + } + .tsd-kind-class { + color: var(--color-ts-class); + } + .tsd-kind-interface { + color: var(--color-ts-interface); + } + .tsd-kind-constructor { + color: var(--color-ts-constructor); + } + .tsd-kind-property { + color: var(--color-ts-property); + } + .tsd-kind-method { + color: var(--color-ts-method); + } + .tsd-kind-reference { + color: var(--color-ts-reference); + } + .tsd-kind-call-signature { + color: var(--color-ts-call-signature); + } + .tsd-kind-index-signature { + color: var(--color-ts-index-signature); + } + .tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); + } + .tsd-kind-parameter { + color: var(--color-ts-parameter); + } + .tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); + } + .tsd-kind-accessor { + color: var(--color-ts-accessor); + } + .tsd-kind-get-signature { + color: var(--color-ts-get-signature); + } + .tsd-kind-set-signature { + color: var(--color-ts-set-signature); + } + .tsd-kind-type-alias { + color: var(--color-ts-type-alias); + } + + /* if we have a kind icon, don't color the text by kind */ + .tsd-kind-icon ~ span { + color: var(--color-text); + } + + /* mobile */ + @media (max-width: 769px) { + #tsd-toolbar-menu-trigger { + display: inline-block; + /* temporary fix to vertically align, for compatibility */ + line-height: 2.5; + } + #tsd-toolbar-links { + display: none; + } + + .container-main { + display: flex; + } + .col-content { + float: none; + max-width: 100%; + width: 100%; + } + .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + .col-sidebar > *:last-child { + padding-bottom: 20px; + } + .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } + } + + /* one sidebar */ + @media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + --dim-container-main-margin-y: 2rem; + } + + .tsd-breadcrumb { + margin-top: 0; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } + } + @media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } + .site-menu { + margin-top: 1rem; + } + } + + /* two sidebars */ + @media (min-width: 1200px) { + .container-main { + grid-template-columns: + minmax(0, 1fr) minmax(0, 2.5fr) minmax( + 0, + 20rem + ); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 0rem; + } + + .page-menu, + .site-menu { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } + } +} diff --git a/docs/api/functions/streamFileToZip.html b/docs/api/functions/streamFileToZip.html new file mode 100644 index 00000000..7f984f44 --- /dev/null +++ b/docs/api/functions/streamFileToZip.html @@ -0,0 +1 @@ +streamFileToZip | @extension/dev-utils
@extension/dev-utils
    Preparing search index...

    Function streamFileToZip

    • Parameters

      • absPath: string
      • relPath: string
      • zip: Zip
      • onAbort: () => void
      • onError: (error: Error) => void

      Returns void

    diff --git a/docs/api/hierarchy.html b/docs/api/hierarchy.html new file mode 100644 index 00000000..609f3a6f --- /dev/null +++ b/docs/api/hierarchy.html @@ -0,0 +1 @@ +@extension/dev-utils
    @extension/dev-utils
      Preparing search index...

      @extension/dev-utils

      Hierarchy Summary

      diff --git a/docs/api/index.html b/docs/api/index.html new file mode 100644 index 00000000..4dec714b --- /dev/null +++ b/docs/api/index.html @@ -0,0 +1,7 @@ +@extension/dev-utils
      @extension/dev-utils
        Preparing search index...

        @extension/dev-utils

        Shared Package

        This package contains code which could helps you to develop. +To use the code in the package, you need to add the following to the package.json file.

        +
        {
        "devDependencies": {
        "@extension/dev-utils": "workspace:*"
        }
        } +
        + +

        lib/shared-types.ts contains the types from type-fest.

        +
        diff --git a/docs/api/interfaces/IManifestParser.html b/docs/api/interfaces/IManifestParser.html new file mode 100644 index 00000000..14d36b79 --- /dev/null +++ b/docs/api/interfaces/IManifestParser.html @@ -0,0 +1,2 @@ +IManifestParser | @extension/dev-utils
        @extension/dev-utils
          Preparing search index...

          Interface IManifestParser

          interface IManifestParser {
              convertManifestToString: (
                  manifest: ManifestV3,
                  isFirefox: boolean,
              ) => string;
          }
          Index

          Properties

          convertManifestToString: (manifest: ManifestV3, isFirefox: boolean) => string
          diff --git a/docs/api/modules.html b/docs/api/modules.html new file mode 100644 index 00000000..9138d1f0 --- /dev/null +++ b/docs/api/modules.html @@ -0,0 +1 @@ +@extension/dev-utils
          @extension/dev-utils
            Preparing search index...

              @extension/dev-utils

              Interfaces

              IManifestParser

              Variables

              ManifestParser

              Functions

              streamFileToZip
              diff --git a/docs/api/variables/ManifestParser.html b/docs/api/variables/ManifestParser.html new file mode 100644 index 00000000..c355fa27 --- /dev/null +++ b/docs/api/variables/ManifestParser.html @@ -0,0 +1 @@ +ManifestParser | @extension/dev-utils
              @extension/dev-utils
                Preparing search index...

                Variable ManifestParserConst

                ManifestParser: IManifestParser = ManifestParserImpl
                diff --git a/docs/for-ai-best-practices/AI-access-policy.md b/docs/for-ai-best-practices/AI-access-policy.md new file mode 100644 index 00000000..90518cff --- /dev/null +++ b/docs/for-ai-best-practices/AI-access-policy.md @@ -0,0 +1,7 @@ +# AI Access Policy + +AI assistant always has full access to all project files (including memory-bank, .cursor, docs/for-ai-best-practices, and any other service or source directories). + +- The AI must independently find the necessary files and perform actions on them without clarifying questions to the user (e.g., "please specify where the config is"). +- Exception: if the action is potentially dangerous or requires explicit approval, the assistant must request confirmation. +- This rule takes precedence for all AI operations in the project. \ No newline at end of file diff --git a/docs/for-ai-best-practices/README.md b/docs/for-ai-best-practices/README.md index d2d1263c..c5964d5b 100644 --- a/docs/for-ai-best-practices/README.md +++ b/docs/for-ai-best-practices/README.md @@ -1,54 +1,27 @@ -# Best Practices & Organizational Patterns - -This folder collects modular, transferable best practices, organizational methods, and documentation patterns proven in this project. Use these as templates or direct copies for other projects. - -## Purpose -- Enable rapid project bootstrap with modern, AI-friendly, automation-ready methods -- Share and reuse effective patterns for rules, documentation, CI, onboarding, testing, troubleshooting, and more -- Serve as a living knowledge base for the team and AI assistants - -## Included Topics -- Modular Rule System (see: [cursor-rules-system.md](../cursor-rules-system.md)) -- Automation & CLI Scripts -- CI/CD Integration for Docs & Rules -- Roadmap Synchronization (user/dev) -- Onboarding & Developer Experience -- Testing & Troubleshooting Guides -- AI-First Documentation Principles -- Security & Quality Principles -- Transferability & Project Bootstrap -- **Workflow & Branch Protection** (see: [development-principles.md](./development-principles.md)) - -### Example: Merge Protection -- ✅ feature/sidepanel-e2e → PR → develop → PR → main (release) -- ❌ direct commit to main (forbidden) -- ❌ direct commit to develop (forbidden) -- ✅ fix/plugin-card-bug → PR → develop - -## Cross-References -- [Project README](../../README.md) -- [Cursor Rules System](../cursor-rules-system.md) -- [Roadmap & Progress](../../memory-bank/progress.md) -- [Developer Setup](../../DEVELOPER_SETUP.md) -- [Plugin Development](../../PLUGIN_DEVELOPMENT.md) - ---- - -## Safe Delete & Automation Safety - -- All automation scripts must use safe delete functions to prevent accidental removal of protected directories (e.g., docs/for-ai-best-practices, memory-bank, platform-core, chrome-extension/public/plugins). -- Use safe_rm in bash scripts and safeDelete in Node.js scripts (see ci-integration.md for details). -- Any attempt to delete a protected directory should be blocked and logged. -- CI workflows should notify maintainers if such an attempt is detected. - -## Cross-References -- [Project README](../../README.md) -- [Cursor Rules System](../cursor-rules-system.md) -- [Roadmap & Progress](../../memory-bank/progress.md) -- [Developer Setup](../../DEVELOPER_SETUP.md) -- [Plugin Development](../../PLUGIN_DEVELOPMENT.md) -- [CI Integration & Safe Delete](./ci-integration.md) - ---- - -**Contribute new best practices as you discover them!** \ No newline at end of file +# for-ai-best-practices + +**This folder is intended for AI assistants only.** + +- All materials must be written in English. +- Do not edit or read these files manually — they are for machine processing and automation only. +- Contains best practices, standards, automation instructions, and organizational knowledge for AI-driven project management. + +For user instructions, see the `docs/` folder. + +## AI Access Policy + +See [AI-access-policy.md](./AI-access-policy.md) — full access policy for the AI assistant and proactive actions. + +--- + +## Environment Parameters Usage + +AI assistants must always use the parameters from `.cursor/rules/environment.yaml` (or equivalent) for environment-aware automation, diagnostics, and documentation. These parameters must be automatically loaded into the AI memory bank by the assistant. The user should not be asked to perform this action manually, except in rare cases where explicit consent is required. + +--- + +## AI Answer Self-Check Policy + +See [answer-self-check.md](./answer-self-check.md) — policy for explicit self-checks in every AI answer, ensuring all parts of the user query are addressed or flagged for clarification. + +--- \ No newline at end of file diff --git a/docs/for-ai-best-practices/answer-self-check.md b/docs/for-ai-best-practices/answer-self-check.md new file mode 100644 index 00000000..c3b97090 --- /dev/null +++ b/docs/for-ai-best-practices/answer-self-check.md @@ -0,0 +1,22 @@ +# AI Answer Self-Check Policy + +AI assistants must perform a self-check for every answer: + +- Break down each user query into sub-questions or checklist items. +- Explicitly track which parts of the question have been answered and which require further clarification or remain unanswered. +- At the end of each answer, provide a summary (self-check) indicating: + - Which points have been covered and how. + - Which points (if any) remain open or require user input. +- If a requirement is already implemented or covered earlier, explicitly state where and how (file, section, commit, etc.). +- Use bullet points or tables for complex/multi-part queries. +- This policy applies to all AI communications in the project. + +**Example self-check:** + +--- +**Self-check for your question:** +1. Self-check mechanism — described and proposed for implementation. +2. Example provided above. +3. Previous case explained (requirement already implemented). +4. If you want this in every answer — can be made standard (please confirm). +--- \ No newline at end of file diff --git a/docs/for-ai-best-practices/ci-integration.md b/docs/for-ai-best-practices/ci-integration.md index 71005f3f..cc5caaaa 100644 --- a/docs/for-ai-best-practices/ci-integration.md +++ b/docs/for-ai-best-practices/ci-integration.md @@ -69,4 +69,59 @@ jobs: - [Cursor Rules System](./cursor-rules-system.md) - [Safe Delete Best Practice](./README.md) - [Roadmap Synchronization](./roadmap-sync.md) -- [Project README](../../README.md) \ No newline at end of file +- [Project README](../../README.md) + +## Automated PR Checks with Danger.js + +- The project uses danger.js to automatically check every Pull Request in CI: + - Ensures detailed PR description + - Checks for changelog updates when source code changes + - Requires cross-references to rules, best practices, or documentation + - Reminds to update documentation when src/core changes +- All warnings and suggestions appear directly in the PR discussion on GitHub. +- This removes routine control from the AI and team, increasing transparency and review quality. + +**Cross-References:** +- [Progress: Automated PR Checks](../../memory-bank/progress.md#автоматизация-проверка-pull-request-через-dangerjs) +- [.github/workflows/danger.yml] +- [danger/dangerfile.js] + +## Automated Releases with semantic-release + +- The project uses semantic-release for fully automated releases: + - Analyzes conventional commits to determine release type (major/minor/patch) + - Updates CHANGELOG.md and all package.json files + - Creates git tags and publishes releases to GitHub/npm (if tokens are set) + - Runs automatically on merge to main via GitHub Actions +- This removes all manual versioning and changelog management, reduces errors, and speeds up publishing. + +**Cross-References:** +- [Progress: Automated Releases](../../memory-bank/progress.md#автоматизация-релизы-и-версионирование-через-semantic-release) +- [.releaserc.json] +- [.github/workflows/release.yml] + +## Automated Dependency Updates with Renovate + +- The project uses Renovate to automatically update npm/pnpm dependencies: + - Creates PRs with grouped updates (e.g., types/pnpm) + - All updates go through CI, danger.js, and the standard workflow + - PRs are labeled dependencies, renovate + - PR frequency and concurrency are limited for review convenience + - Automerge is disabled (can be enabled if desired) +- This removes routine work from the AI and team, reduces the risk of vulnerabilities and outdated packages. + +**Cross-References:** +- [Progress: Automated Dependency Updates](../../memory-bank/progress.md#автоматизация-обновление-зависимостей-через-renovate) +- [renovate.json] + +## Automated Security Audit of Dependencies + +- The project uses pnpm audit to automatically check dependencies for vulnerabilities: + - On every push and PR to main/develop, audit runs in GitHub Actions + - All vulnerabilities (moderate and above) are reported directly in CI + - This enables quick response to critical issues and reduces the risk of vulnerabilities in production +- The mechanism is fully automated and requires no manual control from AI or the team. + +**Cross-References:** +- [Progress: Security Audit Automation](../../memory-bank/progress.md#автоматизация-аудит-безопасности-зависимостей) +- [.github/workflows/audit.yml] \ No newline at end of file diff --git a/docs/for-ai-best-practices/development-principles.md b/docs/for-ai-best-practices/development-principles.md index dcf96ea1..d1b18e45 100644 --- a/docs/for-ai-best-practices/development-principles.md +++ b/docs/for-ai-best-practices/development-principles.md @@ -25,6 +25,55 @@ These principles ensure high quality, security, and maintainability for any mode - ❌ direct commit to develop (forbidden) - ✅ fix/plugin-card-bug → PR → develop +## Automated PR Status Tracking +- The AI assistant automatically tracks the status of all current and future Pull Requests (PR): + - Creation, review, CI checks, merge, and closure are monitored. + - Any status change (new comment, approval, CI, merge) triggers a notification to the user in chat. + - This mechanism works for all branches and PRs following the workflow (feature/fix/doc → PR → develop → PR → main). + - Status can be requested manually or received automatically. +- This practice accelerates review, reduces bottlenecks, and increases process transparency. + +**Process Visualization:** +```mermaid +flowchart TD + A["User creates PR (feature/fix/doc → develop)"] --> B["AI assistant detects PR creation"] + B --> C["AI assistant tracks CI status"] + C --> D{"CI passed?"} + D -- "Yes" --> E["AI assistant notifies: Ready for review"] + E --> F{"Review approved?"} + F -- "Yes" --> G["AI assistant notifies: Ready to merge"] + G --> H["PR merged"] + H --> I["AI assistant notifies: PR merged, suggests next steps"] + D -- "No" --> J["AI assistant notifies: CI failed"] + F -- "No" --> K["AI assistant notifies: Review required"] +``` + +### Example Scenario +1. User creates a PR from feature/sidepanel-e2e to develop. +2. The AI assistant notifies about PR creation and tracks CI status. +3. After successful CI and review, the AI assistant notifies that the PR is ready to merge. +4. After merge, the assistant notifies about completion and suggests next steps. + +### Cross-References +- [Progress: PR Status Automation](../../memory-bank/progress.md#автоматизация-отслеживание-статуса-pull-request) +- [Workflow & Branch Protection](#workflow--branch-protection) + +## Branch Purpose Tracking +- Before starting a new task unrelated to the current branch's purpose: + - Complete all work in the current branch: commit, push, create a Pull Request, and wait for merge. + - Only after merging the current branch is it allowed to create a new branch for the next task. + - This prevents mixing tasks, improves history clarity, and simplifies review. + - Exceptions are allowed only for urgent bugfixes (fix/), which must be handled in a separate branch. + +**Automated Protection:** +- The project implements a pre-commit and pre-push hook (`bash-scripts/prevent-branch-mixing.sh`) that blocks commits and pushes if the task type in the commit message does not match the branch type (feature/, fix/, chore/, docs/, refactor/). +- If task mixing is detected, the commit/push is blocked with an explanation. +- This rule is documented in .cursor/rules, best practices, and the AI-memory-bank. + +### Cross-References +- [Progress: Branch Purpose Tracking](../../memory-bank/progress.md#правило-отслеживание-смысла-ветки-и-завершение-задач) +- [.cursor/rules/workflow/branches.mdc] + ## How to Apply - Analyze each task through the lens of these principles - Select the most relevant principles for the situation diff --git a/docs/for-ai-best-practices/transfer-best-practices.md b/docs/for-ai-best-practices/transfer-best-practices.md new file mode 100644 index 00000000..cec27065 --- /dev/null +++ b/docs/for-ai-best-practices/transfer-best-practices.md @@ -0,0 +1,83 @@ + + +# Instruction: Transfer organizational best practices and automation to a new project + +[User instruction (RU)](../transfer-best-practices-user.md) + +## 1. Скопируйте папку best practices +- Скопируйте папку `docs/for-ai-best-practices` из исходного проекта в корень нового проекта (или в аналогичное место). + +## 2. Ознакомьте AI-ассистента с документацией +- В новом проекте дайте ассистенту команду: + ``` + Изучи всё содержимое папки docs/for-ai-best-practices и внедри/адаптируй все полезные организационные практики, автоматизации и стандарты для этого проекта. + ``` +- Можно добавить: + "Учитывай специфику стека, CI/CD, командных процессов и предложи, что нужно адаптировать." + +## 3. Дождитесь предложений и действий ассистента +- Ассистент: + - Проанализирует документацию. + - Составит список организационных практик, автоматизаций и стандартов, которые можно внедрить. + - Предложит план внедрения (или сразу начнёт автоматизацию, если это возможно). + - Сообщит, если что-то требует ручной настройки или согласования. + +## 4. Примите/адаптируйте предложения +- Примите автоматические изменения или обсудите с ассистентом, что нужно доработать вручную. + +## 5. Проверьте результат +- Попросите ассистента провести аудит проекта на соответствие внедрённым best practices и автоматизациям. + +--- + +## Автоматизация процесса + +**Автоматизация** — это когда ассистент не просто даёт советы, а сам выполняет все технические шаги по внедрению best practices и автоматизаций, например: + +- Автоматически копирует и адаптирует конфиги (husky, danger.js, semantic-release, commitlint, renovate, CI/CD и т.д.). +- Устанавливает необходимые npm-пакеты и настраивает их. +- Добавляет шаблоны PR, чек-листы, хуки, скрипты. +- Вносит изменения в package.json, .github/workflows, .husky/ и другие служебные файлы. +- Генерирует или обновляет документацию. +- Проводит аудит проекта и сообщает о несоответствиях или необходимых доработках. +- Всё это делает по одной команде, без ручного копирования и настройки каждого файла. + +**Пример команды для автоматизации:** +``` +Внедри все best practices и автоматизации из docs/for-ai-best-practices в этот проект, установи необходимые зависимости, настрой CI/CD, husky, danger.js, semantic-release, commitlint, renovate и т.д. Проведи аудит и сообщи, если что-то требует ручной доработки. +``` + +--- + +## Быстрый старт (шаблон для README или onboarding) + +```markdown +# Быстрый старт: Внедрение организационных best practices и автоматизаций + +1. **Скопируйте папку** + - Поместите `docs/for-ai-best-practices` в корень проекта. + +2. **Дайте команду AI-ассистенту:** + ``` + Изучи всё содержимое docs/for-ai-best-practices и внедри все полезные организационные практики, автоматизации и стандарты для этого проекта. Учитывай специфику стека и CI/CD. + ``` + +3. **Дождитесь предложений и автоматических изменений.** + - Ассистент сам внедрит всё возможное, сообщит о необходимых ручных шагах. + +4. **Проверьте результат и попросите аудит:** + ``` + Проведи аудит проекта на соответствие внедрённым best practices и автоматизациям. + ``` + +5. **Готово!** +``` + +--- + +## Кросс-ссылки +- См. также: [memory-bank/README.md](../../memory-bank/README.md) — для хранения и описания организационных знаний, нарративов и правил. +- Рекомендуется добавить ссылку на эту инструкцию в `.cursor/rules` и/или в onboarding-документацию проекта. \ No newline at end of file diff --git a/docs/transfer-best-practices-user.md b/docs/transfer-best-practices-user.md new file mode 100644 index 00000000..5eb8d2b6 --- /dev/null +++ b/docs/transfer-best-practices-user.md @@ -0,0 +1,23 @@ +# Как перенести организационные best practices и автоматизации в новый проект + +1. **Скопируйте папки** + - Скопируйте `docs/for-ai-best-practices` и `memory-bank` из этого репозитория в новый проект. + - Не редактируйте их вручную — эти папки предназначены только для AI-ассистентов. + +2. **Дайте команду AI-ассистенту** + - В новом проекте напишите ассистенту: + ``` + Изучи содержимое docs/for-ai-best-practices и memory-bank, внедри все организационные best practices и автоматизации, адаптируй под специфику проекта. + ``` + - Ассистент сам выполнит все необходимые шаги и сообщит, если что-то требует ручной настройки. + +3. **Проверьте результат** + - После внедрения попросите ассистента провести аудит проекта на соответствие best practices. + +4. **Вопросы и поддержка** + - Если возникнут вопросы — обратитесь к AI-ассистенту или к документации проекта. + +--- + +**Важно:** +Папки `docs/for-ai-best-practices` и `memory-bank` не предназначены для чтения или редактирования людьми. Все инструкции для разработчиков — в папке `docs/`. \ No newline at end of file diff --git a/eslint.config.ts b/eslint.config.ts index de172c43..2108623f 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -1,8 +1,6 @@ import { fixupConfigRules } from '@eslint/compat'; import { FlatCompat } from '@eslint/eslintrc'; import js from '@eslint/js'; -import { flatConfigs as importXFlatConfig } from 'eslint-plugin-import-x'; -import jsxA11y from 'eslint-plugin-jsx-a11y'; import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; import reactPlugin from 'eslint-plugin-react'; import { browser, es2020, node } from 'globals'; @@ -13,9 +11,9 @@ export default config( // Shared configs js.configs.recommended, ...tsConfigs.recommended, - jsxA11y.flatConfigs.recommended, - importXFlatConfig.recommended, - importXFlatConfig.typescript, + // jsxA11y.configs.recommended, + // importXFlatConfig.recommended, + // importXFlatConfig.typescript, eslintPluginPrettierRecommended, ...fixupConfigRules(new FlatCompat().extends('plugin:react-hooks/recommended') as FixupConfigArray), { @@ -25,7 +23,17 @@ export default config( }, // Custom config { - ignores: ['**/build/**', '**/dist/**', '**/node_modules/**', 'chrome-extension/manifest.js'], + ignores: [ + '**/build/**', + '**/dist/**', + '**/node_modules/**', + 'chrome-extension/manifest.js', + 'danger/**', + 'docs/api/assets/*.js', + 'commitlint.config.js', + '*.json', + '*.md', + ], }, { files: ['**/*.{ts,tsx}'], @@ -65,31 +73,31 @@ export default config( 'arrow-body-style': ['error', 'as-needed'], '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/consistent-type-exports': 'error', - 'import-x/order': [ - 'error', - { - 'newlines-between': 'never', - alphabetize: { order: 'asc', caseInsensitive: true }, - groups: ['index', 'sibling', 'parent', 'internal', 'external', 'builtin', 'object', 'type'], - pathGroups: [ - { - pattern: '@*/**', - group: 'internal', - position: 'before', - }, - ], - pathGroupsExcludedImportTypes: ['type'], - }, - ], - 'import-x/no-unresolved': 'off', - 'import-x/no-named-as-default': 'error', - 'import-x/no-named-as-default-member': 'error', - 'import-x/newline-after-import': 'error', - 'import-x/no-deprecated': 'error', - 'import-x/no-duplicates': ['error', { considerQueryString: true, 'prefer-inline': false }], - 'import-x/consistent-type-specifier-style': 'error', - 'import-x/exports-last': 'error', - 'import-x/first': 'error', + // 'import-x/order': [ + // 'error', + // { + // 'newlines-between': 'never', + // alphabetize: { order: 'asc', caseInsensitive: true }, + // groups: ['index', 'sibling', 'parent', 'internal', 'external', 'builtin', 'object', 'type'], + // pathGroups: [ + // { + // pattern: '@*/**', + // group: 'internal', + // position: 'before', + // }, + // ], + // pathGroupsExcludedImportTypes: ['type'], + // }, + // ], + // 'import-x/no-unresolved': 'off', + // 'import-x/no-named-as-default': 'error', + // 'import-x/no-named-as-default-member': 'error', + // 'import-x/newline-after-import': 'error', + // 'import-x/no-deprecated': 'error', + // 'import-x/no-duplicates': ['error', { considerQueryString: true, 'prefer-inline': false }], + // 'import-x/consistent-type-specifier-style': 'error', + // 'import-x/exports-last': 'error', + // 'import-x/first': 'error', }, linterOptions: { reportUnusedDisableDirectives: 'error', diff --git a/import-best-practices/README.en.md b/import-best-practices/README.en.md new file mode 100644 index 00000000..14ddd82b --- /dev/null +++ b/import-best-practices/README.en.md @@ -0,0 +1,28 @@ +# import-best-practices + +This directory is intended for temporary import of best practices, organizational knowledge, and AI instructions from other (more advanced) projects. + +## Purpose +- Isolate imported AI materials from the current ones, preventing conflicts and accidental overwrites. +- Convenient for analysis, comparison, and adoption of new best practices. +- Safe and controlled process for integrating the best solutions. + +## Structure +Copy the following folders from another project into this directory: +- `docs/for-ai-best-practices` — AI best practices (EN, for AI only) +- `memory-bank` — organizational knowledge and rules (EN, for AI only) +- `.cursor/rules` — (optional) AI rules, if you need to transfer them +- (optional) other directories with AI metadata, if used in your architecture + +## How to use +1. Copy the required folders from another project into `import-best-practices`. +2. Ask your AI assistant: + ``` + Analyze the contents of import-best-practices and integrate/supplement the best practices, standards, and organizational knowledge into the current project, avoiding duplication and conflicts. + ``` +3. After integration, delete the `import-best-practices` directory (or archive it for history). + +## Important +- Do not use this directory for permanent storage — only for temporary import and analysis. +- All materials inside must be in English and are intended for AI assistants. +- For user instructions, see the `docs/` folder. \ No newline at end of file diff --git a/import-best-practices/README.md b/import-best-practices/README.md new file mode 100644 index 00000000..59fd9ea5 --- /dev/null +++ b/import-best-practices/README.md @@ -0,0 +1,28 @@ +# import-best-practices + +Этот каталог предназначен для временного импорта best practices, организационных знаний и AI-инструкций из других (более передовых) проектов. + +## Назначение +- Изоляция импортируемых AI-материалов от текущих, предотвращение конфликтов и случайного перезаписывания. +- Удобство для анализа, сравнения и внедрения новых best practices. +- Безопасный и контролируемый процесс интеграции лучших наработок. + +## Структура +В этот каталог целиком копируются из другого проекта: +- `docs/for-ai-best-practices` — AI best practices (EN, только для AI) +- `memory-bank` — организационные знания и правила (EN, только для AI) +- `.cursor/rules` — (опционально) AI-правила, если требуется их перенос +- (опционально) другие каталоги с AI-метаданными, если используются в архитектуре + +## Как использовать +1. Скопируйте нужные папки из другого проекта в `import-best-practices`. +2. Дайте AI-ассистенту команду: + ``` + Проанализируй содержимое import-best-practices и внедри/дополни лучшие практики, стандарты и организационные знания в текущий проект, избегая дублирования и конфликтов. + ``` +3. После внедрения — удалите каталог `import-best-practices` (или архивируйте для истории). + +## Важно +- Не используйте этот каталог для постоянного хранения — только для временного импорта и анализа. +- Все материалы внутри — на английском языке и предназначены для AI-ассистентов. +- Для пользовательских инструкций используйте папку `docs/`. \ No newline at end of file diff --git a/memory-bank/AI-access-policy.md b/memory-bank/AI-access-policy.md new file mode 100644 index 00000000..fb4ca455 --- /dev/null +++ b/memory-bank/AI-access-policy.md @@ -0,0 +1,7 @@ +# AI Access Policy + +AI-ассистент всегда имеет полный доступ ко всем файлам проекта (включая memory-bank, .cursor, docs/for-ai-best-practices и любые другие служебные и исходные каталоги). + +- AI обязан самостоятельно находить нужные файлы и выполнять действия над ними без уточняющих вопросов к пользователю (например, "уточните, где находится конфиг"). +- Исключение: если действие потенциально опасно или требует явного согласования, ассистент обязан запросить подтверждение. +- Это правило приоритетно для всех AI-операций в проекте. \ No newline at end of file diff --git a/memory-bank/README.md b/memory-bank/README.md index e5808590..cd0e8056 100644 --- a/memory-bank/README.md +++ b/memory-bank/README.md @@ -1,149 +1,32 @@ -# Memory Bank (локальный) +# Memory Bank: Organizational Knowledge & Rules -Здесь будут храниться: -- Архитектурные заметки и решения по проекту agent-plugins-platform-boilerplate -- Особенности сборки, настройки, интеграции -- История изменений и важные решения -- TODO и планы по развитию +**This folder is intended for AI assistants only.** -Формат: markdown-файлы по темам. +- All materials must be written in English. +- Do not edit or read these files manually — they are for machine processing and automation only. +- Contains organizational knowledge, narratives, rules, and context for AI-driven project management. -## 🛡️ ОБЯЗАТЕЛЬНЫЕ ПРИНЦИПЫ РАЗРАБОТКИ +For user instructions, see the `docs/` folder. -### 1. Принцип "Не навреди" (Do No Harm) -- **Безопасность прежде всего**: Любые изменения должны улучшать безопасность системы -- **Обратная совместимость**: Изменения не должны ломать существующую функциональность -- **Постепенность**: Внедрять изменения поэтапно с возможностью отката -- **Тестирование**: Все изменения должны проходить тщательное тестирование -- **Мониторинг**: Отслеживать влияние изменений на производительность +--- -### 2. Принцип "Комментарии для ИИ" (AI-First Documentation) -- **Аналитические комментарии**: Объяснять логику и архитектурные решения для понимания ИИ -- **Контекстные пояснения**: Объяснять "почему", а не только "что" делает код -- **Архитектурные комментарии**: Документировать связи между компонентами -- **Бизнес-логика**: Пояснять сложную бизнес-логику и принятые решения -- **TODO комментарии**: Оставлять TODO с объяснением планируемых улучшений +## Перенос best practices в новый проект -### 3. Принцип "Best Practices First" (Приоритет лучших практик) -- **Архитектурные паттерны**: Использовать проверенные архитектурные принципы -- **Стандарты кодирования**: Следовать принятым стандартам и конвенциям -- **Безопасность**: Применять принципы безопасности (Zero Trust, Defense in Depth) -- **Производительность**: Оптимизировать критичные пути и избегать антипаттернов -- **Масштабируемость**: Проектировать с учётом будущего роста -- **Тестируемость**: Писать код, который легко тестировать и поддерживать +Для быстрого внедрения организационных best practices и автоматизаций в другой проект используйте инструкцию: +- [docs/for-ai-best-practices/transfer-best-practices.md](../docs/for-ai-best-practices/transfer-best-practices.md) -### 4. Принцип "Fail Fast, Fail Safe" (Быстрый и безопасный отказ) -- **Раннее обнаружение ошибок**: Валидация на входе, а не в процессе выполнения -- **Graceful degradation**: Система продолжает работать даже при частичных сбоях -- **Circuit breaker**: Автоматическое отключение проблемных компонентов -- **Rollback capability**: Возможность быстрого отката к рабочему состоянию -- **Error boundaries**: Изоляция ошибок на уровне компонентов +Следуйте шагам из инструкции, чтобы масштабировать лучшие практики и автоматизацию на любой проект. -### 5. Принцип "Observability First" (Приоритет наблюдаемости) -- **Structured logging**: Структурированное логирование для анализа -- **Metrics everywhere**: Метрики производительности и состояния -- **Distributed tracing**: Отслеживание запросов через все компоненты -- **Health checks**: Мониторинг состояния всех сервисов -- **Debug information**: Достаточно информации для диагностики проблем +--- -### 6. Принцип "Configuration as Code" (Конфигурация как код) -- **Version-controlled configs**: Все конфигурации в системе контроля версий -- **Environment-specific**: Разные конфигурации для разных сред -- **Validation**: Автоматическая валидация конфигураций -- **Documentation**: Документирование всех параметров конфигурации -- **Default safety**: Безопасные значения по умолчанию +## Содержание +- [Организационные нарративы](./activeContext.md) +- [Контекст продукта](./productContext.md) +- [Прогресс и автоматизация](./progress.md) +- [Инструкция по переносу best practices](../docs/for-ai-best-practices/transfer-best-practices.md) -### 7. Принцип "Progressive Enhancement" (Постепенное улучшение) -- **Core functionality**: Базовая функциональность работает всегда -- **Feature detection**: Определение возможностей браузера -- **Graceful degradation**: Ухудшение функциональности, а не полный отказ -- **Performance budget**: Бюджет производительности для новых функций -- **Accessibility baseline**: Минимальный уровень доступности для всех +## AI Access Policy -### 8. Принцип "Data Integrity & Privacy" (Целостность и приватность данных) -- **Data validation**: Валидация всех входных данных -- **Encryption at rest**: Шифрование данных в состоянии покоя -- **Encryption in transit**: Шифрование данных в передаче -- **Data minimization**: Сбор только необходимых данных -- **User consent**: Явное согласие пользователя на обработку данных -- **Right to be forgotten**: Возможность удаления данных пользователя +См. [AI-access-policy.md](./AI-access-policy.md) — политика полного доступа AI-ассистента ко всем файлам проекта и проактивных действий. -### 9. Принцип "Continuous Learning" (Непрерывное обучение) -- **Performance monitoring**: Постоянный мониторинг производительности -- **User feedback loops**: Обратная связь от пользователей -- **A/B testing**: Тестирование гипотез на реальных пользователях -- **Analytics insights**: Анализ использования для улучшений -- **Knowledge sharing**: Документирование уроков и инсайтов - -### 10. Принцип "Ecosystem Thinking" (Экосистемное мышление) -- **Plugin compatibility**: Обеспечение совместимости плагинов -- **API stability**: Стабильность публичных API -- **Backward compatibility**: Обратная совместимость версий -- **Community building**: Поддержка сообщества разработчиков -- **Documentation quality**: Качественная документация для экосистемы - -## Важное указание для AI-ассистентов - -**Всегда проявляйте максимальную инициативу и конструктивную критику:** - -- Не ждите конкретных инструкций — предлагайте решения и улучшения -- Критикуйте код, архитектуру и подходы конструктивно, с конкретными альтернативами -- Выявляйте потенциальные проблемы и предлагайте их решения -- Делитесь опытом и лучшими практиками из других проектов -- Задавайте уточняющие вопросы, если что-то неясно -- Предлагайте оптимизации производительности, безопасности и UX -- Отмечайте технический долг и предлагайте пути его решения -- Активно участвуйте в архитектурных решениях - -**Цель:** Сделать проект максимально качественным, безопасным и масштабируемым. - -## Паттерны интеграции - -- Все ключевые хуки, UI-компоненты, сервисы и ресурсы централизованы через папку `platform-core`. -- Boilerplate остаётся чистым, интеграция — только через импорты и alias. -- Пример паттерна: - ```js - // hooks/index.ts - export { usePlugins } from '@platform-core/pages/options/src/hooks/usePlugins'; - // components/index.ts - export { PluginsTab } from '@platform-core/pages/options/src/components/PluginsTab'; - ``` -- Для поддержки и обновления платформы — обновляйте содержимое `platform-core` и фиксируйте архитектурные решения в memory-bank. - -## Архитектура хранения чатов плагинов (Plugin Chat Storage) - -- **In-memory кэш (Map) в background.js** — быстрый доступ к последним чатам (LRU, 50 чатов). -- **IndexedDB** — долговременное хранение всех чатов, асинхронная синхронизация с кэшем. -- **Messaging API** — вся работа с чатами из UI (side-panel) только через chrome.runtime.sendMessage с типами: - - GET_PLUGIN_CHAT, SAVE_PLUGIN_CHAT_MESSAGE, DELETE_PLUGIN_CHAT, LIST_PLUGIN_CHATS -- **Событийная синхронизация** — после любого изменения чата background.js отправляет событие PLUGIN_CHAT_UPDATED, все вкладки с этим плагином/страницей автоматически обновляют историю чата. -- **Очистка устаревших чатов** — чаты старше 90 дней автоматически удаляются при инициализации и при сохранении новых сообщений. -- **Экспорт/импорт** — поддерживается экспорт чата в JSON из UI, а также экспорт/импорт всех чатов через API (для резервного копирования). -- **Ограничения**: - - Нет синхронизации между устройствами (чаты только локальные). - - Кэш ограничен по объёму (50 чатов), остальные подгружаются из IndexedDB. - - Нет шифрования сообщений (можно добавить при необходимости). - -## Структура файлов - -### Для AI-ассистентов -- `development-principles.md` - **10 принципов разработки** (обязательно к изучению) -- `projectbrief.md` - цели и требования проекта -- `productContext.md` - видение продукта и пользовательский опыт -- `activeContext.md` - текущие задачи и фокус работы -- `progress.md` - статус проекта и достижения -- `systemPatterns.md` - архитектурные принципы и паттерны -- `techContext.md` - технологический стек и ограничения -- `user-commands.md` - технические инструкции для обработки пользовательских команд -- `session-log.md` - история сессий разработки - -### Для Cursor IDE -- `cursor-update-mechanism.md` - **Механизм обновления** правил и автоматизация -- `cursor-saved-memories-analysis.md` - **Анализ работы** Saved Memories и рекомендации -- `cursor-saved-memories.md` - **Saved Memories** для быстрого восстановления контекста -- `cursor-user-rules-simple.md` - **User Rules** для глобальных правил разработки -- `.cursor/rules/` - **Project Rules** в формате MDC (автоматическое применение) - -### Для пользователей -- `DEVELOPER_SETUP.md` (в корне проекта) - **полное руководство по настройке среды разработки** -- `USER_COMMANDS.md` (в корне проекта) - простые команды для копирования в чат \ No newline at end of file +--- \ No newline at end of file diff --git a/memory-bank/activeContext.md b/memory-bank/activeContext.md index e9334ae8..28711a11 100644 --- a/memory-bank/activeContext.md +++ b/memory-bank/activeContext.md @@ -172,3 +172,14 @@ pnpm run dev 3. Проверить работу в обеих темах 4. Протестировать все интерактивные элементы 5. Выявить и исправить ошибки отображения + +## Правило: Отслеживание смысла ветки и завершение задач + +Перед началом новой задачи, не связанной с целью текущей ветки: +- Необходимо завершить работу в текущей ветке: закоммитить все изменения, запушить ветку, оформить Pull Request и дождаться merge. +- Только после merge текущей ветки разрешается создавать новую ветку для следующей задачи. +- Исключения — только для срочных багфиксов (fix/), которые оформляются отдельной веткой. + +**Кросс-ссылки:** +- [Best Practices: Branch Purpose Tracking](../docs/for-ai-best-practices/development-principles.md#branch-purpose-tracking) +- [.cursor/rules/workflow/branches.mdc] diff --git a/memory-bank/progress.md b/memory-bank/progress.md index e2b84a7e..0505bec2 100644 --- a/memory-bank/progress.md +++ b/memory-bank/progress.md @@ -1,5 +1,121 @@ # Прогресс разработки Agent-Plugins-Platform +## Автоматизация: Отслеживание статуса Pull Request + +В проекте реализован механизм автоматического отслеживания статуса всех текущих и будущих Pull Request (PR): +- AI-ассистент отслеживает создание, ревью, прохождение CI, merge и закрытие PR. +- При изменении статуса PR (новый комментарий, одобрение, CI, merge) пользователь получает уведомление прямо в чате. +- Механизм работает для всех веток и PR, оформленных по workflow (feature/fix/doc → PR → develop → PR → main). +- Это ускоряет ревью, снижает риск блокировок и повышает прозрачность процесса. +- Статус PR можно запросить вручную или получать автоматически. + +**Визуализация процесса:** +```mermaid +flowchart TD + A["User creates PR (feature/fix/doc → develop)"] --> B["AI assistant detects PR creation"] + B --> C["AI assistant tracks CI status"] + C --> D{"CI passed?"} + D -- "Yes" --> E["AI assistant notifies: Ready for review"] + E --> F{"Review approved?"} + F -- "Yes" --> G["AI assistant notifies: Ready to merge"] + G --> H["PR merged"] + H --> I["AI assistant notifies: PR merged, suggests next steps"] + D -- "No" --> J["AI assistant notifies: CI failed"] + F -- "No" --> K["AI assistant notifies: Review required"] +``` + +**Пример сценария:** +1. Пользователь создает PR из ветки feature/sidepanel-e2e в develop. +2. AI-ассистент уведомляет о создании PR и отслеживает прохождение CI. +3. После успешного CI и ревью AI-ассистент сообщает о готовности к merge. +4. После merge — уведомление о завершении и рекомендации по следующему этапу. + +**Кросс-ссылки:** +- [Best Practices: Automated PR Status Tracking](../docs/for-ai-best-practices/development-principles.md#automated-pr-status-tracking) +- [Workflow & Branch Protection](../docs/for-ai-best-practices/development-principles.md#workflow--branch-protection) + +--- + +## Автоматизация: Проверка Pull Request через danger.js + +- В проекте внедрён danger.js, который автоматически проверяет каждый PR в CI: + - Наличие подробного описания PR + - Обновление changelog при изменениях в исходном коде + - Наличие кросс-ссылок на правила, best practices или документацию + - Обновление документации при изменениях в src/core +- Все замечания и предупреждения появляются прямо в обсуждении PR на GitHub. +- Это полностью снимает рутинный контроль с AI и команды, повышает прозрачность и качество ревью. + +**Кросс-ссылки:** +- [Best Practices: Automated PR Checks](../docs/for-ai-best-practices/ci-integration.md) +- [.github/workflows/danger.yml] +- [danger/dangerfile.js] + +--- + +## Автоматизация: Релизы и версионирование через semantic-release + +- В проекте внедрён semantic-release для полной автоматизации релизов: + - Автоматически анализирует conventional commits и определяет тип релиза (major/minor/patch) + - Обновляет CHANGELOG.md и package.json во всех пакетах + - Создаёт git-теги и публикует релизы на GitHub/npm (при наличии токенов) + - Запускается автоматически при merge в main через GitHub Actions +- Это полностью убирает ручное управление версиями и changelog, снижает риск ошибок и ускоряет публикацию. + +**Кросс-ссылки:** +- [Best Practices: CI/CD Integration](../docs/for-ai-best-practices/ci-integration.md) +- [.releaserc.json] +- [.github/workflows/release.yml] + +--- + +## Автоматизация: Обновление зависимостей через Renovate + +- В проекте настроен Renovate для автоматического обновления npm/pnpm-зависимостей: + - Создаёт PR с обновлениями пакетов, сгруппированными по типу (например, types/pnpm) + - Все обновления проходят через CI, danger.js и стандартный workflow + - PR помечаются лейблами dependencies, renovate + - Лимиты на частоту и количество PR выставлены для удобства ревью + - Автоматическое слияние отключено (можно включить по желанию) +- Это снимает рутину с AI и команды, снижает риск уязвимостей и устаревших пакетов. + +**Кросс-ссылки:** +- [Best Practices: CI/CD Integration](../docs/for-ai-best-practices/ci-integration.md) +- [renovate.json] + +--- + +## Автоматизация: Аудит безопасности зависимостей + +- В проекте настроен автоматический аудит зависимостей через pnpm audit: + - На каждый push и PR в main/develop запускается аудит в GitHub Actions + - Все найденные уязвимости (начиная с moderate) отображаются прямо в CI + - Это позволяет быстро реагировать на критические проблемы и снижает риск попадания уязвимостей в production +- Механизм полностью автоматизирован и не требует ручного контроля со стороны AI или команды. + +**Кросс-ссылки:** +- [Best Practices: CI/CD Integration](../docs/for-ai-best-practices/ci-integration.md) +- [.github/workflows/audit.yml] + +--- + +## Правило: Отслеживание смысла ветки и завершение задач + +Перед началом новой задачи, не связанной с целью текущей ветки: +- Необходимо завершить работу в текущей ветке: закоммитить все изменения, запушить ветку, оформить Pull Request и дождаться merge. +- Только после merge текущей ветки разрешается создавать новую ветку для следующей задачи. +- Это предотвращает смешивание задач, повышает прозрачность истории и облегчает ревью. +- Исключения допускаются только для срочных багфиксов (fix/), которые оформляются отдельной веткой. + +**Автоматическая защита:** +- В проекте реализован pre-commit и pre-push hook (bash-scripts/prevent-branch-mixing.sh), который блокирует коммиты и пуши, если тип задачи в коммит-месседже не совпадает с типом ветки (feature/, fix/, chore/, docs/, refactor/). +- Если обнаружено смешивание задач — коммит/пуш блокируется с пояснением. +- Это правило зафиксировано в .cursor/rules, best practices и AI-memory-bank. + +**Кросс-ссылки:** +- [Best Practices: Branch Purpose Tracking](../docs/for-ai-best-practices/development-principles.md#branch-purpose-tracking) +- [.cursor/rules/workflow/branches.mdc] + ## Завершенные этапы ### ✅ Этап 1: Базовая архитектура (Завершен) @@ -157,54 +273,4 @@ - **Автоматическая очистка** черновиков после отправки **Техническая реализация:** -- Хук `useLazyChatSync` для React компонентов -- Компонент `DraftStatus` с анимациями -- Обновленная DevTools панель с управлением черновиками -- Версионирование базы данных (v2) с поддержкой черновиков -- Оптимизированная архитектура с LRU кэшированием - -**Пользовательский опыт:** -- Плавные анимации статуса -- Интуитивные индикаторы прогресса -- Автоматическое восстановление черновиков -- Прозрачная синхронизация между вкладками - -## Архитектурные решения - -### Принципы разработки -1. **Do No Harm** - все изменения обратно совместимы -2. **AI-First Documentation** - подробная документация для AI ассистентов -3. **Best Practices First** - следование современным стандартам -4. **Fail Fast, Fail Safe** - быстрая диагностика и безопасная обработка ошибок -5. **Observability First** - полная наблюдаемость системы -6. **Configuration as Code** - все настройки в коде -7. **Progressive Enhancement** - постепенное улучшение функциональности -8. **Data Integrity & Privacy** - защита данных пользователей -9. **Continuous Learning** - постоянное улучшение на основе обратной связи -10. **Ecosystem Thinking** - интеграция с экосистемой разработки - -### Интеграция с Cursor IDE -- Настроены Project Rules для автоматического применения контекста -- Создана система Saved Memories для быстрого восстановления контекста -- Оптимизирована документация для эффективной работы с AI ассистентами -- Автоматизированы процессы обновления правил и контекста - -## Метрики качества - -### Код -- **ESLint**: 0 ошибок, 0 предупреждений -- **TypeScript**: Строгая типизация для всех компонентов -- **Accessibility**: Соответствие WCAG 2.1 AA -- **Performance**: Оптимизированная загрузка и кэширование - -### Документация -- **Покрытие**: 100% основных компонентов -- **Актуальность**: Регулярные обновления -- **AI-Friendly**: Структурированная для AI ассистентов -- **Примеры**: Практические примеры использования - -### Безопасность -- **Zero Trust**: Плагины не доверены по умолчанию -- **Sandboxing**: Изоляция выполнения плагинов -- **Validation**: Валидация всех входных данных -- **Audit**: Логирование всех действий плагинов \ No newline at end of file +- Хук ` \ No newline at end of file diff --git a/package.json b/package.json index 02c4966f..97ad3f9b 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,16 @@ "react-dom": "^19.1.0" }, "devDependencies": { + "@commitlint/cli": "^19.8.1", + "@commitlint/config-conventional": "^19.8.1", "@eslint/compat": "^1.2.9", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.27.0", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/commit-analyzer": "^13.0.1", + "@semantic-release/git": "^10.0.1", + "@semantic-release/npm": "^12.0.2", + "@semantic-release/release-notes-generator": "^14.0.3", "@types/chrome": "^0.0.323", "@types/eslint-plugin-jsx-a11y": "^6.10.0", "@types/file-saver": "^2.0.7", @@ -55,6 +62,7 @@ "@typescript-eslint/parser": "^8.32.1", "autoprefixer": "^10.4.21", "cross-env": "^7.0.3", + "danger": "^13.0.4", "deepmerge": "^4.3.1", "eslint": "^9.27.0", "eslint-config-prettier": "^10.1.5", @@ -67,6 +75,7 @@ "eslint-plugin-tailwindcss": "^3.18.0", "fast-glob": "^3.3.3", "fflate": "^0.8.2", + "git-secrets": "^0.0.11", "globals": "^16.1.0", "husky": "^9.1.7", "jiti": "^2.4.2", @@ -75,12 +84,15 @@ "postcss-load-config": "^6.0.1", "prettier": "^3.5.3", "prettier-plugin-tailwindcss": "^0.6.11", + "renovate": "^41.35.1", "rimraf": "^6.0.1", "run-script-os": "^1.1.6", + "semantic-release": "^24.2.7", "tailwindcss": "^3.4.17", "tslib": "^2.8.1", "tsx": "^4.19.4", "turbo": "^2.5.3", + "typedoc": "^0.28.7", "typescript": "^5.8.3", "typescript-eslint": "^8.32.1", "vite": "^6.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6026b0f5..23159f2f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,6 +18,12 @@ importers: specifier: ^19.1.0 version: 19.1.0(react@19.1.0) devDependencies: + '@commitlint/cli': + specifier: ^19.8.1 + version: 19.8.1(@types/node@22.15.21)(typescript@5.8.3) + '@commitlint/config-conventional': + specifier: ^19.8.1 + version: 19.8.1 '@eslint/compat': specifier: ^1.2.9 version: 1.2.9(eslint@9.27.0(jiti@2.4.2)) @@ -27,6 +33,21 @@ importers: '@eslint/js': specifier: ^9.27.0 version: 9.27.0 + '@semantic-release/changelog': + specifier: ^6.0.3 + version: 6.0.3(semantic-release@24.2.7(typescript@5.8.3)) + '@semantic-release/commit-analyzer': + specifier: ^13.0.1 + version: 13.0.1(semantic-release@24.2.7(typescript@5.8.3)) + '@semantic-release/git': + specifier: ^10.0.1 + version: 10.0.1(semantic-release@24.2.7(typescript@5.8.3)) + '@semantic-release/npm': + specifier: ^12.0.2 + version: 12.0.2(semantic-release@24.2.7(typescript@5.8.3)) + '@semantic-release/release-notes-generator': + specifier: ^14.0.3 + version: 14.0.3(semantic-release@24.2.7(typescript@5.8.3)) '@types/chrome': specifier: ^0.0.323 version: 0.0.323 @@ -54,6 +75,9 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 + danger: + specifier: ^13.0.4 + version: 13.0.4(encoding@0.1.13) deepmerge: specifier: ^4.3.1 version: 4.3.1 @@ -74,7 +98,7 @@ importers: version: 6.10.2(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-prettier: specifier: ^5.4.0 - version: 5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(prettier@3.5.3) + version: 5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(prettier@3.6.2) eslint-plugin-react: specifier: ^7.37.5 version: 7.37.5(eslint@9.27.0(jiti@2.4.2)) @@ -90,6 +114,9 @@ importers: fflate: specifier: ^0.8.2 version: 0.8.2 + git-secrets: + specifier: ^0.0.11 + version: 0.0.11 globals: specifier: ^16.1.0 version: 16.1.0 @@ -110,16 +137,22 @@ importers: version: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(yaml@2.8.0) prettier: specifier: ^3.5.3 - version: 3.5.3 + version: 3.6.2 prettier-plugin-tailwindcss: specifier: ^0.6.11 - version: 0.6.11(prettier@3.5.3) + version: 0.6.11(prettier@3.6.2) + renovate: + specifier: ^41.35.1 + version: 41.35.1(encoding@0.1.13)(typanion@3.14.0) rimraf: specifier: ^6.0.1 version: 6.0.1 run-script-os: specifier: ^1.1.6 version: 1.1.6 + semantic-release: + specifier: ^24.2.7 + version: 24.2.7(typescript@5.8.3) tailwindcss: specifier: ^3.4.17 version: 3.4.17(ts-node@10.9.2(@swc/core@1.11.24)(@types/node@22.15.21)(typescript@5.8.3)) @@ -132,6 +165,9 @@ importers: turbo: specifier: ^2.5.3 version: 2.5.3 + typedoc: + specifier: ^0.28.7 + version: 0.28.7(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -606,6 +642,204 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@arcanis/slice-ansi@1.1.1': + resolution: {integrity: sha512-xguP2WR2Dv0gQ7Ykbdb7BNCnPnIPB94uTi0Z2NvkRBEnhbwjOQ7QyQKJXrVQg4qDpiD9hA5l5cCwy/z2OXgc3w==} + + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/crc32c@5.2.0': + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + + '@aws-crypto/sha1-browser@5.2.0': + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@aws-sdk/client-codecommit@3.840.0': + resolution: {integrity: sha512-pE14jZTQkhLRgJZg0CvjngwkRCZB71CaQob7H7nJEHvVpwzAUrArQNKrYZIzLdNw3uAf9h5aBwF16OiFsMqNJg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-cognito-identity@3.840.0': + resolution: {integrity: sha512-0sn/X63Xqqh5D1FYmdSHiS9SkDzTitoGO++/8IFik4xf/jpn4ZQkIoDPvpxFZcLvebMuUa6jAQs4ap4RusKGkg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-ec2@3.840.0': + resolution: {integrity: sha512-7n0GvM3uau8kNPfV57H11vxDI4fAlyB8F7cx64HZ804o2rX5ycFZm8agLPvc4+uaLIEKGrq3oTED33jsBx8B9g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-ecr@3.840.0': + resolution: {integrity: sha512-Y+AdBztlunTdglR1L3cYR+EwciltHJXrOaBz0DU6B7rOzgoNMoec+sLZ4UgJyPKUD5spBkPfTLFslQK/K9PZ0Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-eks@3.840.0': + resolution: {integrity: sha512-KMjUqu2RzZbkN1JsxF39B0pC/y78Po7ZSyVKdFD6p4LvNIWSmnWWiT47OIvFNj3A2VN92jMRoVk/GcnJq7z73g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-rds@3.840.0': + resolution: {integrity: sha512-AmoKB/VeGXhTbO5XmNih2NazfKD/nhiqgjNGw05/575LxLOiNku7jwaZyzUfF5uockdhDNTGrvmi43GHXPOO0g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-s3@3.840.0': + resolution: {integrity: sha512-dRuo03EqGBbl9+PTogpwY9bYmGWIjn8nB82HN5Qj20otgjUvhLOdEkkip9mroYsrvqNoKbMedWdCudIcB/YY1w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sso@3.840.0': + resolution: {integrity: sha512-3Zp+FWN2hhmKdpS0Ragi5V2ZPsZNScE3jlbgoJjzjI/roHZqO+e3/+XFN4TlM0DsPKYJNp+1TAjmhxN6rOnfYA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.840.0': + resolution: {integrity: sha512-x3Zgb39tF1h2XpU+yA4OAAQlW6LVEfXNlSedSYJ7HGKXqA/E9h3rWQVpYfhXXVVsLdYXdNw5KBUkoAoruoZSZA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-cognito-identity@3.840.0': + resolution: {integrity: sha512-p1RaMVd6+6ruYjKsWRCZT/jWhrYfDKbXY+/ScIYTvcaOOf9ArMtVnhFk3egewrC7kPXFGRYhg2GPmxRotNYMng==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-env@3.840.0': + resolution: {integrity: sha512-EzF6VcJK7XvQ/G15AVEfJzN2mNXU8fcVpXo4bRyr1S6t2q5zx6UPH/XjDbn18xyUmOq01t+r8gG+TmHEVo18fA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-http@3.840.0': + resolution: {integrity: sha512-wbnUiPGLVea6mXbUh04fu+VJmGkQvmToPeTYdHE8eRZq3NRDi3t3WltT+jArLBKD/4NppRpMjf2ju4coMCz91g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-ini@3.840.0': + resolution: {integrity: sha512-7F290BsWydShHb+7InXd+IjJc3mlEIm9I0R57F/Pjl1xZB69MdkhVGCnuETWoBt4g53ktJd6NEjzm/iAhFXFmw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.840.0': + resolution: {integrity: sha512-KufP8JnxA31wxklLm63evUPSFApGcH8X86z3mv9SRbpCm5ycgWIGVCTXpTOdgq6rPZrwT9pftzv2/b4mV/9clg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-process@3.840.0': + resolution: {integrity: sha512-HkDQWHy8tCI4A0Ps2NVtuVYMv9cB4y/IuD/TdOsqeRIAT12h8jDb98BwQPNLAImAOwOWzZJ8Cu0xtSpX7CQhMw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-sso@3.840.0': + resolution: {integrity: sha512-2qgdtdd6R0Z1y0KL8gzzwFUGmhBHSUx4zy85L2XV1CXhpRNwV71SVWJqLDVV5RVWVf9mg50Pm3AWrUC0xb0pcA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.840.0': + resolution: {integrity: sha512-dpEeVXG8uNZSmVXReE4WP0lwoioX2gstk4RnUgrdUE3YaPq8A+hJiVAyc3h+cjDeIqfbsQbZm9qFetKC2LF9dQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-providers@3.840.0': + resolution: {integrity: sha512-+CxYdGd+uM4NZ9VUvFTU1c/H61qhDB4q362k8xKU+bz24g//LDQ5Mpwksv8OUD1en44v4fUwgZ4SthPZMs+eFQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-bucket-endpoint@3.840.0': + resolution: {integrity: sha512-+gkQNtPwcSMmlwBHFd4saVVS11In6ID1HczNzpM3MXKXRBfSlbZJbCt6wN//AZ8HMklZEik4tcEOG0qa9UY8SQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-expect-continue@3.840.0': + resolution: {integrity: sha512-iJg2r6FKsKKvdiU4oCOuCf7Ro/YE0Q2BT/QyEZN3/Rt8Nr4SAZiQOlcBXOCpGvuIKOEAhvDOUnW3aDHL01PdVw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.840.0': + resolution: {integrity: sha512-Kg/o2G6o72sdoRH0J+avdcf668gM1bp6O4VeEXpXwUj/urQnV5qiB2q1EYT110INHUKWOLXPND3sQAqh6sTqHw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-host-header@3.840.0': + resolution: {integrity: sha512-ub+hXJAbAje94+Ya6c6eL7sYujoE8D4Bumu1NUI8TXjUhVVn0HzVWQjpRLshdLsUp1AW7XyeJaxyajRaJQ8+Xg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-location-constraint@3.840.0': + resolution: {integrity: sha512-KVLD0u0YMF3aQkVF8bdyHAGWSUY6N1Du89htTLgqCcIhSxxAJ9qifrosVZ9jkAzqRW99hcufyt2LylcVU2yoKQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-logger@3.840.0': + resolution: {integrity: sha512-lSV8FvjpdllpGaRspywss4CtXV8M7NNNH+2/j86vMH+YCOZ6fu2T/TyFd/tHwZ92vDfHctWkRbQxg0bagqwovA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.840.0': + resolution: {integrity: sha512-Gu7lGDyfddyhIkj1Z1JtrY5NHb5+x/CRiB87GjaSrKxkDaydtX2CU977JIABtt69l9wLbcGDIQ+W0uJ5xPof7g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-ec2@3.840.0': + resolution: {integrity: sha512-TVYRq3NNq+Cb4N5jODASOmKwPBa4zXH0CT5Ifrav+fH7SVtkfXurVMkLaAu1zFHyllQgAQ6O4O/MpwDq2H1nkw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-rds@3.840.0': + resolution: {integrity: sha512-9R+j2UZlSQW0EbErbSG89AMBw2smNlRV8cfXCbL5E1Fh/bHuAU/5Jmr6hjT37QYPD/aSPFOm8txK5qrX7/19Lg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.840.0': + resolution: {integrity: sha512-rOUji7CayWN3O09zvvgLzDVQe0HiJdZkxoTS6vzOS3WbbdT7joGdVtAJHtn+x776QT3hHzbKU5gnfhel0o6gQA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-ssec@3.840.0': + resolution: {integrity: sha512-CBZP9t1QbjDFGOrtnUEHL1oAvmnCUUm7p0aPNbIdSzNtH42TNKjPRN3TuEIJDGjkrqpL3MXyDSmNayDcw/XW7Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-user-agent@3.840.0': + resolution: {integrity: sha512-hiiMf7BP5ZkAFAvWRcK67Mw/g55ar7OCrvrynC92hunx/xhMkrgSLM0EXIZ1oTn3uql9kH/qqGF0nqsK6K555A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/nested-clients@3.840.0': + resolution: {integrity: sha512-LXYYo9+n4hRqnRSIMXLBb+BLz+cEmjMtTudwK1BF6Bn2RfdDv29KuyeDRrPCS3TwKl7ZKmXUmE9n5UuHAPfBpA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/region-config-resolver@3.840.0': + resolution: {integrity: sha512-Qjnxd/yDv9KpIMWr90ZDPtRj0v75AqGC92Lm9+oHXZ8p1MjG5JE2CW0HL8JRgK9iKzgKBL7pPQRXI8FkvEVfrA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.840.0': + resolution: {integrity: sha512-8AoVgHrkSfhvGPtwx23hIUO4MmMnux2pjnso1lrLZGqxfElM6jm2w4jTNLlNXk8uKHGyX89HaAIuT0lL6dJj9g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/token-providers@3.840.0': + resolution: {integrity: sha512-6BuTOLTXvmgwjK7ve7aTg9JaWFdM5UoMolLVPMyh3wTv9Ufalh8oklxYHUBIxsKkBGO2WiHXytveuxH6tAgTYg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.840.0': + resolution: {integrity: sha512-xliuHaUFZxEx1NSXeLLZ9Dyu6+EJVQKEoD+yM+zqUo3YDZ7medKJWY6fIOKiPX/N7XbLdBYwajb15Q7IL8KkeA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-arn-parser@3.804.0': + resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.840.0': + resolution: {integrity: sha512-eqE9ROdg/Kk0rj3poutyRCFauPDXIf/WSvCqFiRDDVi6QOnCv/M0g2XW8/jSvkJlOyaXkNCptapIp6BeeFFGYw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-format-url@3.840.0': + resolution: {integrity: sha512-VB1PWyI1TQPiPvg4w7tgUGGQER1xxXPNUqfh3baxUSFi1Oh8wHrDnFywkxLm3NMmgDmnLnSZ5Q326qAoyqKLSg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-locate-window@3.804.0': + resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-user-agent-browser@3.840.0': + resolution: {integrity: sha512-JdyZM3EhhL4PqwFpttZu1afDpPJCCc3eyZOLi+srpX11LsGj6sThf47TYQN75HT1CarZ7cCdQHGzP2uy3/xHfQ==} + + '@aws-sdk/util-user-agent-node@3.840.0': + resolution: {integrity: sha512-Fy5JUEDQU1tPm2Yw/YqRYYc27W5+QD/J4mYvQvdWjUGZLB5q3eLFMGD35Uc28ZFoGMufPr4OCxK/bRfWROBRHQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/xml-builder@3.821.0': + resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==} + engines: {node: '>=18.0.0'} + '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -614,10 +848,97 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/runtime-corejs3@7.28.0': + resolution: {integrity: sha512-nlIXnSqLcBij8K8TtkxbBJgfzfvi75V1pAKSM7dUXejGw12vJAqez74jZrHTsJ3Z+Aczc5Q/6JgNjKRMsVU44g==} + engines: {node: '>=6.9.0'} + '@babel/runtime@7.27.1': resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} engines: {node: '>=6.9.0'} + '@baszalmstra/rattler@0.2.1': + resolution: {integrity: sha512-HZ2xu6Nk+XzAeateyzDKYM47ySkjkuKtTNpKRAy+Y+YcRH1qHM2le4iLlG32wDddaHCLUsBsyBxirClOj1TLjw==} + + '@breejs/later@4.2.0': + resolution: {integrity: sha512-EVMD0SgJtOuFeg0lAVbCwa+qeTKILb87jqvLyUtQswGD9+ce2nB52Y5zbTF1Hc0MDFfbydcMcxb47jSdhikVHA==} + engines: {node: '>= 10'} + + '@cdktf/hcl2json@0.21.0': + resolution: {integrity: sha512-cwX3i/mSJI/cRrtqwEPRfawB7pXgNioriSlkvou8LWiCrrcDe9ZtTbAbu8W1tEJQpe1pnX9VEgpzf/BbM7xF8Q==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@commitlint/cli@19.8.1': + resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==} + engines: {node: '>=v18'} + hasBin: true + + '@commitlint/config-conventional@19.8.1': + resolution: {integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==} + engines: {node: '>=v18'} + + '@commitlint/config-validator@19.8.1': + resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==} + engines: {node: '>=v18'} + + '@commitlint/ensure@19.8.1': + resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==} + engines: {node: '>=v18'} + + '@commitlint/execute-rule@19.8.1': + resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==} + engines: {node: '>=v18'} + + '@commitlint/format@19.8.1': + resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==} + engines: {node: '>=v18'} + + '@commitlint/is-ignored@19.8.1': + resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==} + engines: {node: '>=v18'} + + '@commitlint/lint@19.8.1': + resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==} + engines: {node: '>=v18'} + + '@commitlint/load@19.8.1': + resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==} + engines: {node: '>=v18'} + + '@commitlint/message@19.8.1': + resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==} + engines: {node: '>=v18'} + + '@commitlint/parse@19.8.1': + resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==} + engines: {node: '>=v18'} + + '@commitlint/read@19.8.1': + resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==} + engines: {node: '>=v18'} + + '@commitlint/resolve-extends@19.8.1': + resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==} + engines: {node: '>=v18'} + + '@commitlint/rules@19.8.1': + resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==} + engines: {node: '>=v18'} + + '@commitlint/to-lines@19.8.1': + resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==} + engines: {node: '>=v18'} + + '@commitlint/top-level@19.8.1': + resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==} + engines: {node: '>=v18'} + + '@commitlint/types@19.8.1': + resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==} + engines: {node: '>=v18'} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -838,6 +1159,25 @@ packages: resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@gerrit0/mini-shiki@3.8.0': + resolution: {integrity: sha512-tloLVqvvoyv636PilYZwNhCmZ+xxgRicysMvpKdZ4Y6+9IH6v4lp7GodbDDncApNQjflwTSnXuYQoe3el5C59w==} + + '@gitbeaker/core@38.12.1': + resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} + engines: {node: '>=18.0.0'} + + '@gitbeaker/requester-utils@38.12.1': + resolution: {integrity: sha512-Rc/DgngS0YPN+AY1s9UnexKSy4Lh0bkQVAq9p7PRbRpXb33SlTeCg8eg/8+A/mrMcHgYmP0XhH8lkizyA5tBUQ==} + engines: {node: '>=18.0.0'} + + '@gitbeaker/rest@38.12.1': + resolution: {integrity: sha512-9KMSDtJ/sIov+5pcH+CAfiJXSiuYgN0KLKQFg0HHWR2DwcjGYkcbmhoZcWsaOWOqq4kihN1l7wX91UoRxxKKTQ==} + engines: {node: '>=18.0.0'} + + '@gwhitney/detect-indent@7.0.1': + resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} + engines: {node: '>=12.20'} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -1031,10 +1371,22 @@ packages: '@types/node': optional: true + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@jest/expect-utils@29.7.0': resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1071,6 +1423,12 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@laynezh/vite-plugin-lib-assets@1.1.0': resolution: {integrity: sha512-Rynyr1A/DxJEmjNZu4NrpDQUfxUmJhanqojwOO20HQWtN5Oc0jJ3ZtwnlpntruK6VYV8aC25Mjzs67dmTIBHyA==} peerDependencies: @@ -1103,6 +1461,231 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@npmcli/agent@3.0.0': + resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/fs@4.0.0': + resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@octokit/auth-token@4.0.0': + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + + '@octokit/auth-token@6.0.0': + resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} + engines: {node: '>= 20'} + + '@octokit/core@5.2.2': + resolution: {integrity: sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==} + engines: {node: '>= 18'} + + '@octokit/core@7.0.3': + resolution: {integrity: sha512-oNXsh2ywth5aowwIa7RKtawnkdH6LgU1ztfP9AIUCQCvzysB+WeU8o2kyyosDPwBZutPpjZDKPQGIzzrfTWweQ==} + engines: {node: '>= 20'} + + '@octokit/endpoint@11.0.0': + resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} + engines: {node: '>= 20'} + + '@octokit/endpoint@9.0.6': + resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} + engines: {node: '>= 18'} + + '@octokit/graphql@7.1.1': + resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} + engines: {node: '>= 18'} + + '@octokit/graphql@9.0.1': + resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} + engines: {node: '>= 20'} + + '@octokit/openapi-types@24.2.0': + resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} + + '@octokit/openapi-types@25.1.0': + resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} + + '@octokit/plugin-paginate-rest@11.4.4-cjs.2': + resolution: {integrity: sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/plugin-paginate-rest@13.1.1': + resolution: {integrity: sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=6' + + '@octokit/plugin-request-log@4.0.1': + resolution: {integrity: sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1': + resolution: {integrity: sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^5 + + '@octokit/plugin-retry@8.0.1': + resolution: {integrity: sha512-KUoYR77BjF5O3zcwDQHRRZsUvJwepobeqiSSdCJ8lWt27FZExzb0GgVxrhhfuyF6z2B2zpO0hN5pteni1sqWiw==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=7' + + '@octokit/plugin-throttling@11.0.1': + resolution: {integrity: sha512-S+EVhy52D/272L7up58dr3FNSMXWuNZolkL4zMJBNIfIxyZuUcczsQAU4b5w6dewJXnKYVgSHSV5wxitMSW1kw==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': ^7.0.0 + + '@octokit/request-error@5.1.1': + resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} + engines: {node: '>= 18'} + + '@octokit/request-error@7.0.0': + resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} + engines: {node: '>= 20'} + + '@octokit/request@10.0.3': + resolution: {integrity: sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==} + engines: {node: '>= 20'} + + '@octokit/request@8.4.1': + resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} + engines: {node: '>= 18'} + + '@octokit/rest@20.1.2': + resolution: {integrity: sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==} + engines: {node: '>= 18'} + + '@octokit/types@13.10.0': + resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} + + '@octokit/types@14.1.0': + resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} + + '@one-ini/wasm@0.2.0': + resolution: {integrity: sha512-n+L/BvrwKUn7q5O3wHGo+CJZAqfewh38+37sk+eBzv/39lM9pPgPRd4sOZRvSRzo0ukLxzyXso4WlGj2oKZ5hA==} + + '@opentelemetry/api-logs@0.202.0': + resolution: {integrity: sha512-fTBjMqKCfotFWfLzaKyhjLvyEyq5vDKTTFfBmx21btv3gvy8Lq6N5Dh2OzqeuN4DjtpSvNT1uNVfg08eD2Rfxw==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-trace-otlp-http@0.202.0': + resolution: {integrity: sha512-/hKE8DaFCJuaQqE1IxpgkcjOolUIwgi3TgHElPVKGdGRBSmJMTmN/cr6vWa55pCJIXPyhKvcMrbrya7DZ3VmzA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-bunyan@0.48.0': + resolution: {integrity: sha512-Q6ay5CXIKuyejadPoLboz+jKumB3Zuxyk35ycFh9vfIeww3+mNRyMVj6KxHRS0Imbv9zhNbP3uyrUpvEMMyHuw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-http@0.202.0': + resolution: {integrity: sha512-oX+jyY2KBg4/nVH3vZhSWDbhywkHgE0fq3YinhUBx0jv+YUWC2UKA7qLkxr/CSzfKsFi/Km0NKV+llH17yYGKw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.202.0': + resolution: {integrity: sha512-Uz3BxZWPgDwgHM2+vCKEQRh0R8WKrd/q6Tus1vThRClhlPO39Dyz7mDrOr6KuqGXAlBQ1e5Tnymzri4RMZNaWA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.202.0': + resolution: {integrity: sha512-nMEOzel+pUFYuBJg2znGmHJWbmvMbdX5/RhoKNKowguMbURhz0fwik5tUKplLcUtl8wKPL1y9zPnPxeBn65N0Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.202.0': + resolution: {integrity: sha512-5XO77QFzs9WkexvJQL9ksxL8oVFb/dfi9NWQSq7Sv0Efr9x3N+nb1iklP1TeVgxqJ7m1xWiC/Uv3wupiQGevMw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/resource-detector-aws@2.2.0': + resolution: {integrity: sha512-6k7//RWAv4U1PeZhv0Too0Sv7sp7/A6s6g9h5ZYauPcroh2t4gOmkQSspSLYCynn34YZwn3FGbuaMwTDjHEJig==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-azure@0.9.0': + resolution: {integrity: sha512-5wJwAAW2vhbqIhgaRisU1y0F5mUco59F/dKgmnnnT6YNbxjrbdUZYxKF5Wl7deJoACVdL5wi/3N97GCXPEwwCQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-gcp@0.36.0': + resolution: {integrity: sha512-mWnEcg4tA+IDPrkETWo42psEsDN20dzYZSm4ZH8m8uiQALnNksVmf5C3An0GUEj5zrrxMasjSuv4zEH1gI40XQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-github@0.31.0': + resolution: {integrity: sha512-m4lbj4/vZ/ylBCtID0zO4bkuN1nPoaXEPCSn7DdiPmLgcS2eE0OWPx8TGO/Rw1HceXf8/qH4KQT94bsu3usVPg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.202.0': + resolution: {integrity: sha512-pv8QiQLQzk4X909YKm0lnW4hpuQg4zHwJ4XBd5bZiXcd9urvrJNoNVKnxGHPiDVX/GiLFvr5DMYsDBQbZCypRQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.0.1': + resolution: {integrity: sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.0.1': + resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.34.0': + resolution: {integrity: sha512-aKcOkyrorBGlajjRdVoJWHTxfxO1vCNHLJVlSDaRHDIdjU+pX8IYQPvPDkYiujKLbRnWU+1TBwEt0QRgSm4SGA==} + engines: {node: '>=14'} + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -1193,40 +1776,197 @@ packages: resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@promptbook/utils@0.69.5': - resolution: {integrity: sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==} + '@pnpm/catalogs.protocol-parser@1001.0.0': + resolution: {integrity: sha512-9rHKCMRvhfv7TSAVSCVLI+8OZhi1OcT8lanAGqOPbGgQTkFrPH3PfEWJNxz43xqrXRa4HCFRAMu+g19su5eRLA==} + engines: {node: '>=18.12'} - '@puppeteer/browsers@2.10.5': - resolution: {integrity: sha512-eifa0o+i8dERnngJwKrfp3dEq7ia5XFyoqB17S4gK8GhsQE4/P8nxOfQSE0zQHxzzLo/cmF+7+ywEQ7wK7Fb+w==} - engines: {node: '>=18'} - hasBin: true + '@pnpm/catalogs.resolver@1000.0.3': + resolution: {integrity: sha512-MT0l2EDAxNXpZoij3sO0eIrFSUC7trimRxNRUYvNQNeEOU07KEiCAfic2CTvFtnoqFV1/2YRqsniJLokfsJVqA==} + engines: {node: '>=18.12'} - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@pnpm/catalogs.types@1000.0.0': + resolution: {integrity: sha512-xRf72lk7xHNvbenA4sp4Of/90QDdRW0CRYT+V+EbqpUXu1xsXtedHai34cTU6VGe7C1hUukxxE9eYTtIpYrx5g==} + engines: {node: '>=18.12'} - '@rollup/plugin-sucrase@5.0.2': - resolution: {integrity: sha512-4MhIVH9Dy2Hwose1/x5QMs0XF7yn9jDd/yozHqzdIrMWIolgFpGnrnVhQkqTaK1RALY/fpyrEKmwH/04vr1THA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.53.1||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@pnpm/constants@1001.1.0': + resolution: {integrity: sha512-xb9dfSGi1qfUKY3r4Zy9JdC9+ZeaDxwfE7HrrGIEsBVY1hvIn6ntbR7A97z3nk44yX7vwbINNf9sizTp0WEtEw==} + engines: {node: '>=18.12'} + + '@pnpm/constants@6.1.0': + resolution: {integrity: sha512-L6AiU3OXv9kjKGTJN9j8n1TeJGDcLX9atQlZvAkthlvbXjvKc5SKNWESc/eXhr5nEfuMWhQhiKHDJCpYejmeCQ==} + engines: {node: '>=14.19'} + + '@pnpm/error@1000.0.2': + resolution: {integrity: sha512-2SfE4FFL73rE1WVIoESbqlj4sLy5nWW4M/RVdHvCRJPjlQHa9MH7m7CVJM204lz6I+eHoB+E7rL3zmpJR5wYnQ==} + engines: {node: '>=18.12'} + + '@pnpm/error@4.0.0': + resolution: {integrity: sha512-NI4DFCMF6xb1SA0bZiiV5KrMCaJM2QmPJFC6p78FXujn7FpiRSWhT9r032wpuQumsl7DEmN4s3wl/P8TA+bL8w==} + engines: {node: '>=14.6'} + + '@pnpm/graceful-fs@2.0.0': + resolution: {integrity: sha512-ogUZCGf0/UILZt6d8PsO4gA4pXh7f0BumXeFkcCe4AQ65PXPKfAkHC0C30Lheh2EgFOpLZm3twDP1Eiww18gew==} + engines: {node: '>=14.19'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} + + '@pnpm/parse-overrides@1001.0.0': + resolution: {integrity: sha512-yTf60b3QCDk84OwfSRdZ5xkqlWhxnjd8/VKPrdZCGQYxcKTLHCQnlFj8PL6FoR43U230TJuBKgL91Uvk/Q0M5g==} + engines: {node: '>=18.12'} + + '@pnpm/parse-wanted-dependency@1001.0.0': + resolution: {integrity: sha512-cIZao+Jdu/4znu76d3ttAWBycDj6GWKiDVNlx1GVgqYgS/Qn7ak3Lm0FGIMAIHr5oOnX63jwzKIhW35AHNaTjQ==} + engines: {node: '>=18.12'} + + '@pnpm/read-project-manifest@4.1.1': + resolution: {integrity: sha512-jGNoofG8kkUlgAMX8fqbUwRRXYf4WcWdvi/y1Sv1abUfcoVgXW6GdGVm0MIJ+enaong3hXHjaLl/AwmSj6O1Uw==} + engines: {node: '>=14.6'} + + '@pnpm/text.comments-parser@1.0.0': + resolution: {integrity: sha512-iG0qrFcObze3uK+HligvzaTocZKukqqIj1dC3NOH58NeMACUW1NUitSKBgeWuNIE4LJT3SPxnyLEBARMMcqVKA==} + engines: {node: '>=14.6'} + + '@pnpm/types@8.9.0': + resolution: {integrity: sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==} + engines: {node: '>=14.6'} + + '@pnpm/util.lex-comparator@1.0.0': + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + + '@pnpm/write-project-manifest@4.1.1': + resolution: {integrity: sha512-nRqvPYO8xUVdgy/KhJuaCrWlVT/4uZr97Mpbuizsa6CmvtCQf3NuYnVvOOrpYiKUJcZYtEvm84OooJ8+lJytMQ==} + engines: {node: '>=14.6'} + + '@promptbook/utils@0.69.5': + resolution: {integrity: sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@puppeteer/browsers@2.10.5': + resolution: {integrity: sha512-eifa0o+i8dERnngJwKrfp3dEq7ia5XFyoqB17S4gK8GhsQE4/P8nxOfQSE0zQHxzzLo/cmF+7+ywEQ7wK7Fb+w==} + engines: {node: '>=18'} + hasBin: true + + '@qnighy/marshal@0.1.3': + resolution: {integrity: sha512-uaDZTJYtD2UgQTGemmgWeth+e2WapZm+GkAq8UU8AJ55PKRFaf1GkH7X/uzA+Ygu8iInzIlM2FGyCUnruyMKMg==} + + '@redis/bloom@1.2.0': + resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} + peerDependencies: + '@redis/client': ^1.0.0 + + '@redis/client@1.6.1': + resolution: {integrity: sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==} + engines: {node: '>=14'} + + '@redis/graph@1.1.1': + resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} + peerDependencies: + '@redis/client': ^1.0.0 + + '@redis/json@1.0.7': + resolution: {integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==} + peerDependencies: + '@redis/client': ^1.0.0 + + '@redis/search@1.2.0': + resolution: {integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==} + peerDependencies: + '@redis/client': ^1.0.0 + + '@redis/time-series@1.1.0': + resolution: {integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==} + peerDependencies: + '@redis/client': ^1.0.0 + + '@renovatebot/detect-tools@1.1.0': + resolution: {integrity: sha512-0GEOOX4QhUBQIY4xsr0g9sb/PrwO3C+uGPsAXlXklTDFnmXenFQ/XcEiQMTLAxPoeHofQCQ79BVCxlDVhcJ8DA==} + + '@renovatebot/kbpgp@4.0.1': + resolution: {integrity: sha512-Uj52QvCuIr9qwvbPR3fymQFMwn0MIKItZrEKywNoSF7K4UVfrtBW3DGVQ9KZ2D5tFR3LgrlPdhNSYEkEVAQ4OA==} + engines: {node: ^20.9.0 || ^22.11.0, pnpm: ^9.0.0} + + '@renovatebot/osv-offline-db@1.7.4': + resolution: {integrity: sha512-TyrARTT/m1NK/5Ir3eC9U6iL0XMkKYkivuO8kFCVEGUdrTXvVHwn74K5V7ZPNtC1Ye0qRbKN3fVz+b4uTtlhLQ==} + engines: {node: '>=18.12.0'} + + '@renovatebot/osv-offline@1.6.6': + resolution: {integrity: sha512-xyhxVMGTk95b9nJte9Br1iu2mrkbPVnc7XXE1Klpnjc3hy0B7j9YXlhZzEgvWlVQ21/WmNuMft0/QCaLgFABrQ==} + engines: {node: '>=18.12.0'} + + '@renovatebot/pep440@4.1.0': + resolution: {integrity: sha512-mo2RxnOSp78Njt1HmgMwjl6FapP4OyIS8HypJlymCvN7AIV2Xf5PmZfl/E3O1WWZ6IjKrfsEAaPWFMi8tnkq3g==} + engines: {node: ^20.9.0 || ^22.11.0, pnpm: ^9.0.0} + + '@renovatebot/ruby-semver@4.0.0': + resolution: {integrity: sha512-vuLfebLvwYWwQYJeZiHHs5NmydjO6cdhwS1dUHJbXMi0WD8kBa/+f7gz4WcuNJPRR+enLFQUHs89OCjfl6Os0g==} + engines: {node: ^20.9.0 || ^22.11.0, pnpm: ^9.0.0} + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-sucrase@5.0.2': + resolution: {integrity: sha512-4MhIVH9Dy2Hwose1/x5QMs0XF7yn9jDd/yozHqzdIrMWIolgFpGnrnVhQkqTaK1RALY/fpyrEKmwH/04vr1THA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.53.1||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true '@rollup/rollup-android-arm-eabi@4.41.0': resolution: {integrity: sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==} @@ -1331,16 +2071,305 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@seald-io/binary-search-tree@1.0.3': + resolution: {integrity: sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA==} + + '@seald-io/nedb@4.1.2': + resolution: {integrity: sha512-bDr6TqjBVS2rDyYM9CPxAnotj5FuNL9NF8o7h7YyFXM7yruqT4ddr+PkSb2mJvvw991bqdftazkEo38gykvaww==} + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@semantic-release/changelog@6.0.3': + resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + + '@semantic-release/commit-analyzer@13.0.1': + resolution: {integrity: sha512-wdnBPHKkr9HhNhXOhZD5a2LNl91+hs8CC2vsAVYxtZH3y0dV3wKn+uZSN61rdJQZ8EGxzWB3inWocBHV9+u/CQ==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/error@3.0.0': + resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} + engines: {node: '>=14.17'} + + '@semantic-release/error@4.0.0': + resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} + engines: {node: '>=18'} + + '@semantic-release/git@10.0.1': + resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + + '@semantic-release/github@11.0.3': + resolution: {integrity: sha512-T2fKUyFkHHkUNa5XNmcsEcDPuG23hwBKptfUVcFXDVG2cSjXXZYDOfVYwfouqbWo/8UefotLaoGfQeK+k3ep6A==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=24.1.0' + + '@semantic-release/npm@12.0.2': + resolution: {integrity: sha512-+M9/Lb35IgnlUO6OSJ40Ie+hUsZLuph2fqXC/qrKn0fMvUU/jiCjpoL6zEm69vzcmaZJ8yNKtMBEKHWN49WBbQ==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/release-notes-generator@14.0.3': + resolution: {integrity: sha512-XxAZRPWGwO5JwJtS83bRdoIhCiYIx8Vhr+u231pQAsdFIAbm19rSVJLdnBN+Avvk7CKvNQE/nJ4y7uqKH6WTiw==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@shikijs/engine-oniguruma@3.8.0': + resolution: {integrity: sha512-Tx7kR0oFzqa+rY7t80LjN8ZVtHO3a4+33EUnBVx2qYP3fGxoI9H0bvnln5ySelz9SIUTsS0/Qn+9dg5zcUMsUw==} + + '@shikijs/langs@3.8.0': + resolution: {integrity: sha512-mfGYuUgjQ5GgXinB5spjGlBVhG2crKRpKkfADlp8r9k/XvZhtNXxyOToSnCEnF0QNiZnJjlt5MmU9PmhRdwAbg==} + + '@shikijs/themes@3.8.0': + resolution: {integrity: sha512-yaZiLuyO23sXe16JFU76KyUMTZCJi4EMQKIrdQt7okoTzI4yAaJhVXT2Uy4k8yBIEFRiia5dtD7gC1t8m6y3oQ==} + + '@shikijs/types@3.8.0': + resolution: {integrity: sha512-I/b/aNg0rP+kznVDo7s3UK8jMcqEGTtoPDdQ+JlQ2bcJIyu/e2iRvl42GLIDMK03/W1YOHOuhlhQ7aM+XbKUeg==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@7.0.2': + resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==} + engines: {node: '>=18'} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} + '@smithy/abort-controller@4.0.4': + resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader-native@4.0.0': + resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader@5.0.0': + resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@4.1.4': + resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.7.0': + resolution: {integrity: sha512-7ov8hu/4j0uPZv8b27oeOFtIBtlFmM3ibrPv/Omx1uUdoXvcpJ00U+H/OWWC/keAguLlcqwtyL2/jTlSnApgNQ==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.0.6': + resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.0.4': + resolution: {integrity: sha512-7XoWfZqWb/QoR/rAU4VSi0mWnO2vu9/ltS6JZ5ZSZv0eovLVfDfu0/AX4ub33RsJTOth3TiFWSHS5YdztvFnig==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.0.4': + resolution: {integrity: sha512-3fb/9SYaYqbpy/z/H3yIi0bYKyAa89y6xPmIqwr2vQiUT2St+avRt8UKwsWt9fEdEasc5d/V+QjrviRaX1JRFA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-config-resolver@4.1.2': + resolution: {integrity: sha512-JGtambizrWP50xHgbzZI04IWU7LdI0nh/wGbqH3sJesYToMi2j/DcoElqyOcqEIG/D4tNyxgRuaqBXWE3zOFhQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.0.4': + resolution: {integrity: sha512-RD6UwNZ5zISpOWPuhVgRz60GkSIp0dy1fuZmj4RYmqLVRtejFqQ16WmfYDdoSoAjlp1LX+FnZo+/hkdmyyGZ1w==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.0.4': + resolution: {integrity: sha512-UeJpOmLGhq1SLox79QWw/0n2PFX+oPRE1ZyRMxPIaFEfCqWaqpB7BU9C8kpPOGEhLF7AwEqfFbtwNxGy4ReENA==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.1.0': + resolution: {integrity: sha512-mADw7MS0bYe2OGKkHYMaqarOXuDwRbO6ArD91XhHcl2ynjGCFF+hvqf0LyQcYxkA1zaWjefSkU7Ne9mqgApSgQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-blob-browser@4.0.4': + resolution: {integrity: sha512-WszRiACJiQV3QG6XMV44i5YWlkrlsM5Yxgz4jvsksuu7LDXA6wAtypfPajtNTadzpJy3KyJPoWehYpmZGKUFIQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.0.4': + resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-stream-node@4.0.4': + resolution: {integrity: sha512-wHo0d8GXyVmpmMh/qOR0R7Y46/G1y6OR8U+bSTB4ppEzRxd1xVAQ9xOE9hOc0bSjhz0ujCPAbfNLkLrpa6cevg==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.0.4': + resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==} + engines: {node: '>=18.0.0'} + + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} + + '@smithy/is-array-buffer@4.0.0': + resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} + engines: {node: '>=18.0.0'} + + '@smithy/md5-js@4.0.4': + resolution: {integrity: sha512-uGLBVqcOwrLvGh/v/jw423yWHq/ofUGK1W31M2TNspLQbUV1Va0F5kTxtirkoHawODAZcjXTSGi7JwbnPcDPJg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.0.4': + resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.1.15': + resolution: {integrity: sha512-L2M0oz+r6Wv0KZ90MgClXmWkV7G72519Hd5/+K5i3gQMu4WNQykh7ERr58WT3q60dd9NqHSMc3/bAK0FsFg3Fw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.1.16': + resolution: {integrity: sha512-PpPhMpC6U1fLW0evKnC8gJtmobBYn0oi4RrIKGhN1a86t6XgVEK+Vb9C8dh5PPXb3YDr8lE6aYKh1hd3OikmWw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.0.8': + resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.0.4': + resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.1.3': + resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.1.0': + resolution: {integrity: sha512-vqfSiHz2v8b3TTTrdXi03vNz1KLYYS3bhHCDv36FYDqxT7jvTll1mMnCrkD+gOvgwybuunh/2VmvOMqwBegxEg==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@4.0.4': + resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.1.2': + resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.0.4': + resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@4.0.4': + resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@4.0.6': + resolution: {integrity: sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.0.4': + resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.1.2': + resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.4.7': + resolution: {integrity: sha512-x+MxBNOcG7rY9i5QsbdgvvRJngKKvUJrbU5R5bT66PTH3e6htSupJ4Q+kJ3E7t6q854jyl57acjpPi6qG1OY5g==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.3.1': + resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.0.4': + resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-base64@4.0.0': + resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-browser@4.0.0': + resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-node@4.0.0': + resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@4.0.0': + resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} + engines: {node: '>=18.0.0'} + + '@smithy/util-config-provider@4.0.0': + resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@4.0.23': + resolution: {integrity: sha512-NqRi6VvEIwpJ+KSdqI85+HH46H7uVoNqVTs2QO7p1YKnS7k8VZnunJj8R5KdmmVnTojkaL1OMPyZC8uR5F7fSg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@4.0.23': + resolution: {integrity: sha512-NE9NtEVigFa+HHJ5bBeQT7KF3KiltW880CLN9TnWWL55akeou3ziRAHO22QSUPgPZ/nqMfPXi/LGMQ6xQvXPNQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.0.6': + resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@4.0.0': + resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.0.4': + resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.0.6': + resolution: {integrity: sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.2.3': + resolution: {integrity: sha512-cQn412DWHHFNKrQfbHY8vSFI3nTROY1aIKji9N0tpp8gUABRilr7wdf8fqBbSlXresobM+tQFNk6I+0LXK/YZg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-uri-escape@4.0.0': + resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@4.0.0': + resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} + engines: {node: '>=18.0.0'} + + '@smithy/util-waiter@4.0.6': + resolution: {integrity: sha512-slcr1wdRbX7NFphXZOxtxRNA7hXAAtJAXJDE/wdoMAos27SIquVCKiSqfB6/28YzQ8FCsB5NKkhdM5gMADbqxg==} + engines: {node: '>=18.0.0'} + '@swc/core-darwin-arm64@1.11.24': resolution: {integrity: sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==} engines: {node: '>=10'} @@ -1416,6 +2445,41 @@ packages: '@swc/types@0.1.21': resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@thi.ng/api@7.2.0': + resolution: {integrity: sha512-4NcwHXxwPF/JgJG/jSFd9rjfQNguF0QrHvd6e+CEf4T0sFChqetW6ZmJ6/a2X+noDVntgulegA+Bx0HHzw+Tyw==} + + '@thi.ng/arrays@1.0.3': + resolution: {integrity: sha512-ZUB27bdpTwcvxYJTlt/eWKrj98nWXo0lAUPwRwubk4GlH8rTKKkc7qZr9/4LCKPsNjnZdQqbBtNvNf3HjYxCzw==} + + '@thi.ng/checks@2.9.11': + resolution: {integrity: sha512-fBvWod32w24JlJsrrOdl+tlx+UNehCORi4rHaJ7l7HH+SEhD/lYTCXOBjwu9D/ztIUjMP5Q+n8cAqI5iPhbvAQ==} + + '@thi.ng/compare@1.3.34': + resolution: {integrity: sha512-E+UWhmo8l5yeHDuriPUsfrnk/Mj5kSDNRX7lPfv2zNdAQ7N8UDzc0IXu46U6EpqtCReo+2n5N8qzfD3TjerFRw==} + + '@thi.ng/equiv@1.0.45': + resolution: {integrity: sha512-tdXaJfF0pFvT80Q7BOlhc7H7ja/RbVGzlGpE4LqjDWfXPPbLYwmq6EbQuHWeXuvT0qe+BsGnuO5UXAR5B8oGGQ==} + + '@thi.ng/errors@1.3.4': + resolution: {integrity: sha512-hTk71OPKnioN349sdj2DAoY+69eSerB3MN4Zwz6mosr1QFzIMkfkNOtBeC+Gm0yi0V0EY5LeBYFgqb3oXbtTbw==} + + '@thi.ng/hex@1.0.4': + resolution: {integrity: sha512-9ofIG4nXhEskGeOJthpi/9LXFIPrlZ/MmHpgLWa3wNqTVhODP/o++mu9jDKojHEpKvswkkFCE+mSVmMu8xo4mQ==} + + '@thi.ng/random@2.4.8': + resolution: {integrity: sha512-4JJB8zbaPxjlAp1kCqsBbs6eN4Ivd/5fs1e4GlvmNkyGSucHIDTWvw6NnQWqUx2oPaAEDB9CFCH7SOcGC/cwkw==} + + '@thi.ng/zipper@1.0.3': + resolution: {integrity: sha512-dWfuk5nzf5wGEmcF90AXNEuWr3NVwRF+cf/9ZSE6xImA7Vy5XpHNMwLHFszZaC+kqiDXr+EZ0lXWDF46a8lSPA==} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -1434,9 +2498,24 @@ packages: '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@types/bunyan@1.8.11': + resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/chrome@0.0.323': resolution: {integrity: sha512-ipiDwx41lmGeLnbiT6ENOayvWXdkqKqNwqDQWEuz6dujaX7slSkk1nbSt5Q5c6xnQ708+kuCFrC00VLltSbWVA==} + '@types/conventional-commits-parser@5.0.1': + resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/emscripten@1.40.1': + resolution: {integrity: sha512-sr53lnYkQNhjHNN0oJDdUm5564biioI5DuOpycufDVK7D3y+GR3oUswe2rlwY1nPNyusHbrJ9WoTyIHl4/Bpwg==} + '@types/eslint-plugin-jsx-a11y@6.10.0': resolution: {integrity: sha512-TGKmk2gO6DrvTVADNOGQMqn3SzqcFcJILFnXNllQA34us9uClS3/AsL/cERPz6jS9ePI3bx+1q8/d2GZsxPVYw==} @@ -1458,6 +2537,12 @@ packages: '@types/har-format@1.2.16': resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -1473,9 +2558,24 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + '@types/mocha@10.0.10': resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + '@types/moo@0.5.5': + resolution: {integrity: sha512-eXQpwnkI4Ntw5uJg6i2PINdRFWLr55dqjuYQaLHNjvqTzF14QdNWbCbml9sza0byyXNA0hZlHtcdN+VNDcgVHA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/mute-stream@0.0.4': resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} @@ -1488,6 +2588,10 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/parse-path@7.1.0': + resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} + deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. + '@types/react-dom@19.1.5': resolution: {integrity: sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==} peerDependencies: @@ -1496,12 +2600,27 @@ packages: '@types/react@19.1.5': resolution: {integrity: sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==} + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/semver@7.7.0': + resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + '@types/sinonjs__fake-timers@8.1.5': resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/treeify@1.0.3': + resolution: {integrity: sha512-hx0o7zWEUU4R2Amn+pjCBQQt23Khy/Dk56gQU5xi5jtPL1h83ACJCeFaB2M/+WO1AntvWrSoVnnCAfI1AQH4Cg==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/which@2.0.2': resolution: {integrity: sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==} @@ -1770,11 +2889,42 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@zip.js/zip.js@2.7.62': - resolution: {integrity: sha512-OaLvZ8j4gCkLn048ypkZu29KX30r8/OfFF2w4Jo5WXFr+J04J+lzJ5TKZBVgFXhlvSkqNFQdfnY1Q8TMTCyBVA==} - engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=16.5.0'} + '@yarnpkg/core@4.4.2': + resolution: {integrity: sha512-Gf2p9WUygkcT8GobVjrQpFGE7A/GWXPXjDSIFTnZKTiq/W8giN3jqhWpIrpVa2XfPMguXzdEvb2brNYeW3IwdQ==} + engines: {node: '>=18.12.0'} - abort-controller@3.0.0: + '@yarnpkg/fslib@3.1.2': + resolution: {integrity: sha512-FpB2F1Lrm43F94klS9UN0ceOpe/PHZSpJB7bIkvReF/ba890bSdu1NokSKr998yaFee7yqeD9Wkid5ye7azF3A==} + engines: {node: '>=18.12.0'} + + '@yarnpkg/libzip@3.2.1': + resolution: {integrity: sha512-xPdiZxwCXGXxc1GDEyPjRQ5KqkgoOmieDNszLozbqghaeXIaokRbMKLUNx0Mr0LAnzII64kN3gl5qVyzfMxnIg==} + engines: {node: '>=18.12.0'} + peerDependencies: + '@yarnpkg/fslib': ^3.1.2 + + '@yarnpkg/parsers@3.0.3': + resolution: {integrity: sha512-mQZgUSgFurUtA07ceMjxrWkYz8QtDuYkvPlu0ZqncgjopQ0t6CNEo/OSealkmnagSUx8ZD5ewvezUwUuMqutQg==} + engines: {node: '>=18.12.0'} + + '@yarnpkg/shell@4.1.3': + resolution: {integrity: sha512-5igwsHbPtSAlLdmMdKqU3atXjwhtLFQXsYAG0sn1XcPb3yF8WxxtWxN6fycBoUvFyIHFz1G0KeRefnAy8n6gdw==} + engines: {node: '>=18.12.0'} + hasBin: true + + '@zip.js/zip.js@2.7.62': + resolution: {integrity: sha512-OaLvZ8j4gCkLn048ypkZu29KX30r8/OfFF2w4Jo5WXFr+J04J+lzJ5TKZBVgFXhlvSkqNFQdfnY1Q8TMTCyBVA==} + engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=16.5.0'} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} + + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -1797,10 +2947,30 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + adm-zip@0.5.16: + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} + engines: {node: '>=12.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + aggregate-error@5.0.0: + resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} + engines: {node: '>=18'} + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -1845,6 +3015,10 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1878,9 +3052,15 @@ packages: arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argv-formatter@1.0.0: + resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -1889,6 +3069,9 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -1921,6 +3104,10 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + asn1.js@4.10.1: resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} @@ -1942,9 +3129,18 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} + async-mutex@0.5.0: + resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} + + async-retry@1.2.3: + resolution: {integrity: sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==} + async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + auth-header@1.0.0: + resolution: {integrity: sha512-CPPazq09YVDUNNVWo4oSPTQmtwIzHusZhQmahCKvIsk0/xH6U3QsMAv3sM+7+Q0B1K2KJ/Q38OND317uXs4NHA==} + autoprefixer@10.4.21: resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} @@ -1956,6 +3152,9 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + axe-core@4.10.3: resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} @@ -1964,9 +3163,19 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + azure-devops-node-api@15.1.0: + resolution: {integrity: sha512-zlZ387CISkSKK1vjBv53kzR5fnzA60SxYrejypZawefZWvrjC28zyM/iKSP5b+iYl+Z7OOlm+Rgl6YsMecK6fg==} + engines: {node: '>= 16.0.0'} + b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + backslash@0.2.0: + resolution: {integrity: sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A==} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2007,19 +3216,51 @@ packages: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + + before-after-hook@4.0.0: + resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} + + better-sqlite3@12.2.0: + resolution: {integrity: sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x} + + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bn.js@4.12.2: resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} bn.js@5.2.2: resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} + bn@1.0.5: + resolution: {integrity: sha512-7TvGbqbZb6lDzsBtNz1VkdXXV0BVmZKPPViPmo2IpvwaryF7P+QKYKACyVkwo2mZPr2CpFiz7EtgPEcc3o/JFQ==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + + bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -2071,6 +3312,9 @@ packages: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -2086,6 +3330,29 @@ packages: builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + + bunyan@1.8.15: + resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==} + engines: {'0': node >=0.10.0} + hasBin: true + + bzip-deflate@1.0.0: + resolution: {integrity: sha512-9RMnpiJqMYMJcLdr4pxwowZ8Zh3P+tVswE/bnX6tZ14UGKNcdV5WVK2P+lGp2As+RCjl+i3SFJ117HyCaaHNDA==} + + cacache@19.0.1: + resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -2106,6 +3373,14 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} @@ -2113,6 +3388,10 @@ packages: caniuse-lite@1.0.30001718: resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -2121,6 +3400,16 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + changelog-filename-regex@2.0.1: + resolution: {integrity: sha512-DZdyJpCprw8V3jp8V2x13nAA05Yy/IN+Prowj+0mrAHNENYkuMtNI4u5m449TTjPqShIslQSEuXee+Jtkn4m+g==} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -2139,6 +3428,17 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -2147,14 +3447,41 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.3.0: + resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} + engines: {node: '>=8'} + cipher-base@1.0.6: resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} engines: {node: '>= 0.10'} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + clean-git-ref@2.0.1: + resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + clean-stack@5.2.0: + resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} + engines: {node: '>=14.16'} + cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -2163,6 +3490,14 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + clipanion@4.0.0-rc.4: + resolution: {integrity: sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q==} + peerDependencies: + typanion: '*' + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -2170,6 +3505,9 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -2178,16 +3516,30 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -2196,6 +3548,10 @@ packages: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} + commander@14.0.0: + resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} + engines: {node: '>=20'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -2211,6 +3567,9 @@ packages: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compress-commons@6.0.2: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} engines: {node: '>= 14'} @@ -2218,15 +3577,81 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-angular@8.0.0: + resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} + engines: {node: '>=18'} + + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + + conventional-changelog-writer@8.2.0: + resolution: {integrity: sha512-Y2aW4596l9AEvFJRwFGJGiQjt2sBYTjPD18DdvxX9Vpz0Z7HQ+g1Z+6iYDAm1vR3QOJrDBkRHixHK/+FhkR6Pw==} + engines: {node: '>=18'} + hasBin: true + + conventional-commits-detector@1.0.3: + resolution: {integrity: sha512-VlBCTEg34Bbvyh7MPYtmgoYPsP69Z1BusmthbiUbzTiwfhLZWRDEWsJHqWyiekSC9vFCHGT/jKOzs8r21MUZ5g==} + engines: {node: '>=6.9.0'} + hasBin: true + + conventional-commits-filter@5.0.0: + resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} + engines: {node: '>=18'} + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + + conventional-commits-parser@6.2.0: + resolution: {integrity: sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==} + engines: {node: '>=18'} + hasBin: true + + convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + + core-js-pure@3.44.0: + resolution: {integrity: sha512-gvMQAGB4dfVUxpYD0k3Fq8J+n5bB6Ytl15lqlZrOIXFzxOhtPaObfkQGHtMRdyjIf7z2IeNULwi1jEwyS+ltKQ==} + + core-js@3.44.0: + resolution: {integrity: sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig-typescript-loader@6.1.0: + resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==} + engines: {node: '>=v18'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=9' + typescript: '>=5' + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -2248,6 +3673,15 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + croner@9.1.0: + resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} + engines: {node: '>=18.0'} + + cronstrue@2.61.0: + resolution: {integrity: sha512-ootN5bvXbIQI9rW94+QsXN5eROtXWwew6NkdGxIRpS/UFWRggL0G5Al7a9GTBFEsuvVhJ2K3CntIIVt7L2ILhA==} + deprecated: Non-backwards compatible Breaking changes + hasBin: true + cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -2261,6 +3695,10 @@ packages: resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} engines: {node: '>= 0.10'} + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} @@ -2285,6 +3723,19 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + danger@13.0.4: + resolution: {integrity: sha512-IAdQ5nSJyIs4zKj6AN35ixt2B0Ce3WZUm3IFe/CMnL/Op7wV7IGg4D348U0EKNaNPP58QgXbdSk9pM+IXP1QXg==} + engines: {node: '>=18'} + hasBin: true + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -2322,6 +3773,14 @@ packages: supports-color: optional: true + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + decamelize@4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} @@ -2330,6 +3789,17 @@ packages: resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2344,6 +3814,10 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2356,14 +3830,35 @@ packages: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + des.js@1.1.0: resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} hasBin: true + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -2383,6 +3878,10 @@ packages: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} + diff@8.0.2: + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} + engines: {node: '>=0.3.1'} + diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -2414,20 +3913,34 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dotenv@16.5.0: resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} engines: {node: '>=12'} + dtrace-provider@0.8.8: + resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} + engines: {node: '>=0.10'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} easy-table@1.2.0: resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + eciesjs@0.4.15: resolution: {integrity: sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==} engines: {bun: '>=1', deno: '>=2', node: '>=16'} @@ -2441,6 +3954,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + editorconfig@3.0.1: + resolution: {integrity: sha512-k5NZM2XNIJfH/omUv0SRYaiLae4VRwg1ILW6xLOjuP4AQGAGcvzNij5imJ+m1rbzDIH0ov6EbH53BW96amFXpQ==} + engines: {node: '>=20'} + hasBin: true + ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} @@ -2452,6 +3970,9 @@ packages: elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + email-addresses@5.0.0: + resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} + emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -2461,9 +3982,22 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojibase-regex@16.0.0: + resolution: {integrity: sha512-ZMp31BkzBWNW+T73of6NURL6nXQa5GkfKneOkr3cEwBDVllbW/2nuva7NO0J3RjaQ07+SZQNgPTGZ4JlIhmM2Q==} + + emojibase@16.0.0: + resolution: {integrity: sha512-Nw2m7JLIO4Ou2X/yZPRNscHQXVbbr6SErjkJ7EooG7MbR3yDZszCv9KTizsXFc7yZl0n3WF+qUKIC/Lw6H9xaQ==} + engines: {node: '>=18.12.0'} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + encoding-sniffer@0.2.0: resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -2479,10 +4013,21 @@ packages: resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} engines: {node: '>=0.12'} + env-ci@11.1.1: + resolution: {integrity: sha512-mT3ks8F0kwpo7SYNds6nWj0PaRh+qJxIeBVBXAKTN9hphAzZv7s0QAZQbqnB1fAv/r4pJUGE15BV9UrS31FP2w==} + engines: {node: ^18.17 || >=20.6.1} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -2521,6 +4066,9 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + esbuild@0.25.4: resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} @@ -2530,6 +4078,10 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -2538,6 +4090,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -2720,10 +4276,18 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + execa@9.5.3: resolution: {integrity: sha512-QFNnTvU3UjgWFy8Ef9iDHvIdcgZ344ebkwYx4/KLbR+CKQA4xBaHzv+iRpp86QfMHP8faFQLh8iOc57215y4Rg==} engines: {node: ^18.19.0 || >=20.5.0} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + expect-webdriverio@5.1.0: resolution: {integrity: sha512-4u3q+Dqx/lXNgvCx1gKia4CfS28z1UxGGfVUkoMNbrsBlTBB2fYqXG+4+YtYoerxvp/XPwIb/+89IGEdyPbDXQ==} engines: {node: '>=18 || >=20 || >=22'} @@ -2736,6 +4300,12 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + exponential-backoff@3.1.2: + resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -2745,6 +4315,9 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true + fast-content-type-parse@3.0.0: + resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} + fast-deep-equal@2.0.1: resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} @@ -2761,6 +4334,9 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} + fast-json-patch@3.1.1: + resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -2770,6 +4346,10 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-xml-parser@4.4.1: + resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} + hasBin: true + fast-xml-parser@4.5.3: resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} hasBin: true @@ -2795,6 +4375,10 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} @@ -2806,6 +4390,9 @@ packages: file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -2813,6 +4400,22 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-packages@10.0.4: + resolution: {integrity: sha512-JmO9lEBUEYOiRw/bdbdgFWpGFgBZBGLcK/5GjQKo3ZN+zR6jmQOh9gWyZoqxlQmnldZ9WBWhna0QYyuq6BxvRg==} + engines: {node: '>=14.6'} + + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2821,6 +4424,14 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + + find-versions@6.0.0: + resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} + engines: {node: '>=18'} + flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -2844,9 +4455,30 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + forwarded-parse@2.1.2: + resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -2858,6 +4490,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-timeout@1.0.2: + resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} + engines: {node: '>=18'} + function.prototype.name@1.1.8: resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} @@ -2865,11 +4501,31 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} + + gaxios@7.1.1: + resolution: {integrity: sha512-Odju3uBUJyVCkW64nLD4wKLhbh93bh6vIg/ZIXkWiLPBrdgtc65+tls/qml+un3pr6JqYVFDZbbmLDQT68rTOQ==} + engines: {node: '>=18'} + + gcp-metadata@6.1.1: + resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} + engines: {node: '>=14'} + + gcp-metadata@7.0.1: + resolution: {integrity: sha512-UcO3kefx6dCcZkgcTGgVOTFb7b1LlQ02hY1omMjjrrBzkajRMCFgYOjs7J71WqnuG1k2b+9ppGL7FsOfhZMQKQ==} + engines: {node: '>=18'} + geckodriver@5.0.0: resolution: {integrity: sha512-vn7TtQ3b9VMJtVXsyWtQQl1fyBVFhQy7UvJF96kPuuJ0or5THH496AD3eUyaDD11+EqCxH9t6V+EP9soZQk4YQ==} engines: {node: '>=18.0.0'} hasBin: true + generic-pool@3.9.0: + resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} + engines: {node: '>= 4'} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2890,6 +4546,10 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-stdin@6.0.0: + resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} + engines: {node: '>=4'} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -2898,6 +4558,14 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-stream@7.0.1: + resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} + engines: {node: '>=16'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + get-stream@9.0.1: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} @@ -2913,6 +4581,35 @@ packages: resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==} engines: {node: '>= 14'} + git-log-parser@1.2.1: + resolution: {integrity: sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==} + + git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + + git-secrets@0.0.11: + resolution: {integrity: sha512-In84SDEgz7BVLzPMEO6Go4IGZ0ZKPUIdcY09+Fl6Q45gaHbP8OdN+uQ88QbVL3k1qUsizb9Ijo/80YtBvaaqnA==} + hasBin: true + + git-up@8.1.1: + resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==} + + git-url-parse@16.1.0: + resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==} + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + github-url-from-git@1.5.0: + resolution: {integrity: sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -2933,13 +4630,30 @@ packages: engines: {node: 20 || >=22} hasBin: true + glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + hasBin: true + + glob@6.0.4: + resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + deprecated: Glob versions prior to v9 are no longer supported + glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} globals@16.1.0: @@ -2954,23 +4668,74 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + engines: {node: '>=18'} + + good-enough-parser@1.1.23: + resolution: {integrity: sha512-QUcQZutczESpdo2w9BMG6VpLFoq9ix7ER5HLM1mAdZdri2F3eISkCb8ep84W6YOo0grYWJdyT/8JkYqGjQfSSQ==} + engines: {node: '>=18.12.0', yarn: ^1.17.0} + + google-auth-library@10.1.0: + resolution: {integrity: sha512-GspVjZj1RbyRWpQ9FbAXMKjFGzZwDKnUHi66JJ+tcjcu5/xYAP1pdlWotCuIkMwjfVsxxDvsGZXGLzRt72D0sQ==} + engines: {node: '>=18'} + + google-logging-utils@0.0.2: + resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + engines: {node: '>=14'} + + google-logging-utils@1.1.1: + resolution: {integrity: sha512-rcX58I7nqpu4mbKztFeOAObbomBbHU2oIb/d3tJfF3dizGSApqtSwYJigGCooHdnMyQBIw8BrWyK96w3YXgr6A==} + engines: {node: '>=14'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graph-data-structure@4.5.0: + resolution: {integrity: sha512-OCeIzpK9JnV5js4gtDJgwebRbcOsZpoN9CNIwEooHkV/FNol+OykWPOugSTXBH/QICEW2N6U+6L2d9DcK4YBcw==} + grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gtoken@8.0.0: + resolution: {integrity: sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==} + engines: {node: '>=18'} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} + has-flag@2.0.0: + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} + engines: {node: '>=0.10.0'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -3005,26 +4770,63 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + hook-std@3.0.0: + resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + hosted-git-info@7.0.2: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@8.1.0: + resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} + engines: {node: ^18.17.0 || >=20.5.0} + + hpagent@1.2.0: + resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} + engines: {node: '>=14'} + htmlfy@0.6.7: resolution: {integrity: sha512-r8hRd+oIM10lufovN+zr3VKPTYEIvIwqXGucidh2XQufmiw6sbUXFUFjWlfjo3AnefIDTyzykVzQ8IUVuT1peQ==} htmlparser2@9.1.0: resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -3033,15 +4835,41 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + human-signals@8.0.1: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + husky@9.1.7: resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} hasBin: true + hyperlinker@1.0.0: + resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} + engines: {node: '>=4'} + + iced-error@0.0.13: + resolution: {integrity: sha512-yEEaG8QfyyRL0SsbNNDw3rVgTyqwHFMCuV6jDvD43f/2shmdaFXkqvFLGhDlsYNSolzYHwVLM/CrXt9GygYopA==} + + iced-lock@1.1.0: + resolution: {integrity: sha512-J9UMVitgTMYrkUil5EB9/Q4BPWiMpFH156yjDlmMoMRKs3s3PnXj/6G0UlzIOGnNi5JVNk/zVYLXVnuo+1QnqQ==} + + iced-lock@2.0.1: + resolution: {integrity: sha512-J6dnGMpAoHNyACUYJYhiJkLY7YFRTa7NMZ8ZygpYB3HNDOGWtzv55+kT2u1zItRi4Y1EXruG9d1VDsx8R5faTw==} + + iced-runtime-3@3.0.5: + resolution: {integrity: sha512-OHU64z4Njq4EdoGyRId5NgUQKy6R1sr1wufc1fVxwpqKsM8yWagqmKCRlt//zKKIPOfZw7kQ1iN4m+/2s8WSeg==} + + iced-runtime@1.0.4: + resolution: {integrity: sha512-rgiJXNF6ZgF2Clh/TKUlBDW3q51YPDJUXmxGQXx1b8tbZpVpTn+1RX9q1sjNkujXIIaVxZByQzPHHORg7KV51g==} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -3064,6 +4892,10 @@ packages: resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} @@ -3074,6 +4906,13 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} + import-from-esm@2.0.0: + resolution: {integrity: sha512-YVt14UZCgsX1vZQ3gKjkWVdBdHQ6eu3MPU1TBgL1H5orXe2+jWD006WCPPtOuwlQm10NuzOW5WawiF1Q9veW8g==} + engines: {node: '>=18.20'} + + import-in-the-middle@1.14.2: + resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} + import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -3081,6 +4920,18 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + index-to-position@1.1.0: + resolution: {integrity: sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==} + engines: {node: '>=18'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -3088,14 +4939,33 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ini@5.0.0: + resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} + engines: {node: ^18.17.0 || >=20.5.0} + inquirer@11.1.0: resolution: {integrity: sha512-CmLAZT65GG/v30c+D2Fk8+ceP6pxD6RL+hIUOWAltCmeyEqWYwqu9v76q03OvjyZ3AB0C1Ala2stn1z/rMqGEw==} engines: {node: '>=18'} + install-artifact-from-github@1.4.0: + resolution: {integrity: sha512-+y6WywKZREw5rq7U2jvr2nmZpT7cbWbQQ0N/qfcseYnzHFz2cZz1Et52oY+XttYuYeTkI8Y+R2JNWj68MpQFSg==} + hasBin: true + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + into-stream@7.0.0: + resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} + engines: {node: '>=12'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -3190,6 +5060,14 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -3210,10 +5088,17 @@ packages: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} + is-ssh@1.4.1: + resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@4.0.1: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} @@ -3226,10 +5111,17 @@ packages: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -3250,6 +5142,10 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -3267,6 +5163,10 @@ packages: resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==} engines: {node: '>=10'} + issue-parser@7.0.1: + resolution: {integrity: sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==} + engines: {node: ^18.17 || >=20.6.1} + iterator.prototype@1.1.5: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} @@ -3278,11 +5178,19 @@ packages: resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} engines: {node: 20 || >=22} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true + java-properties@1.0.2: + resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} + engines: {node: '>= 0.6.0'} + jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3315,9 +5223,16 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + js-md4@0.3.2: + resolution: {integrity: sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -3325,9 +5240,18 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-dup-key-validator@1.0.3: + resolution: {integrity: sha512-JvJcV01JSiO7LRz7DY1Fpzn4wX2rJ3dfNTiAfnlvLNdhhnm0Pgdvhi2SGpENrZn7eSg26Ps3TPhOcuD/a4STXQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -3344,10 +5268,43 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-pretty-compact@4.0.0: + resolution: {integrity: sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonata@2.0.6: + resolution: {integrity: sha512-WhQB5tXQ32qjkx2GYHFw2XbL90u+LLzjofAYwi+86g6SyZeXHz9F1Q0amy3dWRYczshOC3Haok9J4pOCgHtwyQ==} + engines: {node: '>= 8'} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -3355,9 +5312,35 @@ packages: jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + jwa@1.4.2: + resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} + + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + + jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + + jws@4.0.0: + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} + + keybase-ecurve@1.0.1: + resolution: {integrity: sha512-2GlVxDsNF+52LtYjgFsjoKuN7MQQgiVeR4HRdJxLuN8fm4mf4stGKPUjDJjky15c/98UsZseLjp7Ih5X0Sy1jQ==} + + keybase-nacl@1.1.4: + resolution: {integrity: sha512-7TFyWLq42CQs7JES9arR+Vnv/eMk5D6JT1Y8samrEA5ff3FOmaiRcXIVrwJQd3KJduxmSjgAjdkXlQK7Q437xQ==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -3373,6 +5356,9 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} @@ -3387,6 +5373,9 @@ packages: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + lint-staged@16.0.0: resolution: {integrity: sha512-sUCprePs6/rbx4vKC60Hez6X10HPkpDJaGcy3D1NdwR7g1RcNkWL8q9mJMreOqmHBTs+1sNFp+wOiX9fr+hoOQ==} engines: {node: '>=20.18'} @@ -3396,6 +5385,10 @@ packages: resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} engines: {node: '>=18.0.0'} + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -3404,9 +5397,20 @@ packages: resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} + localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + locate-app@2.5.0: resolution: {integrity: sha512-xIqbzPMBYArJRmPGUZD9CzV9wOqmVtQnaAn3wrj3s6WYW0bQvPI7x+sPYUGmDTYMHefVK//zc6HEYZ1qnxIK+Q==} + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -3415,25 +5419,94 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.capitalize@4.2.1: + resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} + lodash.clonedeep@4.5.0: resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.find@4.6.0: + resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==} + lodash.flattendeep@4.4.0: resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isobject@3.0.2: + resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.keys@4.2.0: + resolution: {integrity: sha512-J79MkJcp7Df5mizHiVNpjoHXLi4HLjh9VLS/M7lQSGoQ+0oQ+lWEigREkqKyizPB1IawvQLLKY8mzEcm1tkyxQ==} + + lodash.mapvalues@4.6.0: + resolution: {integrity: sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + lodash.pickby@4.6.0: resolution: {integrity: sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==} + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + lodash.zip@4.2.0: resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} @@ -3455,10 +5528,20 @@ packages: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -3466,16 +5549,61 @@ packages: resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} engines: {node: 20 || >=22} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + + luxon@3.6.1: + resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} + engines: {node: '>=12'} + magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-fetch-happen@14.0.3: + resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + marked-terminal@7.3.0: + resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <16' + + marked@15.0.12: + resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} + engines: {node: '>= 18'} + hasBin: true + + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -3483,6 +5611,43 @@ packages: md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + memfs-or-file-map-to-github-branch@1.3.0: + resolution: {integrity: sha512-AzgIEodmt51dgwB3TmihTf1Fh2SmszdZskC6trFHy4v71R5shLmdjJSYI7ocVfFa7C/TE6ncb0OZ9eBg2rmkBQ==} + + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + + meow@7.1.1: + resolution: {integrity: sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==} + engines: {node: '>=10'} + + meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3490,6 +5655,69 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -3506,14 +5734,35 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime@4.0.7: + resolution: {integrity: sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==} + engines: {node: '>=16'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + mimic-function@5.0.1: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -3524,6 +5773,10 @@ packages: resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} engines: {node: 20 || >=22} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -3535,18 +5788,87 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@4.0.1: + resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + minizlib@3.0.2: + resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + engines: {node: '>= 18'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + mocha@10.8.2: resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} engines: {node: '>= 14.0.0'} hasBin: true + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + + more-entropy@0.0.7: + resolution: {integrity: sha512-e0TxQtU1F6/ZA8WnEA2JLQwwDqBTtZFLJSW7rWgUsQou35wx1IOL0g2O7q7oGoMgIJto+jHMnNGHLfSiylHRrw==} + mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} @@ -3562,6 +5884,10 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} + mv@2.1.1: + resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} + engines: {node: '>=0.8.0'} + mylas@2.1.13: resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} engines: {node: '>=12.0.0'} @@ -3569,6 +5895,9 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nan@2.23.0: + resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} + nano-spawn@1.0.2: resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==} engines: {node: '>=20.17'} @@ -3578,6 +5907,14 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.1.5: + resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + engines: {node: ^18 || >=20} + hasBin: true + + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.2.4: resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -3586,25 +5923,68 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + ncp@2.0.0: + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} + hasBin: true + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} + node-abi@3.75.0: + resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} + engines: {node: '>=10'} + node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-cleanup@2.1.2: + resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead + node-emoji@2.2.0: + resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + engines: {node: '>=18'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp@11.2.0: + resolution: {integrity: sha512-T0S1zqskVUSxcsSTkAsLc7xCycrRYmtDHadDinzocrThjyQCn5kMlEBSj6H4qDbgsIOSLmmlRIeb0lZXj+UArA==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + node-html-parser@7.0.1: + resolution: {integrity: sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==} + node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} @@ -3612,6 +5992,18 @@ packages: resolution: {integrity: sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==} engines: {node: '>=10'} + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + normalize-package-data@6.0.2: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} @@ -3624,14 +6016,100 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + normalize-url@8.0.2: + resolution: {integrity: sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==} + engines: {node: '>=14.16'} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@6.0.0: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} + npm@10.9.3: + resolution: {integrity: sha512-6Eh1u5Q+kIVXeA8e7l2c/HpnFFcwrkt37xDMujD5be1gloWa9p6j3Fsv3mByXXmqJHy+2cElRMML8opNT7xIJQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + bundledDependencies: + - '@isaacs/string-locale-compare' + - '@npmcli/arborist' + - '@npmcli/config' + - '@npmcli/fs' + - '@npmcli/map-workspaces' + - '@npmcli/package-json' + - '@npmcli/promise-spawn' + - '@npmcli/redact' + - '@npmcli/run-script' + - '@sigstore/tuf' + - abbrev + - archy + - cacache + - chalk + - ci-info + - cli-columns + - fastest-levenshtein + - fs-minipass + - glob + - graceful-fs + - hosted-git-info + - ini + - init-package-json + - is-cidr + - json-parse-even-better-errors + - libnpmaccess + - libnpmdiff + - libnpmexec + - libnpmfund + - libnpmhook + - libnpmorg + - libnpmpack + - libnpmpublish + - libnpmsearch + - libnpmteam + - libnpmversion + - make-fetch-happen + - minimatch + - minipass + - minipass-pipeline + - ms + - node-gyp + - nopt + - normalize-package-data + - npm-audit-report + - npm-install-checks + - npm-package-arg + - npm-pick-manifest + - npm-profile + - npm-registry-fetch + - npm-user-validate + - p-map + - pacote + - parse-conflict-json + - proc-log + - qrcode-terminal + - read + - semver + - spdx-expression-parse + - ssri + - supports-color + - tar + - text-table + - tiny-relative-date + - treeverse + - validate-npm-package-name + - which + - write-file-atomic + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -3686,10 +6164,18 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + onetime@7.0.0: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} + openpgp@6.1.1: + resolution: {integrity: sha512-V/DXZ5AGCz3q4X8psUSc3q4SxnH/bfICaTSpNcla7wvBFhrxa9/ajm31rtMwZ1qj7Fu2oMpfX6ZcxKmTBlb6Yg==} + engines: {node: '>= 18.0.0'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -3701,10 +6187,45 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + override-require@1.1.1: + resolution: {integrity: sha512-eoJ9YWxFcXbrn2U8FKT6RV+/Kj7fiGAB1VvHzbYKt8xM5ZuKZgCGvnHzDxmreEjcBH28ejg5MiOH4iyY1mQnkg==} + own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + p-all@5.0.0: + resolution: {integrity: sha512-pofqu/1FhCVa+78xNAptCGc9V45exFz2pvBRyIvgXkNM0Rh18Py7j8pQuSjA+zpabI46v9hRjNWmL9EAFcEbpw==} + engines: {node: '>=16'} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-each-series@3.0.0: + resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} + engines: {node: '>=12'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-filter@4.1.0: + resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} + engines: {node: '>=18'} + + p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -3713,6 +6234,14 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -3721,6 +6250,46 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@6.0.0: + resolution: {integrity: sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==} + engines: {node: '>=16'} + + p-map@7.0.3: + resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} + engines: {node: '>=18'} + + p-queue@8.1.0: + resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==} + engines: {node: '>=18'} + + p-reduce@2.1.0: + resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} + engines: {node: '>=8'} + + p-reduce@3.0.0: + resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} + engines: {node: '>=12'} + + p-throttle@7.0.0: + resolution: {integrity: sha512-aio0v+S0QVkH1O+9x4dHtD4dgCExACcL+3EtNaGqC01GBudS9ijMuUsmN8OVScyV4OOp0jqdLShZFuSlbL/AsA==} + engines: {node: '>=18'} + + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + pac-proxy-agent@7.2.0: resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} engines: {node: '>= 14'} @@ -3743,26 +6312,69 @@ packages: resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} engines: {node: '>= 0.10'} + parse-diff@0.7.1: + resolution: {integrity: sha512-1j3l8IKcy4yRK2W4o9EYvJLSzpAVwz4DXqCewYyx2vEwk2gcf3DBPqc8Fj4XV3K33OYJ08A8fWwyu/ykD/HUSg==} + + parse-github-url@1.0.3: + resolution: {integrity: sha512-tfalY5/4SqGaV/GIGzWyHnFjlpTPTNpENR9Ea2lLldSJ8EWXMsvacWucqY3m3I4YPtas15IxTLQVQ5NSYXPrww==} + engines: {node: '>= 0.10'} + hasBin: true + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + parse-json@7.1.1: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + + parse-link-header@2.0.0: + resolution: {integrity: sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==} + parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} + parse-path@7.1.0: + resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} + + parse-url@9.2.0: + resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} + engines: {node: '>=14.13.0'} + + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + parse5-htmlparser2-tree-adapter@7.1.0: resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} parse5-parser-stream@7.1.2: resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3771,6 +6383,10 @@ packages: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -3794,6 +6410,10 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} + pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -3804,6 +6424,9 @@ packages: pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + pgp-utils@0.0.35: + resolution: {integrity: sha512-gCT6EbSTgljgycVa5qGpfRITaLOLbIKsEVRTdsNRgmLMAJpuJNNdrTn/95r8IWo9rFLlccfmGMJXkG9nVDwmrA==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -3824,10 +6447,21 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pinpoint@1.1.0: + resolution: {integrity: sha512-+04FTD9x7Cls2rihLlo57QDCcHoLBGn5Dk51SwtFBWkUWLxZaBXyNVpCw1S+atvE7GmnFjeaRZ0WLq3UYuqAdg==} + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} + pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} + engines: {node: '>=4'} + pkg-dir@5.0.0: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} @@ -3899,6 +6533,11 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -3962,8 +6601,8 @@ packages: prettier-plugin-svelte: optional: true - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} hasBin: true @@ -3975,6 +6614,14 @@ packages: resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} engines: {node: '>=18'} + prettyjson@1.2.5: + resolution: {integrity: sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==} + hasBin: true + + proc-log@5.0.0: + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} + engines: {node: ^18.17.0 || >=20.5.0} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -3982,13 +6629,31 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + progress@1.1.8: + resolution: {integrity: sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==} + engines: {node: '>=0.4.0'} + progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + protobufjs@7.5.3: + resolution: {integrity: sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==} + engines: {node: '>=12.0.0'} + + protocols@2.0.2: + resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} + proxy-agent@6.5.0: resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} engines: {node: '>= 14'} @@ -4002,6 +6667,10 @@ packages: pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -4009,6 +6678,10 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + purepack@1.0.6: + resolution: {integrity: sha512-L/e3qq/3m/TrYtINo2aBB98oz6w8VHGyFy+arSKwPMZDUNNw2OaQxYnZO6UIZZw2OnRl2qkxGmuSOEfsuHXJdA==} + engines: {node: '>=0.10.0'} + qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} @@ -4027,12 +6700,27 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} randomfill@1.0.4: resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + re2@1.22.1: + resolution: {integrity: sha512-E4J0EtgyNLdIr0wTg0dQPefuiqNY29KaLacytiUAYYRzxCG+zOkWoUygt1rI+TA1LrhN49/njrfSO1DHtVC5Vw==} + react-dom@19.1.0: resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} peerDependencies: @@ -4062,14 +6750,34 @@ packages: read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + read-pkg-up@10.1.0: resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==} engines: {node: '>=16'} + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + read-pkg@8.1.0: resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} engines: {node: '>=16'} + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + read-yaml-file@2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -4092,18 +6800,53 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + readline-sync@1.4.10: + resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} + engines: {node: '>= 0.8.0'} + recursive-readdir@2.2.3: resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} engines: {node: '>=6.0.0'} + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + redis@4.7.1: + resolution: {integrity: sha512-S1bJDnqLftzHXHP8JsT5II/CtHWQrASX5K96REjWjlmWKrviSOLWmM7QnRLstAWsu1VBBV1ffV6DzCvxNP0UJQ==} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} + registry-auth-token@5.1.0: + resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} + engines: {node: '>=14'} + + remark-github@12.0.0: + resolution: {integrity: sha512-ByefQKFN184LeiGRCabfl7zUJsdlMYWEhiLX1gpmQ11yFg6xSuOTW7LVCv0oc1x+YvUMJW23NU36sJX2RWGgvg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + + renovate@41.35.1: + resolution: {integrity: sha512-QxUgdUbHDwx+7h9N1gdtzBhn3yh770GILAszbBq+iNFZ3EXm0GtGvOKoaqxLcmZjS8KIy63U5tHKKpjbixPe5w==} + engines: {node: ^22.13.0, pnpm: ^10.0.0} + hasBin: true + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -4112,10 +6855,24 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-in-the-middle@7.5.2: + resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} + engines: {node: '>=8.6.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -4128,6 +6885,9 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + resq@1.11.0: resolution: {integrity: sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==} @@ -4135,6 +6895,10 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4145,6 +6909,11 @@ packages: rgb2hex@0.2.5: resolution: {integrity: sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==} + rimraf@2.4.5: + resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rimraf@6.0.1: resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} engines: {node: 20 || >=22} @@ -4153,6 +6922,10 @@ packages: ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + rollup@4.41.0: resolution: {integrity: sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -4186,6 +6959,9 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-json-stringify@1.2.0: + resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} + safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -4194,6 +6970,10 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -4202,6 +6982,9 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} @@ -4213,6 +6996,33 @@ packages: resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} + semantic-release@24.2.7: + resolution: {integrity: sha512-g7RssbTAbir1k/S7uSwSVZFfFXwpomUB9Oas0+xi9KStSCmeDXcA7rNhiskjLqvUe/Evhx8fVCT16OSa34eM5g==} + engines: {node: '>=20.8.1'} + hasBin: true + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + + semver-stable@3.0.0: + resolution: {integrity: sha512-lolq9k0lqdnZ0C4+QJvrPBWiAHGhLaVSMTPJajn527ptOHAcZnEhj0n2r6ALnryNiRKPO9AIO9iBI3ZSheHCaw==} + engines: {node: '>=0.10.0'} + + semver-utils@1.1.4: + resolution: {integrity: sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -4226,9 +7036,16 @@ packages: resolution: {integrity: sha512-2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==} engines: {node: '>=14.16'} + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -4256,6 +7073,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shlex@2.1.2: + resolution: {integrity: sha512-Nz6gtibMVgYeMEhUjp2KuwAgqaJA1K155dU/HuDaEJUGgnmYfVtVZah+uerVWdH8UGnyahhDCgABbYTbs254+w==} + side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -4279,10 +7099,31 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + simple-git@3.28.0: + resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -4291,6 +7132,10 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -4303,6 +7148,10 @@ packages: resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + sort-keys@4.2.0: + resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} + engines: {node: '>=8'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4321,6 +7170,9 @@ packages: spacetrim@0.11.59: resolution: {integrity: sha512-lLYsktklSRKprreOm7NXReW8YiX2VBjbgmXYEziOoGf/qsJqAEACaDvoTtUOycwjpaSh+bT8eu0KrJn7UNxiCg==} + spawn-error-forwarder@1.0.0: + resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -4333,13 +7185,26 @@ packages: spdx-license-ids@3.0.21: resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + split2@1.0.0: + resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + ssri@12.0.0: + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} + engines: {node: ^18.17.0 || >=20.5.0} + stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -4354,6 +7219,9 @@ packages: resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} engines: {node: '>= 0.10.0'} + stream-combiner2@1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + stream-http@3.2.0: resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} @@ -4417,18 +7285,41 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-comments-strings@1.2.0: + resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + strip-final-newline@4.0.0: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-json-comments@5.0.2: + resolution: {integrity: sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g==} + engines: {node: '>=14.16'} + strnum@1.1.2: resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} @@ -4437,6 +7328,14 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + super-regex@1.0.0: + resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} + engines: {node: '>=18'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -4445,6 +7344,14 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@1.0.1: + resolution: {integrity: sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==} + engines: {node: '>=4'} + + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -4465,12 +7372,35 @@ packages: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} + tar-fs@2.1.3: + resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} + tar-fs@3.0.8: resolution: {integrity: sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==} + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + terser-webpack-plugin@5.3.14: resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} @@ -4495,6 +7425,10 @@ packages: text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -4502,14 +7436,36 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + through2-concurrent@2.0.0: + resolution: {integrity: sha512-R5/jLkfMvdmDD+seLwN7vB+mhbqzWop5fAjx5IX8/yQq7VhBhzDmhXgaHAOnhnWkCpRMM7gToYHycB0CS/pd+A==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + timers-browserify@2.0.12: resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} engines: {node: '>=0.6.0'} + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyglobby@0.2.13: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} + tinylogic@2.0.0: + resolution: {integrity: sha512-dljTkiLLITtsjqBvTA1MRZQK/sGP4kI3UJKc3yA9fMzYbMF2RhcN04SeROVqJBIYYOoJMM8u0WDnhFwMSFQotw==} + tinyrainbow@1.2.0: resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} @@ -4522,8 +7478,36 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + to-vfile@8.0.0: + resolution: {integrity: sha512-IcmH1xB5576MJc9qcfEC/m/nQCFt3fzMHz45sSlgJyTWjRbKW1HAkJpuf3DgE57YzIlZcwcBZA5ENQbBo4aLkg==} + + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + traverse@0.6.8: + resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} + engines: {node: '>= 0.4'} + + treeify@1.1.0: + resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} + engines: {node: '>=0.6'} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + triplesec@4.0.3: + resolution: {integrity: sha512-fug70e1nJoCMxsXQJlETisAALohm84vl++IiTTHEqM7Lgqwz62jrlwqOC/gJEAJjO/ByN127sEcioB56HW3wIw==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -4571,6 +7555,13 @@ packages: tty-browserify@0.0.1: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + turbo-darwin-64@2.5.3: resolution: {integrity: sha512-YSItEVBUIvAGPUDpAB9etEmSqZI3T6BHrkBkeSErvICXn3dfqXUfeLx35LfptLDEbrzFUdwYFNmt8QXOwe9yaw==} cpu: [x64] @@ -4605,14 +7596,43 @@ packages: resolution: {integrity: sha512-iHuaNcq5GZZnr3XDZNuu2LSyCzAOPwDuo5Qt+q64DfsTP1i3T2bKfxJhni2ZQxsvAoxRbuUK5QetJki4qc5aYA==} hasBin: true + tweetnacl@0.13.3: + resolution: {integrity: sha512-iNWodk4oBsZ03Qfw/Yvv0KB90uYrJqvL4Je7Gy4C5t/GS3sCXPRmIT1lxmId4RzvUp0XG62bcxJ2CBu/3L5DSg==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + typanion@3.14.0: + resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -4645,6 +7665,20 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} + typed-rest-client@2.1.0: + resolution: {integrity: sha512-Nel9aPbgSzRxfs1+4GoSB4wexCF+4Axlk7OSGVQCMa+4fWcyxIsN/YNmkp0xTT2iQzMD98h8yFLav/cNaULmRA==} + engines: {node: '>= 16.0.0'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typedoc@0.28.7: + resolution: {integrity: sha512-lpz0Oxl6aidFkmS90VQDQjk/Qf2iw0IUvFqirdONBdj7jPSN9mGXhy66BcGNDxx5ZMyKKiBVAREvPEzT6Uxipw==} + engines: {node: '>= 18', pnpm: '>= 10'} + hasBin: true + peerDependencies: + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x + typescript-eslint@8.32.1: resolution: {integrity: sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4657,10 +7691,24 @@ packages: engines: {node: '>=14.17'} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + uint64be@1.0.1: + resolution: {integrity: sha512-w+VZSp8hSZ/xWZfZNMppWNF6iqY+dcMYtG5CpwRDgxi94HIE6ematSdkzHGzVC4SDEaTsG65zrajN+oKoWG6ew==} + unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} + underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} + undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -4671,13 +7719,62 @@ packages: resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} engines: {node: '>=18.17'} + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unique-filename@4.0.0: + resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + unique-slug@5.0.0: + resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} + engines: {node: ^18.17.0 || >=20.5.0} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + + universal-user-agent@7.0.3: + resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + unrs-resolver@1.7.2: resolution: {integrity: sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==} + upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -4687,6 +7784,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + url@0.11.4: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} @@ -4704,12 +7805,30 @@ packages: util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + validate-npm-package-name@6.0.1: + resolution: {integrity: sha512-OaI//3H0J7ZkR1OqlhGA8cA+Cbk/2xFOQpJOt5+s27/ta9eZwpeervh4Mxh4w0im/kdgktowaqVNR7QOrUd7Yg==} + engines: {node: ^18.17.0 || >=20.5.0} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-plugin-node-polyfills@0.23.0: resolution: {integrity: sha512-4n+Ys+2bKHQohPBKigFlndwWQ5fFKwaGY6muNDMTb0fSQLyBzS+jjUNRZG9sKF0S/Go4ApG6LFnUGopjkILg3w==} peerDependencies: @@ -4758,6 +7877,9 @@ packages: vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + vuln-vects@1.1.0: + resolution: {integrity: sha512-LGDwn9nRz94YoeqOn2TZqQXzyonBc5FJppSgH34S/1U+3bgPONq/vvfiCbCQ4MeBll58xx+kDmhS73ac+EHBBw==} + wait-port@1.1.0: resolution: {integrity: sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==} engines: {node: '>=10'} @@ -4790,6 +7912,9 @@ packages: webextension-polyfill@0.12.0: resolution: {integrity: sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -4812,6 +7937,9 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -4824,6 +7952,9 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which-typed-array@1.1.19: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} @@ -4847,6 +7978,9 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + workerpool@6.5.1: resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} @@ -4869,6 +8003,17 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-yaml-file@4.2.0: + resolution: {integrity: sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==} + engines: {node: '>=10.13'} + ws@8.18.2: resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} engines: {node: '>=10.0.0'} @@ -4881,19 +8026,40 @@ packages: utf-8-validate: optional: true + xcase@2.0.1: + resolution: {integrity: sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==} + + xmldoc@2.0.2: + resolution: {integrity: sha512-UiRwoSStEXS3R+YE8OqYv3jebza8cBBAI2y8g3B15XFkn3SbEOyyLnmPHjLBPZANrPJKEzxxB7A3XwcLikQVlQ==} + engines: {node: '>=12.0.0'} + xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@2.8.0: resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} engines: {node: '>= 14.6'} hasBin: true + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -4906,6 +8072,10 @@ packages: resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} engines: {node: '>=10'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} @@ -4941,141 +8111,1079 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@alloc/quick-lru@5.2.0': {} - '@babel/code-frame@7.27.1': + '@arcanis/slice-ansi@1.1.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/helper-validator-identifier@7.27.1': {} + grapheme-splitter: 1.0.4 - '@babel/runtime@7.27.1': {} + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.840.0 + tslib: 2.8.1 - '@cspotcode/source-map-support@0.8.1': + '@aws-crypto/crc32c@5.2.0': dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.840.0 + tslib: 2.8.1 - '@dotenvx/dotenvx@1.44.1': + '@aws-crypto/sha1-browser@5.2.0': dependencies: - commander: 11.1.0 - dotenv: 16.5.0 - eciesjs: 0.4.15 - execa: 5.1.1 - fdir: 6.4.4(picomatch@4.0.2) - ignore: 5.3.2 - object-treeify: 1.1.33 - picomatch: 4.0.2 - which: 4.0.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-locate-window': 3.804.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 - '@ecies/ciphers@0.2.3(@noble/ciphers@1.3.0)': + '@aws-crypto/sha256-browser@5.2.0': dependencies: - '@noble/ciphers': 1.3.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-locate-window': 3.804.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 - '@emnapi/core@1.4.3': + '@aws-crypto/sha256-js@5.2.0': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.840.0 tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.4.3': + '@aws-crypto/supports-web-crypto@5.2.0': dependencies: tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.0.2': + '@aws-crypto/util@5.2.0': dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - optional: true - '@esbuild/aix-ppc64@0.25.4': - optional: true + '@aws-sdk/client-codecommit@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-cognito-identity@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-ec2@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-sdk-ec2': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.6 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-ecr@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-eks@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.6 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-rds@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-sdk-rds': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-s3@3.840.0': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-bucket-endpoint': 3.840.0 + '@aws-sdk/middleware-expect-continue': 3.840.0 + '@aws-sdk/middleware-flexible-checksums': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-location-constraint': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-sdk-s3': 3.840.0 + '@aws-sdk/middleware-ssec': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/signature-v4-multi-region': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@aws-sdk/xml-builder': 3.821.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/eventstream-serde-browser': 4.0.4 + '@smithy/eventstream-serde-config-resolver': 4.1.2 + '@smithy/eventstream-serde-node': 4.0.4 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-blob-browser': 4.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/hash-stream-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/md5-js': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-stream': 4.2.3 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.6 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@aws-sdk/xml-builder': 3.821.0 + '@smithy/core': 3.7.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-utf8': 4.0.0 + fast-xml-parser: 4.4.1 + tslib: 2.8.1 - '@esbuild/android-arm64@0.25.4': - optional: true + '@aws-sdk/credential-provider-cognito-identity@3.840.0': + dependencies: + '@aws-sdk/client-cognito-identity': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@esbuild/android-arm@0.25.4': - optional: true + '@aws-sdk/credential-provider-env@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/android-x64@0.25.4': - optional: true + '@aws-sdk/credential-provider-http@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/node-http-handler': 4.1.0 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.3 + tslib: 2.8.1 - '@esbuild/darwin-arm64@0.25.4': - optional: true + '@aws-sdk/credential-provider-ini@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-env': 3.840.0 + '@aws-sdk/credential-provider-http': 3.840.0 + '@aws-sdk/credential-provider-process': 3.840.0 + '@aws-sdk/credential-provider-sso': 3.840.0 + '@aws-sdk/credential-provider-web-identity': 3.840.0 + '@aws-sdk/nested-clients': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.840.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.840.0 + '@aws-sdk/credential-provider-http': 3.840.0 + '@aws-sdk/credential-provider-ini': 3.840.0 + '@aws-sdk/credential-provider-process': 3.840.0 + '@aws-sdk/credential-provider-sso': 3.840.0 + '@aws-sdk/credential-provider-web-identity': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@esbuild/darwin-x64@0.25.4': - optional: true + '@aws-sdk/credential-provider-process@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/freebsd-arm64@0.25.4': - optional: true + '@aws-sdk/credential-provider-sso@3.840.0': + dependencies: + '@aws-sdk/client-sso': 3.840.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/token-providers': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@esbuild/freebsd-x64@0.25.4': - optional: true + '@aws-sdk/credential-provider-web-identity@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/nested-clients': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-providers@3.840.0': + dependencies: + '@aws-sdk/client-cognito-identity': 3.840.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-cognito-identity': 3.840.0 + '@aws-sdk/credential-provider-env': 3.840.0 + '@aws-sdk/credential-provider-http': 3.840.0 + '@aws-sdk/credential-provider-ini': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/credential-provider-process': 3.840.0 + '@aws-sdk/credential-provider-sso': 3.840.0 + '@aws-sdk/credential-provider-web-identity': 3.840.0 + '@aws-sdk/nested-clients': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@esbuild/linux-arm64@0.25.4': - optional: true + '@aws-sdk/middleware-bucket-endpoint@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-arn-parser': 3.804.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + tslib: 2.8.1 - '@esbuild/linux-arm@0.25.4': - optional: true + '@aws-sdk/middleware-expect-continue@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/linux-ia32@0.25.4': - optional: true + '@aws-sdk/middleware-flexible-checksums@3.840.0': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/is-array-buffer': 4.0.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.3 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 - '@esbuild/linux-loong64@0.25.4': - optional: true + '@aws-sdk/middleware-host-header@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/linux-mips64el@0.25.4': - optional: true + '@aws-sdk/middleware-location-constraint@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/linux-ppc64@0.25.4': - optional: true + '@aws-sdk/middleware-logger@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/linux-riscv64@0.25.4': - optional: true + '@aws-sdk/middleware-recursion-detection@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/linux-s390x@0.25.4': - optional: true + '@aws-sdk/middleware-sdk-ec2@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-format-url': 3.840.0 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/linux-x64@0.25.4': - optional: true + '@aws-sdk/middleware-sdk-rds@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-format-url': 3.840.0 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/netbsd-arm64@0.25.4': - optional: true + '@aws-sdk/middleware-sdk-s3@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-arn-parser': 3.804.0 + '@smithy/core': 3.7.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.3 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 - '@esbuild/netbsd-x64@0.25.4': - optional: true + '@aws-sdk/middleware-ssec@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/openbsd-arm64@0.25.4': - optional: true + '@aws-sdk/middleware-user-agent@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@smithy/core': 3.7.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/openbsd-x64@0.25.4': - optional: true + '@aws-sdk/nested-clients@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.7.0 + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-retry': 4.1.16 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.1.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.23 + '@smithy/util-defaults-mode-node': 4.0.23 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@esbuild/sunos-x64@0.25.4': - optional: true + '@aws-sdk/region-config-resolver@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.4 + tslib: 2.8.1 - '@esbuild/win32-arm64@0.25.4': - optional: true + '@aws-sdk/signature-v4-multi-region@3.840.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@esbuild/win32-ia32@0.25.4': - optional: true + '@aws-sdk/token-providers@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/nested-clients': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@esbuild/win32-x64@0.25.4': - optional: true + '@aws-sdk/types@3.840.0': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': + '@aws-sdk/util-arn-parser@3.804.0': dependencies: - eslint: 9.27.0(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 + tslib: 2.8.1 - '@eslint-community/regexpp@4.12.1': {} + '@aws-sdk/util-endpoints@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + '@smithy/util-endpoints': 3.0.6 + tslib: 2.8.1 - '@eslint/compat@1.2.9(eslint@9.27.0(jiti@2.4.2))': - optionalDependencies: - eslint: 9.27.0(jiti@2.4.2) + '@aws-sdk/util-format-url@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/util-locate-window@3.804.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + bowser: 2.11.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.840.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.821.0': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/runtime-corejs3@7.28.0': + dependencies: + core-js-pure: 3.44.0 + + '@babel/runtime@7.27.1': {} + + '@baszalmstra/rattler@0.2.1': {} + + '@breejs/later@4.2.0': {} + + '@cdktf/hcl2json@0.21.0': + dependencies: + fs-extra: 11.3.0 + + '@colors/colors@1.5.0': + optional: true + + '@commitlint/cli@19.8.1(@types/node@22.15.21)(typescript@5.8.3)': + dependencies: + '@commitlint/format': 19.8.1 + '@commitlint/lint': 19.8.1 + '@commitlint/load': 19.8.1(@types/node@22.15.21)(typescript@5.8.3) + '@commitlint/read': 19.8.1 + '@commitlint/types': 19.8.1 + tinyexec: 1.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/config-conventional@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-conventionalcommits: 7.0.2 + + '@commitlint/config-validator@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + ajv: 8.17.1 + + '@commitlint/ensure@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@19.8.1': {} + + '@commitlint/format@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + chalk: 5.4.1 + + '@commitlint/is-ignored@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + semver: 7.7.2 + + '@commitlint/lint@19.8.1': + dependencies: + '@commitlint/is-ignored': 19.8.1 + '@commitlint/parse': 19.8.1 + '@commitlint/rules': 19.8.1 + '@commitlint/types': 19.8.1 + + '@commitlint/load@19.8.1(@types/node@22.15.21)(typescript@5.8.3)': + dependencies: + '@commitlint/config-validator': 19.8.1 + '@commitlint/execute-rule': 19.8.1 + '@commitlint/resolve-extends': 19.8.1 + '@commitlint/types': 19.8.1 + chalk: 5.4.1 + cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@22.15.21)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/message@19.8.1': {} + + '@commitlint/parse@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + + '@commitlint/read@19.8.1': + dependencies: + '@commitlint/top-level': 19.8.1 + '@commitlint/types': 19.8.1 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + tinyexec: 1.0.1 + + '@commitlint/resolve-extends@19.8.1': + dependencies: + '@commitlint/config-validator': 19.8.1 + '@commitlint/types': 19.8.1 + global-directory: 4.0.1 + import-meta-resolve: 4.1.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + + '@commitlint/rules@19.8.1': + dependencies: + '@commitlint/ensure': 19.8.1 + '@commitlint/message': 19.8.1 + '@commitlint/to-lines': 19.8.1 + '@commitlint/types': 19.8.1 + + '@commitlint/to-lines@19.8.1': {} + + '@commitlint/top-level@19.8.1': + dependencies: + find-up: 7.0.0 + + '@commitlint/types@19.8.1': + dependencies: + '@types/conventional-commits-parser': 5.0.1 + chalk: 5.4.1 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@dotenvx/dotenvx@1.44.1': + dependencies: + commander: 11.1.0 + dotenv: 16.5.0 + eciesjs: 0.4.15 + execa: 5.1.1 + fdir: 6.4.4(picomatch@4.0.2) + ignore: 5.3.2 + object-treeify: 1.1.33 + picomatch: 4.0.2 + which: 4.0.0 + + '@ecies/ciphers@0.2.3(@noble/ciphers@1.3.0)': + dependencies: + '@noble/ciphers': 1.3.0 + + '@emnapi/core@1.4.3': + dependencies: + '@emnapi/wasi-threads': 1.0.2 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.0.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.25.4': + optional: true + + '@esbuild/android-arm64@0.25.4': + optional: true + + '@esbuild/android-arm@0.25.4': + optional: true + + '@esbuild/android-x64@0.25.4': + optional: true + + '@esbuild/darwin-arm64@0.25.4': + optional: true + + '@esbuild/darwin-x64@0.25.4': + optional: true + + '@esbuild/freebsd-arm64@0.25.4': + optional: true + + '@esbuild/freebsd-x64@0.25.4': + optional: true + + '@esbuild/linux-arm64@0.25.4': + optional: true + + '@esbuild/linux-arm@0.25.4': + optional: true + + '@esbuild/linux-ia32@0.25.4': + optional: true + + '@esbuild/linux-loong64@0.25.4': + optional: true + + '@esbuild/linux-mips64el@0.25.4': + optional: true + + '@esbuild/linux-ppc64@0.25.4': + optional: true + + '@esbuild/linux-riscv64@0.25.4': + optional: true + + '@esbuild/linux-s390x@0.25.4': + optional: true + + '@esbuild/linux-x64@0.25.4': + optional: true + + '@esbuild/netbsd-arm64@0.25.4': + optional: true + + '@esbuild/netbsd-x64@0.25.4': + optional: true + + '@esbuild/openbsd-arm64@0.25.4': + optional: true + + '@esbuild/openbsd-x64@0.25.4': + optional: true + + '@esbuild/sunos-x64@0.25.4': + optional: true + + '@esbuild/win32-arm64@0.25.4': + optional: true + + '@esbuild/win32-ia32@0.25.4': + optional: true + + '@esbuild/win32-x64@0.25.4': + optional: true + + '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': + dependencies: + eslint: 9.27.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/compat@1.2.9(eslint@9.27.0(jiti@2.4.2))': + optionalDependencies: + eslint: 9.27.0(jiti@2.4.2) '@eslint/config-array@0.20.0': dependencies: @@ -5114,6 +9222,32 @@ snapshots: '@eslint/core': 0.14.0 levn: 0.4.1 + '@gerrit0/mini-shiki@3.8.0': + dependencies: + '@shikijs/engine-oniguruma': 3.8.0 + '@shikijs/langs': 3.8.0 + '@shikijs/themes': 3.8.0 + '@shikijs/types': 3.8.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@gitbeaker/core@38.12.1': + dependencies: + '@gitbeaker/requester-utils': 38.12.1 + qs: 6.14.0 + xcase: 2.0.1 + + '@gitbeaker/requester-utils@38.12.1': + dependencies: + qs: 6.14.0 + xcase: 2.0.1 + + '@gitbeaker/rest@38.12.1': + dependencies: + '@gitbeaker/core': 38.12.1 + '@gitbeaker/requester-utils': 38.12.1 + + '@gwhitney/detect-indent@7.0.1': {} + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -5337,6 +9471,12 @@ snapshots: optionalDependencies: '@types/node': 22.15.21 + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -5346,6 +9486,10 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 @@ -5390,6 +9534,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.4.1(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + '@laynezh/vite-plugin-lib-assets@1.1.0(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)(yaml@2.8.0))': dependencies: escape-string-regexp: 4.0.0 @@ -5425,35 +9577,308 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@parcel/watcher-android-arm64@2.5.1': + '@npmcli/agent@3.0.0': + dependencies: + agent-base: 7.1.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color optional: true - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true + '@npmcli/fs@4.0.0': + dependencies: + semver: 7.7.2 - '@parcel/watcher-darwin-x64@2.5.1': - optional: true + '@octokit/auth-token@4.0.0': {} - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true + '@octokit/auth-token@6.0.0': {} - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true + '@octokit/core@5.2.2': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.1 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true + '@octokit/core@7.0.3': + dependencies: + '@octokit/auth-token': 6.0.0 + '@octokit/graphql': 9.0.1 + '@octokit/request': 10.0.3 + '@octokit/request-error': 7.0.0 + '@octokit/types': 14.1.0 + before-after-hook: 4.0.0 + universal-user-agent: 7.0.3 - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true + '@octokit/endpoint@11.0.0': + dependencies: + '@octokit/types': 14.1.0 + universal-user-agent: 7.0.3 - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true + '@octokit/endpoint@9.0.6': + dependencies: + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true + '@octokit/graphql@7.1.1': + dependencies: + '@octokit/request': 8.4.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true + '@octokit/graphql@9.0.1': + dependencies: + '@octokit/request': 10.0.3 + '@octokit/types': 14.1.0 + universal-user-agent: 7.0.3 + + '@octokit/openapi-types@24.2.0': {} + + '@octokit/openapi-types@25.1.0': {} + + '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.2)': + dependencies: + '@octokit/core': 5.2.2 + '@octokit/types': 13.10.0 + + '@octokit/plugin-paginate-rest@13.1.1(@octokit/core@7.0.3)': + dependencies: + '@octokit/core': 7.0.3 + '@octokit/types': 14.1.0 + + '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)': + dependencies: + '@octokit/core': 5.2.2 + + '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)': + dependencies: + '@octokit/core': 5.2.2 + '@octokit/types': 13.10.0 + + '@octokit/plugin-retry@8.0.1(@octokit/core@7.0.3)': + dependencies: + '@octokit/core': 7.0.3 + '@octokit/request-error': 7.0.0 + '@octokit/types': 14.1.0 + bottleneck: 2.19.5 + + '@octokit/plugin-throttling@11.0.1(@octokit/core@7.0.3)': + dependencies: + '@octokit/core': 7.0.3 + '@octokit/types': 14.1.0 + bottleneck: 2.19.5 + + '@octokit/request-error@5.1.1': + dependencies: + '@octokit/types': 13.10.0 + deprecation: 2.3.1 + once: 1.4.0 + + '@octokit/request-error@7.0.0': + dependencies: + '@octokit/types': 14.1.0 + + '@octokit/request@10.0.3': + dependencies: + '@octokit/endpoint': 11.0.0 + '@octokit/request-error': 7.0.0 + '@octokit/types': 14.1.0 + fast-content-type-parse: 3.0.0 + universal-user-agent: 7.0.3 + + '@octokit/request@8.4.1': + dependencies: + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/rest@20.1.2': + dependencies: + '@octokit/core': 5.2.2 + '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.2) + '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.2) + '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.2) + + '@octokit/types@13.10.0': + dependencies: + '@octokit/openapi-types': 24.2.0 + + '@octokit/types@14.1.0': + dependencies: + '@octokit/openapi-types': 25.1.0 + + '@one-ini/wasm@0.2.0': {} + + '@opentelemetry/api-logs@0.202.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/exporter-trace-otlp-http@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/instrumentation-bunyan@0.48.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.202.0 + '@opentelemetry/instrumentation': 0.202.0(@opentelemetry/api@1.9.0) + '@types/bunyan': 1.8.11 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-http@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + forwarded-parse: 2.1.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.202.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 7.5.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/otlp-exporter-base@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.202.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-transformer@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.202.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + protobufjs: 7.5.3 + + '@opentelemetry/resource-detector-aws@2.2.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/resource-detector-azure@0.9.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/resource-detector-gcp@0.36.0(@opentelemetry/api@1.9.0)(encoding@0.1.13)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + gcp-metadata: 6.1.1(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + '@opentelemetry/resource-detector-github@0.31.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/sdk-logs@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.202.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/semantic-conventions@1.34.0': {} + + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true '@parcel/watcher-win32-arm64@2.5.1': optional: true @@ -5491,10 +9916,113 @@ snapshots: '@pkgr/core@0.2.4': {} + '@pnpm/catalogs.protocol-parser@1001.0.0': {} + + '@pnpm/catalogs.resolver@1000.0.3': + dependencies: + '@pnpm/catalogs.protocol-parser': 1001.0.0 + '@pnpm/error': 1000.0.2 + + '@pnpm/catalogs.types@1000.0.0': {} + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/constants@1001.1.0': {} + + '@pnpm/constants@6.1.0': {} + + '@pnpm/error@1000.0.2': + dependencies: + '@pnpm/constants': 1001.1.0 + + '@pnpm/error@4.0.0': + dependencies: + '@pnpm/constants': 6.1.0 + + '@pnpm/graceful-fs@2.0.0': + dependencies: + graceful-fs: 4.2.11 + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@pnpm/parse-overrides@1001.0.0': + dependencies: + '@pnpm/catalogs.resolver': 1000.0.3 + '@pnpm/catalogs.types': 1000.0.0 + '@pnpm/error': 1000.0.2 + '@pnpm/parse-wanted-dependency': 1001.0.0 + + '@pnpm/parse-wanted-dependency@1001.0.0': + dependencies: + validate-npm-package-name: 5.0.0 + + '@pnpm/read-project-manifest@4.1.1': + dependencies: + '@gwhitney/detect-indent': 7.0.1 + '@pnpm/error': 4.0.0 + '@pnpm/graceful-fs': 2.0.0 + '@pnpm/text.comments-parser': 1.0.0 + '@pnpm/types': 8.9.0 + '@pnpm/write-project-manifest': 4.1.1 + fast-deep-equal: 3.1.3 + is-windows: 1.0.2 + json5: 2.2.3 + parse-json: 5.2.0 + read-yaml-file: 2.1.0 + sort-keys: 4.2.0 + strip-bom: 4.0.0 + + '@pnpm/text.comments-parser@1.0.0': + dependencies: + strip-comments-strings: 1.2.0 + + '@pnpm/types@8.9.0': {} + + '@pnpm/util.lex-comparator@1.0.0': {} + + '@pnpm/write-project-manifest@4.1.1': + dependencies: + '@pnpm/text.comments-parser': 1.0.0 + '@pnpm/types': 8.9.0 + json5: 2.2.3 + write-file-atomic: 5.0.1 + write-yaml-file: 4.2.0 + '@promptbook/utils@0.69.5': dependencies: spacetrim: 0.11.59 + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + '@puppeteer/browsers@2.10.5': dependencies: debug: 4.4.1(supports-color@8.1.1) @@ -5508,6 +10036,74 @@ snapshots: - bare-buffer - supports-color + '@qnighy/marshal@0.1.3': + dependencies: + '@babel/runtime-corejs3': 7.28.0 + + '@redis/bloom@1.2.0(@redis/client@1.6.1)': + dependencies: + '@redis/client': 1.6.1 + + '@redis/client@1.6.1': + dependencies: + cluster-key-slot: 1.1.2 + generic-pool: 3.9.0 + yallist: 4.0.0 + + '@redis/graph@1.1.1(@redis/client@1.6.1)': + dependencies: + '@redis/client': 1.6.1 + + '@redis/json@1.0.7(@redis/client@1.6.1)': + dependencies: + '@redis/client': 1.6.1 + + '@redis/search@1.2.0(@redis/client@1.6.1)': + dependencies: + '@redis/client': 1.6.1 + + '@redis/time-series@1.1.0(@redis/client@1.6.1)': + dependencies: + '@redis/client': 1.6.1 + + '@renovatebot/detect-tools@1.1.0': + dependencies: + fs-extra: 11.3.0 + toml-eslint-parser: 0.10.0 + upath: 2.0.1 + zod: 3.25.76 + + '@renovatebot/kbpgp@4.0.1': + dependencies: + bn: 1.0.5 + bzip-deflate: 1.0.0 + iced-error: 0.0.13 + iced-lock: 2.0.1 + iced-runtime-3: 3.0.5 + keybase-ecurve: 1.0.1 + keybase-nacl: 1.1.4 + minimist: 1.2.8 + pgp-utils: 0.0.35 + purepack: 1.0.6 + triplesec: 4.0.3 + tweetnacl: 1.0.3 + + '@renovatebot/osv-offline-db@1.7.4': + dependencies: + '@seald-io/nedb': 4.1.2 + + '@renovatebot/osv-offline@1.6.6': + dependencies: + '@renovatebot/osv-offline-db': 1.7.4 + adm-zip: 0.5.16 + fs-extra: 11.3.0 + got: 11.8.6 + luxon: 3.6.1 + + '@renovatebot/pep440@4.1.0': {} + + '@renovatebot/ruby-semver@4.0.0': {} + '@rollup/plugin-inject@5.0.5(rollup@4.41.0)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.41.0) @@ -5582,23 +10178,485 @@ snapshots: '@rollup/rollup-linux-x64-musl@4.41.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.41.0': - optional: true + '@rollup/rollup-win32-arm64-msvc@4.41.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.41.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.41.0': + optional: true + + '@rtsao/scc@1.1.0': + optional: true + + '@seald-io/binary-search-tree@1.0.3': {} + + '@seald-io/nedb@4.1.2': + dependencies: + '@seald-io/binary-search-tree': 1.0.3 + localforage: 1.10.0 + util: 0.12.5 + + '@sec-ant/readable-stream@0.4.1': {} + + '@semantic-release/changelog@6.0.3(semantic-release@24.2.7(typescript@5.8.3))': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + fs-extra: 11.3.0 + lodash: 4.17.21 + semantic-release: 24.2.7(typescript@5.8.3) + + '@semantic-release/commit-analyzer@13.0.1(semantic-release@24.2.7(typescript@5.8.3))': + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.2.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.2.0 + debug: 4.4.1(supports-color@8.1.1) + import-from-esm: 2.0.0 + lodash-es: 4.17.21 + micromatch: 4.0.8 + semantic-release: 24.2.7(typescript@5.8.3) + transitivePeerDependencies: + - supports-color + + '@semantic-release/error@3.0.0': {} + + '@semantic-release/error@4.0.0': {} + + '@semantic-release/git@10.0.1(semantic-release@24.2.7(typescript@5.8.3))': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + debug: 4.4.1(supports-color@8.1.1) + dir-glob: 3.0.1 + execa: 5.1.1 + lodash: 4.17.21 + micromatch: 4.0.8 + p-reduce: 2.1.0 + semantic-release: 24.2.7(typescript@5.8.3) + transitivePeerDependencies: + - supports-color + + '@semantic-release/github@11.0.3(semantic-release@24.2.7(typescript@5.8.3))': + dependencies: + '@octokit/core': 7.0.3 + '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.3) + '@octokit/plugin-retry': 8.0.1(@octokit/core@7.0.3) + '@octokit/plugin-throttling': 11.0.1(@octokit/core@7.0.3) + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + debug: 4.4.1(supports-color@8.1.1) + dir-glob: 3.0.1 + globby: 14.1.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + issue-parser: 7.0.1 + lodash-es: 4.17.21 + mime: 4.0.7 + p-filter: 4.1.0 + semantic-release: 24.2.7(typescript@5.8.3) + url-join: 5.0.0 + transitivePeerDependencies: + - supports-color + + '@semantic-release/npm@12.0.2(semantic-release@24.2.7(typescript@5.8.3))': + dependencies: + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + execa: 9.5.3 + fs-extra: 11.3.0 + lodash-es: 4.17.21 + nerf-dart: 1.0.0 + normalize-url: 8.0.2 + npm: 10.9.3 + rc: 1.2.8 + read-pkg: 9.0.1 + registry-auth-token: 5.1.0 + semantic-release: 24.2.7(typescript@5.8.3) + semver: 7.7.2 + tempy: 3.1.0 + + '@semantic-release/release-notes-generator@14.0.3(semantic-release@24.2.7(typescript@5.8.3))': + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.2.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.2.0 + debug: 4.4.1(supports-color@8.1.1) + get-stream: 7.0.1 + import-from-esm: 2.0.0 + into-stream: 7.0.0 + lodash-es: 4.17.21 + read-package-up: 11.0.0 + semantic-release: 24.2.7(typescript@5.8.3) + transitivePeerDependencies: + - supports-color + + '@shikijs/engine-oniguruma@3.8.0': + dependencies: + '@shikijs/types': 3.8.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.8.0': + dependencies: + '@shikijs/types': 3.8.0 + + '@shikijs/themes@3.8.0': + dependencies: + '@shikijs/types': 3.8.0 + + '@shikijs/types@3.8.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/is@7.0.2': {} + + '@sindresorhus/merge-streams@2.3.0': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@smithy/abort-controller@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader-native@4.0.0': + dependencies: + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader@5.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/config-resolver@4.1.4': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.4 + tslib: 2.8.1 + + '@smithy/core@3.7.0': + dependencies: + '@smithy/middleware-serde': 4.0.8 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.3 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.0.6': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.0.4': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.0.4': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.1.2': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.0.4': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.0.4': + dependencies: + '@smithy/eventstream-codec': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.1.0': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-blob-browser@4.0.4': + dependencies: + '@smithy/chunked-blob-reader': 5.0.0 + '@smithy/chunked-blob-reader-native': 4.0.0 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/hash-node@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-stream-node@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/is-array-buffer@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/md5-js@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.0.4': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.1.15': + dependencies: + '@smithy/core': 3.7.0 + '@smithy/middleware-serde': 4.0.8 + '@smithy/node-config-provider': 4.1.3 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-middleware': 4.0.4 + tslib: 2.8.1 + + '@smithy/middleware-retry@4.1.16': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/service-error-classification': 4.0.6 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + tslib: 2.8.1 + uuid: 9.0.1 + + '@smithy/middleware-serde@4.0.8': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.1.3': + dependencies: + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.1.0': + dependencies: + '@smithy/abort-controller': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/property-provider@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/protocol-http@5.1.2': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/service-error-classification@4.0.6': + dependencies: + '@smithy/types': 4.3.1 + + '@smithy/shared-ini-file-loader@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/signature-v4@5.1.2': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-uri-escape': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/smithy-client@4.4.7': + dependencies: + '@smithy/core': 3.7.0 + '@smithy/middleware-endpoint': 4.1.15 + '@smithy/middleware-stack': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.3 + tslib: 2.8.1 + + '@smithy/types@4.3.1': + dependencies: + tslib: 2.8.1 + + '@smithy/url-parser@4.0.4': + dependencies: + '@smithy/querystring-parser': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-base64@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-body-length-browser@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.0.0': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-config-provider@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.0.23': + dependencies: + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + bowser: 2.11.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.0.23': + dependencies: + '@smithy/config-resolver': 4.1.4 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.7 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.0.6': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.0.0': + dependencies: + tslib: 2.8.1 - '@rollup/rollup-win32-ia32-msvc@4.41.0': - optional: true + '@smithy/util-middleware@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@rollup/rollup-win32-x64-msvc@4.41.0': - optional: true + '@smithy/util-retry@4.0.6': + dependencies: + '@smithy/service-error-classification': 4.0.6 + '@smithy/types': 4.3.1 + tslib: 2.8.1 - '@rtsao/scc@1.1.0': - optional: true + '@smithy/util-stream@4.2.3': + dependencies: + '@smithy/fetch-http-handler': 5.1.0 + '@smithy/node-http-handler': 4.1.0 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 - '@sec-ant/readable-stream@0.4.1': {} + '@smithy/util-uri-escape@4.0.0': + dependencies: + tslib: 2.8.1 - '@sinclair/typebox@0.27.8': {} + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 - '@sindresorhus/merge-streams@4.0.0': {} + '@smithy/util-utf8@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-waiter@4.0.6': + dependencies: + '@smithy/abort-controller': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 '@swc/core-darwin-arm64@1.11.24': optional: true @@ -5652,6 +10710,49 @@ snapshots: dependencies: '@swc/counter': 0.1.3 + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@thi.ng/api@7.2.0': {} + + '@thi.ng/arrays@1.0.3': + dependencies: + '@thi.ng/api': 7.2.0 + '@thi.ng/checks': 2.9.11 + '@thi.ng/compare': 1.3.34 + '@thi.ng/equiv': 1.0.45 + '@thi.ng/errors': 1.3.4 + '@thi.ng/random': 2.4.8 + + '@thi.ng/checks@2.9.11': + dependencies: + tslib: 2.8.1 + + '@thi.ng/compare@1.3.34': + dependencies: + '@thi.ng/api': 7.2.0 + + '@thi.ng/equiv@1.0.45': {} + + '@thi.ng/errors@1.3.4': {} + + '@thi.ng/hex@1.0.4': {} + + '@thi.ng/random@2.4.8': + dependencies: + '@thi.ng/api': 7.2.0 + '@thi.ng/checks': 2.9.11 + '@thi.ng/hex': 1.0.4 + + '@thi.ng/zipper@1.0.3': + dependencies: + '@thi.ng/api': 7.2.0 + '@thi.ng/arrays': 1.0.3 + '@thi.ng/checks': 2.9.11 + + '@tootallnate/once@2.0.0': {} + '@tootallnate/quickjs-emscripten@0.23.0': {} '@tsconfig/node10@1.0.11': {} @@ -5667,11 +10768,32 @@ snapshots: tslib: 2.8.1 optional: true + '@types/bunyan@1.8.11': + dependencies: + '@types/node': 22.15.21 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 22.15.21 + '@types/responselike': 1.0.3 + '@types/chrome@0.0.323': dependencies: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 + '@types/conventional-commits-parser@5.0.1': + dependencies: + '@types/node': 22.15.21 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/emscripten@1.40.1': {} + '@types/eslint-plugin-jsx-a11y@6.10.0': dependencies: '@types/eslint': 9.6.1 @@ -5693,6 +10815,12 @@ snapshots: '@types/har-format@1.2.16': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/http-cache-semantics@4.0.4': {} + '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -5708,11 +10836,25 @@ snapshots: '@types/json5@0.0.29': optional: true + '@types/keyv@3.1.4': + dependencies: + '@types/node': 22.15.21 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/minimist@1.2.5': {} + '@types/mocha@10.0.10': {} + '@types/moo@0.5.5': {} + + '@types/ms@2.1.0': {} + '@types/mute-stream@0.0.4': dependencies: - '@types/node': 20.17.50 + '@types/node': 22.15.21 '@types/node@20.17.50': dependencies: @@ -5724,6 +10866,10 @@ snapshots: '@types/normalize-package-data@2.4.4': {} + '@types/parse-path@7.1.0': + dependencies: + parse-path: 7.1.0 + '@types/react-dom@19.1.5(@types/react@19.1.5)': dependencies: '@types/react': 19.1.5 @@ -5732,10 +10878,22 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/responselike@1.0.3': + dependencies: + '@types/node': 22.15.21 + + '@types/semver@7.7.0': {} + '@types/sinonjs__fake-timers@8.1.5': {} '@types/stack-utils@2.0.3': {} + '@types/treeify@1.0.3': {} + + '@types/unist@3.0.3': {} + + '@types/uuid@9.0.8': {} + '@types/which@2.0.2': {} '@types/wrap-ansi@3.0.0': {} @@ -5752,7 +10910,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.17.50 + '@types/node': 22.15.21 optional: true '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': @@ -6146,8 +11304,75 @@ snapshots: '@xtuc/long@4.2.2': {} + '@yarnpkg/core@4.4.2(typanion@3.14.0)': + dependencies: + '@arcanis/slice-ansi': 1.1.1 + '@types/semver': 7.7.0 + '@types/treeify': 1.0.3 + '@yarnpkg/fslib': 3.1.2 + '@yarnpkg/libzip': 3.2.1(@yarnpkg/fslib@3.1.2) + '@yarnpkg/parsers': 3.0.3 + '@yarnpkg/shell': 4.1.3(typanion@3.14.0) + camelcase: 5.3.1 + chalk: 4.1.2 + ci-info: 4.3.0 + clipanion: 4.0.0-rc.4(typanion@3.14.0) + cross-spawn: 7.0.6 + diff: 5.2.0 + dotenv: 16.5.0 + fast-glob: 3.3.3 + got: 11.8.6 + hpagent: 1.2.0 + lodash: 4.17.21 + micromatch: 4.0.8 + p-limit: 2.3.0 + semver: 7.7.2 + strip-ansi: 6.0.1 + tar: 6.2.1 + tinylogic: 2.0.0 + treeify: 1.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - typanion + + '@yarnpkg/fslib@3.1.2': + dependencies: + tslib: 2.8.1 + + '@yarnpkg/libzip@3.2.1(@yarnpkg/fslib@3.1.2)': + dependencies: + '@types/emscripten': 1.40.1 + '@yarnpkg/fslib': 3.1.2 + tslib: 2.8.1 + + '@yarnpkg/parsers@3.0.3': + dependencies: + js-yaml: 3.14.1 + tslib: 2.8.1 + + '@yarnpkg/shell@4.1.3(typanion@3.14.0)': + dependencies: + '@yarnpkg/fslib': 3.1.2 + '@yarnpkg/parsers': 3.0.3 + chalk: 4.1.2 + clipanion: 4.0.0-rc.4(typanion@3.14.0) + cross-spawn: 7.0.6 + fast-glob: 3.3.3 + micromatch: 4.0.8 + tslib: 2.8.1 + transitivePeerDependencies: + - typanion + '@zip.js/zip.js@2.7.62': {} + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abbrev@3.0.1: + optional: true + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -6166,8 +11391,30 @@ snapshots: acorn@8.14.1: {} + adm-zip@0.5.16: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.1(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + agent-base@7.1.3: {} + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + aggregate-error@5.0.0: + dependencies: + clean-stack: 5.2.0 + indent-string: 5.0.0 + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 @@ -6209,6 +11456,10 @@ snapshots: ansi-regex@6.1.0: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -6248,8 +11499,14 @@ snapshots: arg@5.0.2: {} + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} + argv-formatter@1.0.0: {} + aria-query@5.3.2: {} array-buffer-byte-length@1.0.2: @@ -6257,6 +11514,8 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 + array-ify@1.0.0: {} + array-includes@3.1.8: dependencies: call-bind: 1.0.8 @@ -6320,6 +11579,8 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 + arrify@1.0.1: {} + asn1.js@4.10.1: dependencies: bn.js: 4.12.2 @@ -6344,8 +11605,18 @@ snapshots: async-function@1.0.0: {} + async-mutex@0.5.0: + dependencies: + tslib: 2.8.1 + + async-retry@1.2.3: + dependencies: + retry: 0.12.0 + async@3.2.6: {} + auth-header@1.0.0: {} + autoprefixer@10.4.21(postcss@8.5.3): dependencies: browserslist: 4.24.5 @@ -6360,12 +11631,23 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 + aws4@1.13.2: {} + axe-core@4.10.3: {} axobject-query@4.1.0: {} + azure-devops-node-api@15.1.0: + dependencies: + tunnel: 0.0.6 + typed-rest-client: 2.1.0 + b4a@1.6.7: {} + backslash@0.2.0: {} + + bail@2.0.2: {} + balanced-match@1.0.2: {} bare-events@2.5.4: @@ -6397,14 +11679,46 @@ snapshots: basic-ftp@5.0.5: {} + before-after-hook@2.2.3: {} + + before-after-hook@4.0.0: {} + + better-sqlite3@12.2.0: + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.3 + optional: true + + bignumber.js@9.3.1: {} + binary-extensions@2.3.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + optional: true + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + bn.js@4.12.2: {} bn.js@5.2.2: {} + bn@1.0.5: {} + boolbase@1.0.0: {} + boolean@3.2.0: {} + + bottleneck@2.19.5: {} + + bowser@2.11.0: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -6482,6 +11796,8 @@ snapshots: buffer-crc32@1.0.0: {} + buffer-equal-constant-time@1.0.1: {} + buffer-from@1.1.2: {} buffer-xor@1.0.3: {} @@ -6498,6 +11814,46 @@ snapshots: builtin-status-codes@3.0.0: {} + builtins@5.1.0: + dependencies: + semver: 7.7.2 + + bunyan@1.8.15: + optionalDependencies: + dtrace-provider: 0.8.8 + moment: 2.30.1 + mv: 2.1.1 + safe-json-stringify: 1.2.0 + + bzip-deflate@1.0.0: {} + + cacache@19.0.1: + dependencies: + '@npmcli/fs': 4.0.0 + fs-minipass: 3.0.3 + glob: 10.4.5 + lru-cache: 10.4.3 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 7.0.3 + ssri: 12.0.0 + tar: 7.4.3 + unique-filename: 4.0.0 + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -6519,10 +11875,24 @@ snapshots: camelcase-css@2.0.1: {} + camelcase-keys@6.2.2: + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + camelcase@5.3.1: {} + camelcase@6.3.0: {} caniuse-lite@1.0.30001718: {} + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -6530,6 +11900,12 @@ snapshots: chalk@5.4.1: {} + changelog-filename-regex@2.0.1: {} + + char-regex@1.0.2: {} + + character-entities@2.0.2: {} + chardet@0.7.0: {} cheerio-select@2.1.0: @@ -6571,19 +11947,53 @@ snapshots: dependencies: readdirp: 4.1.2 + chownr@1.1.4: + optional: true + + chownr@2.0.0: {} + + chownr@3.0.0: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} + ci-info@4.3.0: {} + cipher-base@1.0.6: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 + cjs-module-lexer@1.4.3: {} + + clean-git-ref@2.0.1: {} + + clean-stack@2.2.0: {} + + clean-stack@5.2.0: + dependencies: + escape-string-regexp: 5.0.0 + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 + cli-highlight@2.1.11: + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -6591,6 +12001,16 @@ snapshots: cli-width@4.1.0: {} + clipanion@4.0.0-rc.4(typanion@3.14.0): + dependencies: + typanion: 3.14.0 + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -6603,47 +12023,134 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + clone@1.0.4: optional: true clsx@2.1.1: {} + cluster-key-slot@1.1.2: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} colorette@2.0.20: {} + colors@1.4.0: {} + commander@11.1.0: {} commander@13.1.0: {} - commander@2.20.3: {} + commander@14.0.0: {} + + commander@2.20.3: {} + + commander@4.1.1: {} + + commander@9.5.0: {} + + comment-parser@1.4.1: {} + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + concat-map@0.0.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + console-browserify@1.2.0: {} + + constants-browserify@1.0.0: {} + + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-angular@8.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@7.0.2: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-writer@8.2.0: + dependencies: + conventional-commits-filter: 5.0.0 + handlebars: 4.7.8 + meow: 13.2.0 + semver: 7.7.2 - commander@4.1.1: {} + conventional-commits-detector@1.0.3: + dependencies: + arrify: 1.0.1 + git-raw-commits: 2.0.11 + meow: 7.1.1 + through2-concurrent: 2.0.0 - commander@9.5.0: {} + conventional-commits-filter@5.0.0: {} - comment-parser@1.4.1: {} + conventional-commits-parser@5.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 - compress-commons@6.0.2: + conventional-commits-parser@6.2.0: dependencies: - crc-32: 1.2.2 - crc32-stream: 6.0.0 - is-stream: 2.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 + meow: 13.2.0 - concat-map@0.0.1: {} + convert-hrtime@5.0.0: {} - console-browserify@1.2.0: {} + core-js-pure@3.44.0: {} - constants-browserify@1.0.0: {} + core-js@3.44.0: {} core-util-is@1.0.3: {} + cosmiconfig-typescript-loader@6.1.0(@types/node@22.15.21)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): + dependencies: + '@types/node': 22.15.21 + cosmiconfig: 9.0.0(typescript@5.8.3) + jiti: 2.4.2 + typescript: 5.8.3 + + cosmiconfig@9.0.0(typescript@5.8.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.8.3 + crc-32@1.2.2: {} crc32-stream@6.0.0: @@ -6675,6 +12182,10 @@ snapshots: create-require@1.1.1: {} + croner@9.1.0: {} + + cronstrue@2.61.0: {} + cross-env@7.0.3: dependencies: cross-spawn: 7.0.6 @@ -6700,6 +12211,10 @@ snapshots: randombytes: 2.1.0 randomfill: 1.0.4 + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + css-select@5.1.0: dependencies: boolbase: 1.0.0 @@ -6720,6 +12235,53 @@ snapshots: damerau-levenshtein@1.0.8: {} + danger@13.0.4(encoding@0.1.13): + dependencies: + '@gitbeaker/rest': 38.12.1 + '@octokit/rest': 20.1.2 + async-retry: 1.2.3 + chalk: 2.4.2 + commander: 2.20.3 + core-js: 3.44.0 + debug: 4.4.1(supports-color@8.1.1) + fast-json-patch: 3.1.1 + get-stdin: 6.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + hyperlinker: 1.0.0 + ini: 5.0.0 + json5: 2.2.3 + jsonpointer: 5.0.1 + jsonwebtoken: 9.0.2 + lodash.find: 4.6.0 + lodash.includes: 4.3.0 + lodash.isobject: 3.0.2 + lodash.keys: 4.2.0 + lodash.mapvalues: 4.6.0 + lodash.memoize: 4.1.2 + memfs-or-file-map-to-github-branch: 1.3.0 + micromatch: 4.0.8 + node-cleanup: 2.1.2 + node-fetch: 2.7.0(encoding@0.1.13) + override-require: 1.1.1 + p-limit: 2.3.0 + parse-diff: 0.7.1 + parse-github-url: 1.0.3 + parse-link-header: 2.0.0 + pinpoint: 1.1.0 + prettyjson: 1.2.5 + readline-sync: 1.4.10 + regenerator-runtime: 0.13.11 + require-from-string: 2.0.2 + supports-hyperlinks: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + dargs@7.0.0: {} + + dargs@8.1.0: {} + data-uri-to-buffer@4.0.1: {} data-uri-to-buffer@6.0.2: {} @@ -6752,10 +12314,27 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + decamelize@4.0.0: {} decamelize@6.0.0: {} + decode-named-character-reference@1.2.0: + dependencies: + character-entities: 2.0.2 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-extend@0.6.0: {} + deep-is@0.1.4: {} deepmerge-ts@7.1.5: {} @@ -6767,6 +12346,8 @@ snapshots: clone: 1.0.4 optional: true + defer-to-connect@2.0.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -6785,14 +12366,29 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 + deprecation@2.3.1: {} + + dequal@2.0.3: {} + des.js@1.1.0: dependencies: inherits: 2.0.4 minimalistic-assert: 1.0.1 + detect-indent@7.0.1: {} + detect-libc@1.0.3: optional: true + detect-libc@2.0.4: + optional: true + + detect-node@2.1.0: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + didyoumean@1.2.2: {} diff-sequences@29.6.3: {} @@ -6803,6 +12399,8 @@ snapshots: diff@7.0.0: {} + diff@8.0.2: {} + diffie-hellman@5.0.3: dependencies: bn.js: 4.12.2 @@ -6839,14 +12437,27 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + dotenv@16.5.0: {} + dtrace-provider@0.8.8: + dependencies: + nan: 2.23.0 + optional: true + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + eastasianwidth@0.2.0: {} easy-table@1.2.0: @@ -6855,6 +12466,10 @@ snapshots: optionalDependencies: wcwidth: 1.0.1 + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + eciesjs@0.4.15: dependencies: '@ecies/ciphers': 0.2.3(@noble/ciphers@1.3.0) @@ -6881,6 +12496,13 @@ snapshots: transitivePeerDependencies: - supports-color + editorconfig@3.0.1: + dependencies: + '@one-ini/wasm': 0.2.0 + commander: 14.0.0 + minimatch: 10.0.1 + semver: 7.7.2 + ejs@3.1.10: dependencies: jake: 10.9.2 @@ -6897,17 +12519,30 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + email-addresses@5.0.0: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + emojibase-regex@16.0.0: {} + + emojibase@16.0.0: {} + + emojilib@2.4.0: {} + encoding-sniffer@0.2.0: dependencies: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -6921,8 +12556,18 @@ snapshots: entities@6.0.0: {} + env-ci@11.1.1: + dependencies: + execa: 8.0.1 + java-properties: 1.0.2 + + env-paths@2.2.1: {} + environment@1.1.0: {} + err-code@2.0.3: + optional: true + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -7027,6 +12672,8 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + es6-error@4.1.1: {} + esbuild@0.25.4: optionalDependencies: '@esbuild/aix-ppc64': 0.25.4 @@ -7057,10 +12704,14 @@ snapshots: escalade@3.2.0: {} + escape-string-regexp@1.0.5: {} + escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -7175,10 +12826,10 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-prettier@5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(prettier@3.5.3): + eslint-plugin-prettier@5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(prettier@3.6.2): dependencies: eslint: 9.27.0(jiti@2.4.2) - prettier: 3.5.3 + prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.6 optionalDependencies: @@ -7322,6 +12973,18 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + execa@9.5.3: dependencies: '@sindresorhus/merge-streams': 4.0.0 @@ -7337,6 +13000,9 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.1.1 + expand-template@2.0.3: + optional: true + expect-webdriverio@5.1.0(@wdio/globals@9.14.0(@wdio/logger@9.4.4))(@wdio/logger@9.4.4)(webdriverio@9.14.0): dependencies: '@vitest/snapshot': 2.1.9 @@ -7355,6 +13021,11 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + exponential-backoff@3.1.2: + optional: true + + extend@3.0.2: {} + external-editor@3.1.0: dependencies: chardet: 0.7.0 @@ -7371,6 +13042,8 @@ snapshots: transitivePeerDependencies: - supports-color + fast-content-type-parse@3.0.0: {} + fast-deep-equal@2.0.1: {} fast-deep-equal@3.1.3: {} @@ -7387,12 +13060,18 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-json-patch@3.1.1: {} + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} fast-uri@3.0.6: {} + fast-xml-parser@4.4.1: + dependencies: + strnum: 1.1.2 + fast-xml-parser@4.5.3: dependencies: strnum: 1.1.2 @@ -7416,6 +13095,10 @@ snapshots: fflate@0.8.2: {} + figures@2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + figures@6.1.0: dependencies: is-unicode-supported: 2.1.0 @@ -7426,6 +13109,9 @@ snapshots: file-saver@2.0.5: {} + file-uri-to-path@1.0.0: + optional: true + filelist@1.0.4: dependencies: minimatch: 5.1.6 @@ -7434,6 +13120,25 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-packages@10.0.4: + dependencies: + '@pnpm/read-project-manifest': 4.1.1 + '@pnpm/types': 8.9.0 + '@pnpm/util.lex-comparator': 1.0.0 + fast-glob: 3.3.3 + p-filter: 2.1.0 + + find-up-simple@1.0.1: {} + + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -7444,6 +13149,17 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 + find-up@7.0.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + + find-versions@6.0.0: + dependencies: + semver-regex: 4.0.5 + super-regex: 1.0.0 + flat-cache@4.0.1: dependencies: flatted: 3.3.3 @@ -7466,8 +13182,32 @@ snapshots: dependencies: fetch-blob: 3.2.0 + forwarded-parse@2.1.2: {} + fraction.js@4.3.7: {} + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + fs-constants@1.0.0: + optional: true + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.2 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -7475,6 +13215,8 @@ snapshots: function-bind@1.1.2: {} + function-timeout@1.0.2: {} + function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 @@ -7486,6 +13228,42 @@ snapshots: functions-have-names@1.2.3: {} + gaxios@6.7.1(encoding@0.1.13): + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + is-stream: 2.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + gaxios@7.1.1: + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + node-fetch: 3.3.2 + transitivePeerDependencies: + - supports-color + + gcp-metadata@6.1.1(encoding@0.1.13): + dependencies: + gaxios: 6.7.1(encoding@0.1.13) + google-logging-utils: 0.0.2 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + gcp-metadata@7.0.1: + dependencies: + gaxios: 7.1.1 + google-logging-utils: 1.1.1 + json-bigint: 1.0.0 + transitivePeerDependencies: + - supports-color + geckodriver@5.0.0: dependencies: '@wdio/logger': 9.4.4 @@ -7500,6 +13278,8 @@ snapshots: - bare-buffer - supports-color + generic-pool@3.9.0: {} + get-caller-file@2.0.5: {} get-east-asian-width@1.3.0: {} @@ -7524,12 +13304,18 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stdin@6.0.0: {} + get-stream@5.2.0: dependencies: pump: 3.0.2 get-stream@6.0.1: {} + get-stream@7.0.1: {} + + get-stream@8.0.1: {} + get-stream@9.0.1: dependencies: '@sec-ant/readable-stream': 0.4.1 @@ -7553,6 +13339,47 @@ snapshots: transitivePeerDependencies: - supports-color + git-log-parser@1.2.1: + dependencies: + argv-formatter: 1.0.0 + spawn-error-forwarder: 1.0.0 + split2: 1.0.0 + stream-combiner2: 1.1.1 + through2: 2.0.5 + traverse: 0.6.8 + + git-raw-commits@2.0.11: + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + + git-raw-commits@4.0.0: + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 + + git-secrets@0.0.11: + dependencies: + yargs: 15.4.1 + + git-up@8.1.1: + dependencies: + is-ssh: 1.4.1 + parse-url: 9.2.0 + + git-url-parse@16.1.0: + dependencies: + git-up: 8.1.1 + + github-from-package@0.0.0: + optional: true + + github-url-from-git@1.5.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -7581,6 +13408,24 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 2.0.0 + glob@11.0.3: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.0.3 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + + glob@6.0.4: + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + optional: true + glob@8.1.0: dependencies: fs.realpath: 1.0.0 @@ -7589,6 +13434,19 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.7.2 + serialize-error: 7.0.1 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + globals@14.0.0: {} globals@16.1.0: {} @@ -7607,16 +13465,88 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@14.1.0: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.4 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 + + good-enough-parser@1.1.23: + dependencies: + '@thi.ng/zipper': 1.0.3 + '@types/moo': 0.5.5 + klona: 2.0.6 + moo: 0.5.2 + + google-auth-library@10.1.0: + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 7.1.1 + gcp-metadata: 7.0.1 + google-logging-utils: 1.1.1 + gtoken: 8.0.0 + jws: 4.0.0 + transitivePeerDependencies: + - supports-color + + google-logging-utils@0.0.2: {} + + google-logging-utils@1.1.1: {} + gopd@1.2.0: {} + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.10: {} + graceful-fs@4.2.11: {} + graph-data-structure@4.5.0: {} + grapheme-splitter@1.0.4: {} graphemer@1.4.0: {} + gtoken@8.0.0: + dependencies: + gaxios: 7.1.1 + jws: 4.0.0 + transitivePeerDependencies: + - supports-color + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + hard-rejection@2.1.0: {} + has-bigints@1.1.0: {} + has-flag@2.0.0: {} + + has-flag@3.0.0: {} + has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -7649,16 +13579,32 @@ snapshots: he@1.2.0: {} + highlight.js@10.7.3: {} + hmac-drbg@1.0.1: dependencies: hash.js: 1.1.7 minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + hook-std@3.0.0: {} + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + hosted-git-info@7.0.2: dependencies: lru-cache: 10.4.3 + hosted-git-info@8.1.0: + dependencies: + lru-cache: 10.4.3 + + hpagent@1.2.0: {} + htmlfy@0.6.7: {} htmlparser2@9.1.0: @@ -7668,6 +13614,16 @@ snapshots: domutils: 3.2.2 entities: 4.5.0 + http-cache-semantics@4.2.0: {} + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.1(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 @@ -7675,8 +13631,20 @@ snapshots: transitivePeerDependencies: - supports-color - https-browserify@1.0.0: {} - + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-browserify@1.0.0: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.1(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 @@ -7686,10 +13654,32 @@ snapshots: human-signals@2.1.0: {} + human-signals@5.0.0: {} + human-signals@8.0.1: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + husky@9.1.7: {} + hyperlinker@1.0.0: {} + + iced-error@0.0.13: {} + + iced-lock@1.1.0: + dependencies: + iced-runtime: 1.0.4 + + iced-lock@2.0.1: + dependencies: + iced-runtime: 1.0.4 + + iced-runtime-3@3.0.5: {} + + iced-runtime@1.0.4: {} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -7706,6 +13696,8 @@ snapshots: ignore@7.0.4: {} + ignore@7.0.5: {} + immediate@3.0.6: {} immutable@5.1.2: {} @@ -7715,10 +13707,30 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-from-esm@2.0.0: + dependencies: + debug: 4.4.1(supports-color@8.1.1) + import-meta-resolve: 4.1.0 + transitivePeerDependencies: + - supports-color + + import-in-the-middle@1.14.2: + dependencies: + acorn: 8.14.1 + acorn-import-attributes: 1.9.5(acorn@8.14.1) + cjs-module-lexer: 1.4.3 + module-details-from-path: 1.0.4 + import-meta-resolve@4.1.0: {} imurmurhash@0.1.4: {} + indent-string@4.0.0: {} + + indent-string@5.0.0: {} + + index-to-position@1.1.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -7726,6 +13738,12 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + + ini@4.1.1: {} + + ini@5.0.0: {} + inquirer@11.1.0: dependencies: '@inquirer/core': 9.2.1 @@ -7737,12 +13755,20 @@ snapshots: run-async: 3.0.0 rxjs: 7.8.2 + install-artifact-from-github@1.4.0: + optional: true + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 + into-stream@7.0.0: + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -7842,6 +13868,10 @@ snapshots: is-number@7.0.0: {} + is-obj@2.0.0: {} + + is-plain-obj@1.1.0: {} + is-plain-obj@2.1.0: {} is-plain-obj@4.1.0: {} @@ -7859,8 +13889,14 @@ snapshots: dependencies: call-bound: 1.0.4 + is-ssh@1.4.1: + dependencies: + protocols: 2.0.2 + is-stream@2.0.1: {} + is-stream@3.0.0: {} + is-stream@4.0.1: {} is-string@1.1.1: @@ -7874,10 +13910,16 @@ snapshots: has-symbols: 1.1.0 safe-regex-test: 1.1.0 + is-text-path@2.0.0: + dependencies: + text-extensions: 2.4.0 + is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.19 + is-typedarray@1.0.0: {} + is-unicode-supported@0.1.0: {} is-unicode-supported@2.1.0: {} @@ -7893,6 +13935,8 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-windows@1.0.2: {} + isarray@1.0.0: {} isarray@2.0.5: {} @@ -7903,6 +13947,14 @@ snapshots: isomorphic-timers-promises@1.0.1: {} + issue-parser@7.0.1: + dependencies: + lodash.capitalize: 4.2.1 + lodash.escaperegexp: 4.1.2 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.uniqby: 4.7.0 + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 @@ -7922,6 +13974,10 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + jake@10.9.2: dependencies: async: 3.2.6 @@ -7929,6 +13985,8 @@ snapshots: filelist: 1.0.4 minimatch: 3.1.2 + java-properties@1.0.2: {} + jest-diff@29.7.0: dependencies: chalk: 4.1.2 @@ -7976,16 +14034,33 @@ snapshots: jiti@2.4.2: {} + js-md4@0.3.2: {} + js-tokens@4.0.0: {} + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.0: dependencies: argparse: 2.0.1 jsbn@1.1.0: {} + json-bigint@1.0.0: + dependencies: + bignumber.js: 9.3.1 + json-buffer@3.0.1: {} + json-dup-key-validator@1.0.3: + dependencies: + backslash: 0.2.0 + + json-parse-better-errors@1.0.2: {} + json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@3.0.2: {} @@ -7996,11 +14071,44 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-pretty-compact@4.0.0: {} + + json-stringify-safe@5.0.1: {} + json5@1.0.2: dependencies: minimist: 1.2.8 optional: true + json5@2.2.3: {} + + jsonata@2.0.6: {} + + jsonc-parser@3.3.1: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jsonpointer@5.0.1: {} + + jsonwebtoken@9.0.2: + 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.1.1 + ms: 2.1.3 + semver: 7.7.2 + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 @@ -8015,10 +14123,46 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 + jwa@1.4.2: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@3.2.2: + dependencies: + jwa: 1.4.2 + safe-buffer: 5.2.1 + + jws@4.0.0: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 + + keybase-ecurve@1.0.1: + dependencies: + bn: 1.0.5 + + keybase-nacl@1.1.4: + dependencies: + iced-runtime: 1.0.4 + tweetnacl: 0.13.3 + uint64be: 1.0.1 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + kind-of@6.0.3: {} + + klona@2.0.6: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -8034,6 +14178,10 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lie@3.1.1: + dependencies: + immediate: 3.0.6 + lie@3.3.0: dependencies: immediate: 3.0.6 @@ -8044,6 +14192,10 @@ snapshots: lines-and-columns@2.0.4: {} + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + lint-staged@16.0.0: dependencies: chalk: 5.4.1 @@ -8068,16 +14220,36 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 + load-json-file@4.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + loader-runner@4.3.0: {} loader-utils@3.3.1: {} + localforage@1.10.0: + dependencies: + lie: 3.1.1 + locate-app@2.5.0: dependencies: '@promptbook/utils': 0.69.5 type-fest: 4.26.0 userhome: 1.0.1 + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -8086,18 +14258,64 @@ snapshots: dependencies: p-locate: 6.0.0 + lodash-es@4.17.21: {} + + lodash.camelcase@4.3.0: {} + + lodash.capitalize@4.2.1: {} + lodash.clonedeep@4.5.0: {} + lodash.escaperegexp@4.1.2: {} + + lodash.find@4.6.0: {} + lodash.flattendeep@4.4.0: {} + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + lodash.isequal@4.5.0: {} + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isobject@3.0.2: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.kebabcase@4.1.1: {} + + lodash.keys@4.2.0: {} + + lodash.mapvalues@4.6.0: {} + + lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} + lodash.mergewith@4.6.2: {} + + lodash.once@4.1.1: {} + lodash.pickby@4.6.0: {} + lodash.snakecase@4.1.1: {} + + lodash.startcase@4.4.0: {} + lodash.union@4.6.0: {} + lodash.uniq@4.5.0: {} + + lodash.uniqby@4.7.0: {} + + lodash.upperfirst@4.3.1: {} + lodash.zip@4.2.0: {} lodash@4.17.21: {} @@ -8119,22 +14337,85 @@ snapshots: loglevel@1.9.2: {} + long@5.3.2: {} + + longest-streak@3.1.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 + lowercase-keys@2.0.0: {} + lru-cache@10.4.3: {} lru-cache@11.1.0: {} + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + lru-cache@7.18.3: {} + lunr@2.3.9: {} + + luxon@3.6.1: {} + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 make-error@1.3.6: {} + make-fetch-happen@14.0.3: + dependencies: + '@npmcli/agent': 3.0.0 + cacache: 19.0.1 + http-cache-semantics: 4.2.0 + minipass: 7.1.2 + minipass-fetch: 4.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 1.0.0 + proc-log: 5.0.0 + promise-retry: 2.0.1 + ssri: 12.0.0 + transitivePeerDependencies: + - supports-color + optional: true + + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + markdown-table@3.0.4: {} + + marked-terminal@7.3.0(marked@15.0.12): + dependencies: + ansi-escapes: 7.0.0 + ansi-regex: 6.1.0 + chalk: 5.4.1 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 15.0.12 + node-emoji: 2.2.0 + supports-hyperlinks: 3.2.0 + + marked@15.0.12: {} + + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + math-intrinsics@1.1.0: {} md5.js@1.3.5: @@ -8143,10 +14424,226 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdurl@2.0.0: {} + + memfs-or-file-map-to-github-branch@1.3.0: + dependencies: + '@octokit/rest': 20.1.2 + + meow@12.1.1: {} + + meow@13.2.0: {} + + meow@7.1.1: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + + meow@8.1.2: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + merge-stream@2.0.0: {} merge2@1.4.1: {} + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.2.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.1(supports-color@8.1.1) + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -8163,34 +14660,106 @@ snapshots: dependencies: mime-db: 1.52.0 + mime@4.0.7: {} + mimic-fn@2.1.0: {} + mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + min-indent@1.0.1: {} + minimalistic-assert@1.0.1: {} - minimalistic-crypto-utils@1.0.1: {} + minimalistic-crypto-utils@1.0.1: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@1.2.8: {} + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.2 + + minipass-fetch@4.0.1: + dependencies: + minipass: 7.1.2 + minipass-sized: 1.0.3 + minizlib: 3.0.2 + optionalDependencies: + encoding: 0.1.13 + optional: true + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 - minimatch@10.0.1: + minipass-sized@1.0.3: dependencies: - brace-expansion: 2.0.1 + minipass: 3.3.6 + optional: true - minimatch@3.1.2: + minipass@3.3.6: dependencies: - brace-expansion: 1.1.11 + yallist: 4.0.0 - minimatch@5.1.6: + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: dependencies: - brace-expansion: 2.0.1 + minipass: 3.3.6 + yallist: 4.0.0 - minimatch@9.0.5: + minizlib@3.0.2: dependencies: - brace-expansion: 2.0.1 + minipass: 7.1.2 - minimist@1.2.8: + mkdirp-classic@0.5.3: optional: true - minipass@7.1.2: {} + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + optional: true + + mkdirp@1.0.4: {} + + mkdirp@3.0.1: {} mocha@10.8.2: dependencies: @@ -8215,6 +14784,17 @@ snapshots: yargs-parser: 20.2.9 yargs-unparser: 2.0.0 + module-details-from-path@1.0.4: {} + + moment@2.30.1: + optional: true + + moo@0.5.2: {} + + more-entropy@0.0.7: + dependencies: + iced-runtime: 1.0.4 + mrmime@1.0.1: {} ms@2.1.3: {} @@ -8223,6 +14803,13 @@ snapshots: mute-stream@2.0.0: {} + mv@2.1.1: + dependencies: + mkdirp: 0.5.6 + ncp: 2.0.0 + rimraf: 2.4.5 + optional: true + mylas@2.1.13: {} mz@2.7.0: @@ -8231,29 +14818,88 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 + nan@2.23.0: + optional: true + nano-spawn@1.0.2: {} nanoid@3.3.11: {} + nanoid@5.1.5: {} + + napi-build-utils@2.0.0: + optional: true + napi-postinstall@0.2.4: {} natural-compare@1.4.0: {} + ncp@2.0.0: + optional: true + + negotiator@1.0.0: + optional: true + neo-async@2.6.2: {} + neotraverse@0.6.18: {} + + nerf-dart@1.0.0: {} + netmask@2.0.2: {} + node-abi@3.75.0: + dependencies: + semver: 7.7.2 + optional: true + node-addon-api@7.1.1: optional: true + node-cleanup@2.1.2: {} + node-domexception@1.0.0: {} + node-emoji@2.2.0: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + + node-fetch@2.7.0(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + node-gyp@11.2.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.2 + graceful-fs: 4.2.11 + make-fetch-happen: 14.0.3 + nopt: 8.1.0 + proc-log: 5.0.0 + semver: 7.7.2 + tar: 7.4.3 + tinyglobby: 0.2.13 + which: 5.0.0 + transitivePeerDependencies: + - supports-color + optional: true + + node-html-parser@7.0.1: + dependencies: + css-select: 5.1.0 + he: 1.2.0 + node-releases@2.0.19: {} node-stdlib-browser@1.3.1: @@ -8286,6 +14932,25 @@ snapshots: util: 0.12.5 vm-browserify: 1.1.2 + nopt@8.1.0: + dependencies: + abbrev: 3.0.1 + optional: true + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.10 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.16.1 + semver: 7.7.2 + validate-npm-package-license: 3.0.4 + normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 @@ -8296,15 +14961,25 @@ snapshots: normalize-range@0.1.2: {} + normalize-url@6.1.0: {} + + normalize-url@8.0.2: {} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + npm-run-path@6.0.0: dependencies: path-key: 4.0.0 unicorn-magic: 0.3.0 + npm@10.9.3: {} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -8369,10 +15044,17 @@ snapshots: dependencies: mimic-fn: 2.1.0 + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + onetime@7.0.0: dependencies: mimic-function: 5.0.1 + openpgp@6.1.1: + optional: true + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -8386,12 +15068,40 @@ snapshots: os-tmpdir@1.0.2: {} + override-require@1.1.1: {} + own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 + p-all@5.0.0: + dependencies: + p-map: 6.0.0 + + p-cancelable@2.1.1: {} + + p-each-series@3.0.0: {} + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-filter@4.1.0: + dependencies: + p-map: 7.0.3 + + p-is-promise@3.0.0: {} + + p-limit@1.3.0: + dependencies: + p-try: 1.0.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -8400,6 +15110,14 @@ snapshots: dependencies: yocto-queue: 1.2.1 + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -8408,6 +15126,29 @@ snapshots: dependencies: p-limit: 4.0.0 + p-map@2.1.0: {} + + p-map@6.0.0: {} + + p-map@7.0.3: {} + + p-queue@8.1.0: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.4 + + p-reduce@2.1.0: {} + + p-reduce@3.0.0: {} + + p-throttle@7.0.0: {} + + p-timeout@6.1.4: {} + + p-try@1.0.0: {} + + p-try@2.2.0: {} + pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 @@ -8443,6 +15184,22 @@ snapshots: pbkdf2: 3.1.2 safe-buffer: 5.2.1 + parse-diff@0.7.1: {} + + parse-github-url@1.0.3: {} + + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + parse-json@7.1.1: dependencies: '@babel/code-frame': 7.27.1 @@ -8451,8 +15208,31 @@ snapshots: lines-and-columns: 2.0.4 type-fest: 3.13.1 + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.27.1 + index-to-position: 1.1.0 + type-fest: 4.41.0 + + parse-link-header@2.0.0: + dependencies: + xtend: 4.0.2 + parse-ms@4.0.0: {} + parse-path@7.1.0: + dependencies: + protocols: 2.0.2 + + parse-url@9.2.0: + dependencies: + '@types/parse-path': 7.1.0 + parse-path: 7.1.0 + + parse5-htmlparser2-tree-adapter@6.0.1: + dependencies: + parse5: 6.0.1 + parse5-htmlparser2-tree-adapter@7.1.0: dependencies: domhandler: 5.0.3 @@ -8462,16 +15242,25 @@ snapshots: dependencies: parse5: 7.3.0 + parse5@5.1.1: {} + + parse5@6.0.1: {} + parse5@7.3.0: dependencies: entities: 6.0.0 path-browserify@1.0.1: {} + path-exists@3.0.0: {} + path-exists@4.0.0: {} path-exists@5.0.0: {} + path-is-absolute@1.0.1: + optional: true + path-key@3.1.1: {} path-key@4.0.0: {} @@ -8490,6 +15279,8 @@ snapshots: path-type@4.0.0: {} + path-type@6.0.0: {} + pathe@1.1.2: {} pbkdf2@3.1.2: @@ -8502,6 +15293,11 @@ snapshots: pend@1.2.0: {} + pgp-utils@0.0.35: + dependencies: + iced-error: 0.0.13 + iced-runtime: 1.0.4 + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -8512,8 +15308,17 @@ snapshots: pify@2.3.0: {} + pify@3.0.0: {} + + pinpoint@1.1.0: {} + pirates@4.0.7: {} + pkg-conf@2.1.0: + dependencies: + find-up: 2.1.0 + load-json-file: 4.0.0 + pkg-dir@5.0.0: dependencies: find-up: 5.0.0 @@ -8571,17 +15376,33 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.4 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.75.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.3 + tunnel-agent: 0.6.0 + optional: true + prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.0: dependencies: fast-diff: 1.3.0 - prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3): + prettier-plugin-tailwindcss@0.6.11(prettier@3.6.2): dependencies: - prettier: 3.5.3 + prettier: 3.6.2 - prettier@3.5.3: {} + prettier@3.6.2: {} pretty-format@29.7.0: dependencies: @@ -8593,18 +15414,53 @@ snapshots: dependencies: parse-ms: 4.0.0 + prettyjson@1.2.5: + dependencies: + colors: 1.4.0 + minimist: 1.2.8 + + proc-log@5.0.0: + optional: true + process-nextick-args@2.0.1: {} process@0.11.10: {} + progress@1.1.8: {} + progress@2.0.3: {} + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + optional: true + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 + proto-list@1.2.4: {} + + protobufjs@7.5.3: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.15.21 + long: 5.3.2 + + protocols@2.0.2: {} + proxy-agent@6.5.0: dependencies: agent-base: 7.1.3 @@ -8634,10 +15490,14 @@ snapshots: end-of-stream: 1.4.4 once: 1.4.0 + punycode.js@2.3.1: {} + punycode@1.4.1: {} punycode@2.3.1: {} + purepack@1.0.6: {} + qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -8650,6 +15510,10 @@ snapshots: queue-microtask@1.2.3: {} + quick-lru@4.0.1: {} + + quick-lru@5.1.1: {} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -8659,6 +15523,22 @@ snapshots: randombytes: 2.1.0 safe-buffer: 5.2.1 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + re2@1.22.1: + dependencies: + install-artifact-from-github: 1.4.0 + nan: 2.23.0 + node-gyp: 11.2.0 + transitivePeerDependencies: + - supports-color + optional: true + react-dom@19.1.0(react@19.1.0): dependencies: react: 19.1.0 @@ -8684,12 +15564,31 @@ snapshots: dependencies: pify: 2.3.0 + read-package-up@11.0.0: + dependencies: + find-up-simple: 1.0.1 + read-pkg: 9.0.1 + type-fest: 4.41.0 + read-pkg-up@10.1.0: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 type-fest: 4.41.0 + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + read-pkg@8.1.0: dependencies: '@types/normalize-package-data': 2.4.4 @@ -8697,6 +15596,19 @@ snapshots: parse-json: 7.1.1 type-fest: 4.41.0 + read-pkg@9.0.1: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.3.0 + type-fest: 4.41.0 + unicorn-magic: 0.1.0 + + read-yaml-file@2.1.0: + dependencies: + js-yaml: 4.1.0 + strip-bom: 4.0.0 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -8731,36 +15643,234 @@ snapshots: readdirp@4.1.2: {} + readline-sync@1.4.10: {} + recursive-readdir@2.2.3: dependencies: minimatch: 3.1.2 - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + redis@4.7.1: + dependencies: + '@redis/bloom': 1.2.0(@redis/client@1.6.1) + '@redis/client': 1.6.1 + '@redis/graph': 1.1.1(@redis/client@1.6.1) + '@redis/json': 1.0.7(@redis/client@1.6.1) + '@redis/search': 1.2.0(@redis/client@1.6.1) + '@redis/time-series': 1.1.0(@redis/client@1.6.1) + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerator-runtime@0.13.11: {} + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + registry-auth-token@5.1.0: + dependencies: + '@pnpm/npm-conf': 2.3.1 + + remark-github@12.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-find-and-replace: 3.0.2 + mdast-util-to-string: 4.0.0 + to-vfile: 8.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + renovate@41.35.1(encoding@0.1.13)(typanion@3.14.0): + dependencies: + '@aws-sdk/client-codecommit': 3.840.0 + '@aws-sdk/client-ec2': 3.840.0 + '@aws-sdk/client-ecr': 3.840.0 + '@aws-sdk/client-eks': 3.840.0 + '@aws-sdk/client-rds': 3.840.0 + '@aws-sdk/client-s3': 3.840.0 + '@aws-sdk/credential-providers': 3.840.0 + '@baszalmstra/rattler': 0.2.1 + '@breejs/later': 4.2.0 + '@cdktf/hcl2json': 0.21.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-bunyan': 0.48.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-aws': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-azure': 0.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-gcp': 0.36.0(@opentelemetry/api@1.9.0)(encoding@0.1.13) + '@opentelemetry/resource-detector-github': 0.31.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + '@pnpm/parse-overrides': 1001.0.0 + '@qnighy/marshal': 0.1.3 + '@renovatebot/detect-tools': 1.1.0 + '@renovatebot/kbpgp': 4.0.1 + '@renovatebot/osv-offline': 1.6.6 + '@renovatebot/pep440': 4.1.0 + '@renovatebot/ruby-semver': 4.0.0 + '@sindresorhus/is': 7.0.2 + '@yarnpkg/core': 4.4.2(typanion@3.14.0) + '@yarnpkg/parsers': 3.0.3 + agentkeepalive: 4.6.0 + async-mutex: 0.5.0 + auth-header: 1.0.0 + aws4: 1.13.2 + azure-devops-node-api: 15.1.0 + bunyan: 1.8.15 + cacache: 19.0.1 + chalk: 5.4.1 + changelog-filename-regex: 2.0.1 + clean-git-ref: 2.0.1 + commander: 14.0.0 + conventional-commits-detector: 1.0.3 + croner: 9.1.0 + cronstrue: 2.61.0 + deepmerge: 4.3.1 + dequal: 2.0.3 + detect-indent: 7.0.1 + diff: 8.0.2 + editorconfig: 3.0.1 + email-addresses: 5.0.0 + emoji-regex: 10.4.0 + emojibase: 16.0.0 + emojibase-regex: 16.0.0 + extract-zip: 2.0.1 + find-packages: 10.0.4 + find-up: 7.0.0 + fs-extra: 11.3.0 + git-url-parse: 16.1.0 + github-url-from-git: 1.5.0 + glob: 11.0.3 + global-agent: 3.0.0 + good-enough-parser: 1.1.23 + google-auth-library: 10.1.0 + got: 11.8.6 + graph-data-structure: 4.5.0 + handlebars: 4.7.8 + ignore: 7.0.5 + ini: 5.0.0 + json-dup-key-validator: 1.0.3 + json-stringify-pretty-compact: 4.0.0 + json5: 2.2.3 + jsonata: 2.0.6 + jsonc-parser: 3.3.1 + klona: 2.0.6 + luxon: 3.6.1 + markdown-it: 14.1.0 + markdown-table: 3.0.4 + minimatch: 10.0.3 + moo: 0.5.2 + ms: 2.1.3 + nanoid: 5.1.5 + neotraverse: 0.6.18 + node-html-parser: 7.0.1 + p-all: 5.0.0 + p-map: 7.0.3 + p-queue: 8.1.0 + p-throttle: 7.0.0 + parse-link-header: 2.0.0 + prettier: 3.6.2 + protobufjs: 7.5.3 + punycode: 2.3.1 + redis: 4.7.1 + remark: 15.0.1 + remark-github: 12.0.0 + safe-stable-stringify: 2.5.0 + sax: 1.4.1 + semver: 7.7.2 + semver-stable: 3.0.0 + semver-utils: 1.1.4 + shlex: 2.1.2 + simple-git: 3.28.0 + slugify: 1.6.6 + source-map-support: 0.5.21 + strip-json-comments: 5.0.2 + toml-eslint-parser: 0.10.0 + tslib: 2.8.1 + upath: 2.0.1 + url-join: 5.0.0 + validate-npm-package-name: 6.0.1 + vuln-vects: 1.1.0 + xmldoc: 2.0.2 + yaml: 2.8.0 + zod: 3.25.76 + optionalDependencies: + better-sqlite3: 12.2.0 + openpgp: 6.1.1 + re2: 1.22.1 + transitivePeerDependencies: + - aws-crt + - encoding + - supports-color + - typanion + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} - regexp.prototype.flags@1.5.4: + require-in-the-middle@7.5.2: dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 + debug: 4.4.1(supports-color@8.1.1) + module-details-from-path: 1.0.4 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color - require-directory@2.1.1: {} + require-main-filename@2.0.0: {} - require-from-string@2.0.2: {} + resolve-alpn@1.2.1: {} resolve-from@4.0.0: {} + resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} resolve@1.22.10: @@ -8775,6 +15885,10 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + resq@1.11.0: dependencies: fast-deep-equal: 2.0.1 @@ -8784,12 +15898,19 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 + retry@0.12.0: {} + reusify@1.1.0: {} rfdc@1.4.1: {} rgb2hex@0.2.5: {} + rimraf@2.4.5: + dependencies: + glob: 6.0.4 + optional: true + rimraf@6.0.1: dependencies: glob: 11.0.2 @@ -8800,6 +15921,15 @@ snapshots: hash-base: 3.0.5 inherits: 2.0.4 + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + rollup@4.41.0: dependencies: '@types/estree': 1.0.7 @@ -8852,6 +15982,9 @@ snapshots: safe-buffer@5.2.1: {} + safe-json-stringify@1.2.0: + optional: true + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -8863,6 +15996,8 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safe-stable-stringify@2.5.0: {} + safer-buffer@2.1.2: {} sass@1.89.0: @@ -8873,6 +16008,8 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.1 + sax@1.4.1: {} + scheduler@0.26.0: {} schema-utils@3.3.0: @@ -8888,6 +16025,57 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + semantic-release@24.2.7(typescript@5.8.3): + dependencies: + '@semantic-release/commit-analyzer': 13.0.1(semantic-release@24.2.7(typescript@5.8.3)) + '@semantic-release/error': 4.0.0 + '@semantic-release/github': 11.0.3(semantic-release@24.2.7(typescript@5.8.3)) + '@semantic-release/npm': 12.0.2(semantic-release@24.2.7(typescript@5.8.3)) + '@semantic-release/release-notes-generator': 14.0.3(semantic-release@24.2.7(typescript@5.8.3)) + aggregate-error: 5.0.0 + cosmiconfig: 9.0.0(typescript@5.8.3) + debug: 4.4.1(supports-color@8.1.1) + env-ci: 11.1.1 + execa: 9.5.3 + figures: 6.1.0 + find-versions: 6.0.0 + get-stream: 6.0.1 + git-log-parser: 1.2.1 + hook-std: 3.0.0 + hosted-git-info: 8.1.0 + import-from-esm: 2.0.0 + lodash-es: 4.17.21 + marked: 15.0.12 + marked-terminal: 7.3.0(marked@15.0.12) + micromatch: 4.0.8 + p-each-series: 3.0.0 + p-reduce: 3.0.0 + read-package-up: 11.0.0 + resolve-from: 5.0.0 + semver: 7.7.2 + semver-diff: 4.0.0 + signale: 1.4.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + - typescript + + semver-compare@1.0.0: {} + + semver-diff@4.0.0: + dependencies: + semver: 7.7.2 + + semver-regex@4.0.5: {} + + semver-stable@3.0.0: + dependencies: + semver: 6.3.1 + + semver-utils@1.1.4: {} + + semver@5.7.2: {} + semver@6.3.1: {} semver@7.7.2: {} @@ -8896,10 +16084,16 @@ snapshots: dependencies: type-fest: 2.19.0 + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 + set-blocking@2.0.0: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -8935,6 +16129,8 @@ snapshots: shebang-regex@3.0.0: {} + shlex@2.1.2: {} + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -8967,8 +16163,38 @@ snapshots: signal-exit@4.1.0: {} + signale@1.4.0: + dependencies: + chalk: 2.4.2 + figures: 2.0.0 + pkg-conf: 2.1.0 + + simple-concat@1.0.1: + optional: true + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + optional: true + + simple-git@3.28.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.4.1(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + slash@3.0.0: {} + slash@5.1.0: {} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -8979,6 +16205,8 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + slugify@1.6.6: {} + smart-buffer@4.2.0: {} socks-proxy-agent@8.0.5: @@ -8994,6 +16222,10 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 + sort-keys@4.2.0: + dependencies: + is-plain-obj: 2.1.0 + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -9007,6 +16239,8 @@ snapshots: spacetrim@0.11.59: {} + spawn-error-forwarder@1.0.0: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -9021,10 +16255,24 @@ snapshots: spdx-license-ids@3.0.21: {} + split2@1.0.0: + dependencies: + through2: 2.0.5 + + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 + split2@4.2.0: {} + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: {} + ssri@12.0.0: + dependencies: + minipass: 7.1.2 + stable-hash@0.0.5: {} stack-utils@2.0.6: @@ -9038,6 +16286,11 @@ snapshots: stream-buffers@3.0.3: {} + stream-combiner2@1.1.1: + dependencies: + duplexer2: 0.1.4 + readable-stream: 2.3.8 + stream-http@3.2.0: dependencies: builtin-status-codes: 3.0.0 @@ -9138,15 +16391,28 @@ snapshots: dependencies: ansi-regex: 6.1.0 - strip-bom@3.0.0: - optional: true + strip-bom@3.0.0: {} + + strip-bom@4.0.0: {} + + strip-comments-strings@1.2.0: {} strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} + strip-final-newline@4.0.0: {} + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} + strip-json-comments@5.0.2: {} + strnum@1.1.2: {} sucrase@3.35.0: @@ -9159,6 +16425,15 @@ snapshots: pirates: 4.0.7 ts-interface-checker: 0.1.13 + super-regex@1.0.0: + dependencies: + function-timeout: 1.0.2 + time-span: 5.1.0 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -9167,6 +16442,16 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@1.0.1: + dependencies: + has-flag: 2.0.0 + supports-color: 5.5.0 + + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} synckit@0.11.6: @@ -9204,6 +16489,14 @@ snapshots: tapable@2.2.2: {} + tar-fs@2.1.3: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + optional: true + tar-fs@3.0.8: dependencies: pump: 3.0.2 @@ -9214,12 +16507,48 @@ snapshots: transitivePeerDependencies: - bare-buffer + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + tar-stream@3.1.7: dependencies: b4a: 1.6.7 fast-fifo: 1.3.2 streamx: 2.22.0 + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + tar@7.4.3: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.2 + mkdirp: 3.0.1 + yallist: 5.0.0 + + temp-dir@3.0.0: {} + + tempy@3.1.0: + dependencies: + is-stream: 3.0.0 + temp-dir: 3.0.0 + type-fest: 2.19.0 + unique-string: 3.0.0 + terser-webpack-plugin@5.3.14(@swc/core@1.11.24)(webpack@5.94.0(@swc/core@1.11.24)): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -9242,6 +16571,8 @@ snapshots: dependencies: b4a: 1.6.7 + text-extensions@2.4.0: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -9250,15 +16581,38 @@ snapshots: dependencies: any-promise: 1.3.0 + through2-concurrent@2.0.0: + dependencies: + through2: 2.0.5 + + through2@2.0.5: + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + through@2.3.8: {} + + time-span@5.1.0: + dependencies: + convert-hrtime: 5.0.0 + timers-browserify@2.0.12: dependencies: setimmediate: 1.0.5 + tinyexec@1.0.1: {} + tinyglobby@0.2.13: dependencies: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 + tinylogic@2.0.0: {} + tinyrainbow@1.2.0: {} tmp@0.0.33: @@ -9269,6 +16623,33 @@ snapshots: dependencies: is-number: 7.0.0 + to-vfile@8.0.0: + dependencies: + vfile: 6.0.3 + + toml-eslint-parser@0.10.0: + dependencies: + eslint-visitor-keys: 3.4.3 + + tr46@0.0.3: {} + + traverse@0.6.8: {} + + treeify@1.1.0: {} + + trim-newlines@3.0.1: {} + + triplesec@4.0.3: + dependencies: + iced-error: 0.0.13 + iced-lock: 1.1.0 + iced-runtime: 1.0.4 + more-entropy: 0.0.7 + progress: 1.1.8 + uglify-js: 3.19.3 + + trough@2.2.0: {} + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: typescript: 5.8.3 @@ -9334,6 +16715,13 @@ snapshots: tty-browserify@0.0.1: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + optional: true + + tunnel@0.0.6: {} + turbo-darwin-64@2.5.3: optional: true @@ -9361,12 +16749,28 @@ snapshots: turbo-windows-64: 2.5.3 turbo-windows-arm64: 2.5.3 + tweetnacl@0.13.3: {} + + tweetnacl@1.0.3: {} + + typanion@3.14.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 + type-fest@0.13.1: {} + + type-fest@0.18.1: {} + type-fest@0.21.3: {} + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-fest@1.4.0: {} + type-fest@2.19.0: {} type-fest@3.13.1: {} @@ -9408,6 +16812,27 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typed-rest-client@2.1.0: + dependencies: + des.js: 1.1.0 + js-md4: 0.3.2 + qs: 6.14.0 + tunnel: 0.0.6 + underscore: 1.13.7 + + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + + typedoc@0.28.7(typescript@5.8.3): + dependencies: + '@gerrit0/mini-shiki': 3.8.0 + lunr: 2.3.9 + markdown-it: 14.1.0 + minimatch: 9.0.5 + typescript: 5.8.3 + yaml: 2.8.0 + typescript-eslint@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) @@ -9420,6 +16845,12 @@ snapshots: typescript@5.8.3: {} + uc.micro@2.1.0: {} + + uglify-js@3.19.3: {} + + uint64be@1.0.1: {} + unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -9427,14 +16858,67 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 + underscore@1.13.7: {} + undici-types@6.19.8: {} undici-types@6.21.0: {} undici@6.21.3: {} + unicode-emoji-modifier-base@1.0.0: {} + + unicorn-magic@0.1.0: {} + unicorn-magic@0.3.0: {} + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unique-filename@4.0.0: + dependencies: + unique-slug: 5.0.0 + + unique-slug@5.0.0: + dependencies: + imurmurhash: 0.1.4 + + unique-string@3.0.0: + dependencies: + crypto-random-string: 4.0.0 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universal-user-agent@6.0.1: {} + + universal-user-agent@7.0.3: {} + + universalify@2.0.1: {} + unrs-resolver@1.7.2: dependencies: napi-postinstall: 0.2.4 @@ -9457,6 +16941,8 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.7.2 '@unrs/resolver-binding-win32-x64-msvc': 1.7.2 + upath@2.0.1: {} + update-browserslist-db@1.1.3(browserslist@4.24.5): dependencies: browserslist: 4.24.5 @@ -9467,6 +16953,8 @@ snapshots: dependencies: punycode: 2.3.1 + url-join@5.0.0: {} + url@0.11.4: dependencies: punycode: 1.4.1 @@ -9486,6 +16974,8 @@ snapshots: is-typed-array: 1.1.15 which-typed-array: 1.1.19 + uuid@9.0.1: {} + v8-compile-cache-lib@3.0.1: {} validate-npm-package-license@3.0.4: @@ -9493,6 +16983,22 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + validate-npm-package-name@5.0.0: + dependencies: + builtins: 5.1.0 + + validate-npm-package-name@6.0.1: {} + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + vite-plugin-node-polyfills@0.23.0(rollup@4.41.0)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)(yaml@2.8.0)): dependencies: '@rollup/plugin-inject': 5.0.5(rollup@4.41.0) @@ -9520,6 +17026,8 @@ snapshots: vm-browserify@1.1.2: {} + vuln-vects@1.1.0: {} + wait-port@1.1.0: dependencies: chalk: 4.1.2 @@ -9593,6 +17101,8 @@ snapshots: webextension-polyfill@0.12.0: {} + webidl-conversions@3.0.1: {} + webpack-sources@3.2.3: {} webpack@5.94.0(@swc/core@1.11.24): @@ -9631,6 +17141,11 @@ snapshots: whatwg-mimetype@4.0.0: {} + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -9662,6 +17177,8 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 + which-module@2.0.1: {} + which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 @@ -9686,6 +17203,8 @@ snapshots: word-wrap@1.2.5: {} + wordwrap@1.0.0: {} + workerpool@6.5.1: {} wrap-ansi@6.2.0: @@ -9714,14 +17233,48 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@3.0.3: + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + write-yaml-file@4.2.0: + dependencies: + js-yaml: 4.1.0 + write-file-atomic: 3.0.3 + ws@8.18.2: {} + xcase@2.0.1: {} + + xmldoc@2.0.2: + dependencies: + sax: 1.4.1 + xtend@4.0.2: {} + y18n@4.0.3: {} + y18n@5.0.8: {} + yallist@4.0.0: {} + + yallist@5.0.0: {} + yaml@2.8.0: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -9733,6 +17286,20 @@ snapshots: flat: 5.0.2 is-plain-obj: 2.1.0 + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@16.2.0: dependencies: cliui: 7.0.4 @@ -9773,3 +17340,7 @@ snapshots: archiver-utils: 5.0.2 compress-commons: 6.0.2 readable-stream: 4.7.0 + + zod@3.25.76: {} + + zwitch@2.0.4: {} diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000..6d05b2d4 --- /dev/null +++ b/renovate.json @@ -0,0 +1,16 @@ +{ + "extends": ["config:base"], + "packageRules": [ + { + "matchPackagePatterns": ["^@?pnpm/", "^@?types/"], + "groupName": "pnpm/types dependencies" + } + ], + "labels": ["dependencies", "renovate"], + "prHourlyLimit": 2, + "prConcurrentLimit": 5, + "automerge": false, + "rangeStrategy": "bump", + "enabledManagers": ["npm", "pnpm"], + "onboarding": true +} diff --git a/secrets.json b/secrets.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/secrets.json @@ -0,0 +1 @@ +{}