From e2f1d80697316b0898e763051b618ff9b7ada35d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Nov 2025 08:44:28 +0800 Subject: [PATCH 01/22] ci(deps): bump actions/setup-node from 4 to 6 (#11090) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto-i18n.yml | 2 +- .github/workflows/github-issue-tracker.yml | 4 ++-- .github/workflows/nightly-build.yml | 2 +- .github/workflows/pr-ci.yml | 2 +- .github/workflows/release.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/auto-i18n.yml b/.github/workflows/auto-i18n.yml index a6c1e3791a..c26f4b1adf 100644 --- a/.github/workflows/auto-i18n.yml +++ b/.github/workflows/auto-i18n.yml @@ -27,7 +27,7 @@ jobs: ref: ${{ github.event.pull_request.head.ref }} - name: 📦 Setting Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 20 package-manager-cache: false diff --git a/.github/workflows/github-issue-tracker.yml b/.github/workflows/github-issue-tracker.yml index 7cc1ad4762..f585527ea2 100644 --- a/.github/workflows/github-issue-tracker.yml +++ b/.github/workflows/github-issue-tracker.yml @@ -54,7 +54,7 @@ jobs: - name: Setup Node.js if: steps.check_time.outputs.should_delay == 'false' - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '20' @@ -121,7 +121,7 @@ jobs: uses: actions/checkout@v4 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '20' diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 9e1608b13e..5e60ec1591 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -56,7 +56,7 @@ jobs: ref: main - name: Install Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 20 diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 9108d71fc1..44fc49ee6d 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v5 - name: Install Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 20 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c54504de07..2fa8aa5d4e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,7 @@ jobs: npm version "$VERSION" --no-git-tag-version --allow-same-version - name: Install Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 20 From e5967fd874e7acd2fe826c4c93a26eb06433c161 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Nov 2025 08:44:41 +0800 Subject: [PATCH 02/22] ci(deps): bump actions/upload-artifact from 4 to 5 (#11089) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/nightly-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 5e60ec1591..0698c3bab2 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -208,7 +208,7 @@ jobs: echo "总计: $(find renamed-artifacts -type f | wc -l) 个文件" - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: cherry-studio-nightly-${{ steps.date.outputs.date }}-${{ matrix.os }} path: renamed-artifacts/* From cdc12d509247f461d84fae45df8316d5d5f21266 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Nov 2025 08:44:53 +0800 Subject: [PATCH 03/22] ci(deps): bump actions/stale from 9 to 10 (#11088) Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v9...v10) --- updated-dependencies: - dependency-name: actions/stale dependency-version: '10' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/issue-management.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/issue-management.yml b/.github/workflows/issue-management.yml index f6041f2336..c9ff497386 100644 --- a/.github/workflows/issue-management.yml +++ b/.github/workflows/issue-management.yml @@ -21,7 +21,7 @@ jobs: contents: none steps: - name: Close needs-more-info issues - uses: actions/stale@v9 + uses: actions/stale@v10 with: repo-token: ${{ secrets.GITHUB_TOKEN }} only-labels: 'needs-more-info' @@ -42,7 +42,7 @@ jobs: days-before-pr-close: -1 - name: Close inactive issues - uses: actions/stale@v9 + uses: actions/stale@v10 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: ${{ env.daysBeforeStale }} From 5f1c14e2c03af79c1301ac43ade9e220848a959b Mon Sep 17 00:00:00 2001 From: chenxue Date: Sun, 2 Nov 2025 17:03:05 +0800 Subject: [PATCH 04/22] fix(aihubmix): fix default rules missing app code (#11100) * add imagen * Update aihubmix.ts * fix type --------- Co-authored-by: zhaochenxue --- src/main/services/WebSocketService.ts | 2 +- src/renderer/src/aiCore/provider/config/aihubmix.ts | 2 +- src/renderer/src/components/Popups/ExportToPhoneLanPopup.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/services/WebSocketService.ts b/src/main/services/WebSocketService.ts index 5a4b77f651..e52919e96a 100644 --- a/src/main/services/WebSocketService.ts +++ b/src/main/services/WebSocketService.ts @@ -1,5 +1,5 @@ import { loggerService } from '@logger' -import { WebSocketCandidatesResponse, WebSocketStatusResponse } from '@shared/config/types' +import type { WebSocketCandidatesResponse, WebSocketStatusResponse } from '@shared/config/types' import * as fs from 'fs' import { networkInterfaces } from 'os' import * as path from 'path' diff --git a/src/renderer/src/aiCore/provider/config/aihubmix.ts b/src/renderer/src/aiCore/provider/config/aihubmix.ts index 432be5ee31..8feed89909 100644 --- a/src/renderer/src/aiCore/provider/config/aihubmix.ts +++ b/src/renderer/src/aiCore/provider/config/aihubmix.ts @@ -52,7 +52,7 @@ const AIHUBMIX_RULES: RuleSet = { } } ], - fallbackRule: (provider: Provider) => provider + fallbackRule: (provider: Provider) => extraProviderConfig(provider) } export const aihubmixProviderCreator = provider2Provider.bind(null, AIHUBMIX_RULES) diff --git a/src/renderer/src/components/Popups/ExportToPhoneLanPopup.tsx b/src/renderer/src/components/Popups/ExportToPhoneLanPopup.tsx index 26caf29d86..1920d0b210 100644 --- a/src/renderer/src/components/Popups/ExportToPhoneLanPopup.tsx +++ b/src/renderer/src/components/Popups/ExportToPhoneLanPopup.tsx @@ -5,7 +5,7 @@ import { Spinner } from '@heroui/spinner' import { loggerService } from '@logger' import { AppLogo } from '@renderer/config/env' import { SettingHelpText, SettingRow } from '@renderer/pages/settings' -import { WebSocketCandidatesResponse } from '@shared/config/types' +import type { WebSocketCandidatesResponse } from '@shared/config/types' import { QRCodeSVG } from 'qrcode.react' import { useCallback, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' From bd94d2334316a66f50ad9e899e822b9f2f6a3374 Mon Sep 17 00:00:00 2001 From: SuYao Date: Sun, 2 Nov 2025 19:24:23 +0800 Subject: [PATCH 05/22] refactor:Unify the naming of configuration fields in thinking, change to using underscore style. (#11106) * refactor:Unify the naming of configuration fields in thinking, change to using underscore style. * fix(i18n): Auto update translations for PR #11106 * chore: lint * fix: typecheck --------- Co-authored-by: GitHub Action --- .../legacy/clients/openai/OpenAIApiClient.ts | 12 +++++------ src/renderer/src/aiCore/utils/reasoning.ts | 20 +++++++++---------- src/renderer/src/i18n/translate/de-de.json | 5 +++++ src/renderer/src/i18n/translate/el-gr.json | 5 +++++ src/renderer/src/i18n/translate/es-es.json | 5 +++++ src/renderer/src/i18n/translate/fr-fr.json | 5 +++++ src/renderer/src/i18n/translate/ja-jp.json | 5 +++++ src/renderer/src/i18n/translate/pt-pt.json | 5 +++++ src/renderer/src/i18n/translate/ru-ru.json | 5 +++++ src/renderer/src/types/sdk.ts | 6 ++++-- 10 files changed, 55 insertions(+), 18 deletions(-) diff --git a/src/renderer/src/aiCore/legacy/clients/openai/OpenAIApiClient.ts b/src/renderer/src/aiCore/legacy/clients/openai/OpenAIApiClient.ts index 239890c7a7..8ff25e356d 100644 --- a/src/renderer/src/aiCore/legacy/clients/openai/OpenAIApiClient.ts +++ b/src/renderer/src/aiCore/legacy/clients/openai/OpenAIApiClient.ts @@ -192,7 +192,7 @@ export class OpenAIAPIClient extends OpenAIBaseClient< extra_body: { google: { thinking_config: { - thinkingBudget: 0 + thinking_budget: 0 } } } @@ -327,8 +327,8 @@ export class OpenAIAPIClient extends OpenAIBaseClient< extra_body: { google: { thinking_config: { - thinkingBudget: -1, - includeThoughts: true + thinking_budget: -1, + include_thoughts: true } } } @@ -338,8 +338,8 @@ export class OpenAIAPIClient extends OpenAIBaseClient< extra_body: { google: { thinking_config: { - thinkingBudget: budgetTokens, - includeThoughts: true + thinking_budget: budgetTokens, + include_thoughts: true } } } @@ -670,7 +670,7 @@ export class OpenAIAPIClient extends OpenAIBaseClient< } else if (isClaudeReasoningModel(model) && reasoningEffort.thinking?.budget_tokens) { suffix = ` --thinking_budget ${reasoningEffort.thinking.budget_tokens}` } else if (isGeminiReasoningModel(model) && reasoningEffort.extra_body?.google?.thinking_config) { - suffix = ` --thinking_budget ${reasoningEffort.extra_body.google.thinking_config.thinkingBudget}` + suffix = ` --thinking_budget ${reasoningEffort.extra_body.google.thinking_config.thinking_budget}` } // FIXME: poe 不支持多个text part,上传文本文件的时候用的不是file part而是text part,因此会出问题 // 临时解决方案是强制poe用string content,但是其实poe部分支持array diff --git a/src/renderer/src/aiCore/utils/reasoning.ts b/src/renderer/src/aiCore/utils/reasoning.ts index 0246ac31cb..7b5a6890d7 100644 --- a/src/renderer/src/aiCore/utils/reasoning.ts +++ b/src/renderer/src/aiCore/utils/reasoning.ts @@ -98,7 +98,7 @@ export function getReasoningEffort(assistant: Assistant, model: Model): Reasonin extra_body: { google: { thinking_config: { - thinkingBudget: 0 + thinking_budget: 0 } } } @@ -259,8 +259,8 @@ export function getReasoningEffort(assistant: Assistant, model: Model): Reasonin extra_body: { google: { thinking_config: { - thinkingBudget: -1, - includeThoughts: true + thinking_budget: -1, + include_thoughts: true } } } @@ -270,8 +270,8 @@ export function getReasoningEffort(assistant: Assistant, model: Model): Reasonin extra_body: { google: { thinking_config: { - thinkingBudget: budgetTokens, - includeThoughts: true + thinking_budget: budgetTokens ?? -1, + include_thoughts: true } } } @@ -431,8 +431,8 @@ export function getGeminiReasoningParams(assistant: Assistant, model: Model): Re if (reasoningEffort === undefined) { return { thinkingConfig: { - includeThoughts: false, - ...(GEMINI_FLASH_MODEL_REGEX.test(model.id) ? { thinkingBudget: 0 } : {}) + include_thoughts: false, + ...(GEMINI_FLASH_MODEL_REGEX.test(model.id) ? { thinking_budget: 0 } : {}) } } } @@ -442,7 +442,7 @@ export function getGeminiReasoningParams(assistant: Assistant, model: Model): Re if (effortRatio > 1) { return { thinkingConfig: { - includeThoughts: true + include_thoughts: true } } } @@ -452,8 +452,8 @@ export function getGeminiReasoningParams(assistant: Assistant, model: Model): Re return { thinkingConfig: { - ...(budget > 0 ? { thinkingBudget: budget } : {}), - includeThoughts: true + ...(budget > 0 ? { thinking_budget: budget } : {}), + include_thoughts: true } } } diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json index 2e86111da1..68e491ecb3 100644 --- a/src/renderer/src/i18n/translate/de-de.json +++ b/src/renderer/src/i18n/translate/de-de.json @@ -1,6 +1,7 @@ { "agent": { "add": { + "description": "Bewältigen Sie komplexe Aufgaben mit verschiedenen Werkzeugen", "error": { "failed": "Agent hinzufügen fehlgeschlagen", "invalid_agent": "Ungültiger Agent" @@ -547,8 +548,12 @@ "chat": { "add": { "assistant": { + "description": "Tägliche Gespräche und schnelle Fragen & Antworten", "title": "Assistent hinzufügen" }, + "option": { + "title": "Typ auswählen" + }, "topic": { "title": "Neues Thema erstellen" } diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json index a793d9ddf0..35d61b1a1c 100644 --- a/src/renderer/src/i18n/translate/el-gr.json +++ b/src/renderer/src/i18n/translate/el-gr.json @@ -1,6 +1,7 @@ { "agent": { "add": { + "description": "Χειριστείτε πολύπλοκες εργασίες με διάφορα εργαλεία", "error": { "failed": "Αποτυχία προσθήκης πράκτορα", "invalid_agent": "Μη έγκυρος Agent" @@ -547,8 +548,12 @@ "chat": { "add": { "assistant": { + "description": "Καθημερινές συνομιλίες και γρήγορες ερωταπαντήσεις", "title": "Προσθήκη βοηθού" }, + "option": { + "title": "Επιλέξτε Τύπο" + }, "topic": { "title": "Δημιουργία νέου θέματος" } diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json index 27b46ce3b3..75475fef3f 100644 --- a/src/renderer/src/i18n/translate/es-es.json +++ b/src/renderer/src/i18n/translate/es-es.json @@ -1,6 +1,7 @@ { "agent": { "add": { + "description": "Maneja tareas complejas con varias herramientas", "error": { "failed": "Error al añadir agente", "invalid_agent": "Agent inválido" @@ -547,8 +548,12 @@ "chat": { "add": { "assistant": { + "description": "Conversaciones diarias y preguntas y respuestas rápidas", "title": "Agregar asistente" }, + "option": { + "title": "Seleccionar Tipo" + }, "topic": { "title": "Crear nuevo tema" } diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json index b710e40b1e..2076b9a841 100644 --- a/src/renderer/src/i18n/translate/fr-fr.json +++ b/src/renderer/src/i18n/translate/fr-fr.json @@ -1,6 +1,7 @@ { "agent": { "add": { + "description": "Gérez des tâches complexes avec divers outils", "error": { "failed": "Échec de l'ajout de l'agent", "invalid_agent": "Agent invalide" @@ -547,8 +548,12 @@ "chat": { "add": { "assistant": { + "description": "Conversations quotidiennes et Q&R rapides", "title": "Ajouter un assistant" }, + "option": { + "title": "Sélectionner le type" + }, "topic": { "title": "Nouveau sujet" } diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json index 449e6bad29..c8e6da0d04 100644 --- a/src/renderer/src/i18n/translate/ja-jp.json +++ b/src/renderer/src/i18n/translate/ja-jp.json @@ -1,6 +1,7 @@ { "agent": { "add": { + "description": "さまざまなツールを使って複雑なタスクを処理する", "error": { "failed": "エージェントの追加に失敗しました", "invalid_agent": "無効なエージェント" @@ -547,8 +548,12 @@ "chat": { "add": { "assistant": { + "description": "日常会話と簡単なQ&A", "title": "アシスタントを追加" }, + "option": { + "title": "種類を選択" + }, "topic": { "title": "新しいトピック" } diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json index 5ac0f082c1..f75a164a9d 100644 --- a/src/renderer/src/i18n/translate/pt-pt.json +++ b/src/renderer/src/i18n/translate/pt-pt.json @@ -1,6 +1,7 @@ { "agent": { "add": { + "description": "Lide com tarefas complexas usando várias ferramentas", "error": { "failed": "Falha ao adicionar agente", "invalid_agent": "Agent inválido" @@ -547,8 +548,12 @@ "chat": { "add": { "assistant": { + "description": "Conversas diárias e perguntas e respostas rápidas", "title": "Adicionar assistente" }, + "option": { + "title": "Selecionar Tipo" + }, "topic": { "title": "Novo Tópico" } diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json index 64a6453115..de63d96ff3 100644 --- a/src/renderer/src/i18n/translate/ru-ru.json +++ b/src/renderer/src/i18n/translate/ru-ru.json @@ -1,6 +1,7 @@ { "agent": { "add": { + "description": "Справляйтесь со сложными задачами с помощью различных инструментов", "error": { "failed": "Не удалось добавить агента", "invalid_agent": "Недействительный агент" @@ -547,8 +548,12 @@ "chat": { "add": { "assistant": { + "description": "Ежедневные разговоры и быстрые вопросы и ответы", "title": "Добавить ассистента" }, + "option": { + "title": "Выберите тип" + }, "topic": { "title": "Новый топик" } diff --git a/src/renderer/src/types/sdk.ts b/src/renderer/src/types/sdk.ts index f0ea796932..90a0101563 100644 --- a/src/renderer/src/types/sdk.ts +++ b/src/renderer/src/types/sdk.ts @@ -23,7 +23,6 @@ import type { GoogleGenAI, Model as GeminiModel, SendMessageParameters, - ThinkingConfig, Tool } from '@google/genai' @@ -92,7 +91,10 @@ export type ReasoningEffortOptionalParams = { } extra_body?: { google?: { - thinking_config: ThinkingConfig + thinking_config: { + thinking_budget: number + include_thoughts?: boolean + } } } // Add any other potential reasoning-related keys here if they exist From 9f00f0054693bf58ec4f142db47a10692cecd746 Mon Sep 17 00:00:00 2001 From: defi-failure <159208748+defi-failure@users.noreply.github.com> Date: Sun, 2 Nov 2025 22:28:36 +0800 Subject: [PATCH 06/22] chore: update v1.7.0-beta.3 release notes (#11105) * chore: update v1.7.0-beta.3 release notes * fix(i18n): Auto update translations for PR #11105 * fix: code lint error --------- Co-authored-by: GitHub Action --- electron-builder.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/electron-builder.yml b/electron-builder.yml index ad90b39922..967d1c96a6 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -161,6 +161,9 @@ releaseInfo: - MCP Confirmation: Added confirmation modal when activating protocol-installed MCP servers - Translation: Enhanced translation script with concurrency and validation - Electron & Vite: Updated to Electron 38 and Vite 4.0.1 + - QR Code Generation: Optimized performance for phone LAN export + - Enterprise Settings: Added enterprise section in About settings + - Assistant/Agent Popup: Enhanced UI for adding assistants and agents Claude Code Tool Improvements: - GlobTool: Now counts lines instead of files in output for better clarity @@ -188,6 +191,9 @@ releaseInfo: - Fixed reranker API error response capture - Fixed right-click paste file content into inputbar - Fixed minimax-m2 support in aiCore + - Fixed Azure embedding issues + - Fixed agent edit modal loading race condition + - Fixed debounced save cancellation on file path update v1.7.0-beta.3 新特性 @@ -218,6 +224,9 @@ releaseInfo: - MCP 确认:添加激活协议安装的 MCP 服务器时的确认模态框 - 翻译:增强翻译脚本的并发和验证功能 - Electron & Vite:更新至 Electron 38 和 Vite 4.0.1 + - 二维码生成:优化手机局域网导出性能 + - 企业设置:在关于设置中添加企业部分 + - 助手/Agent 弹窗:增强添加助手和 Agent 的界面 Claude Code 工具改进: - GlobTool:现在计算行数而不是文件数,提供更清晰的输出 @@ -245,4 +254,7 @@ releaseInfo: - 修复 reranker API 错误响应捕获 - 修复右键粘贴文件内容到输入栏 - 修复 aiCore 中的 minimax-m2 支持 + - 修复 Azure embedding 问题 + - 修复 Agent 编辑模态框加载竞态条件 + - 修复文件路径更新时防抖保存取消问题 From 6eaa2b2461ca052b47f2ab9b878ee75fc486a342 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 3 Nov 2025 13:09:40 +0800 Subject: [PATCH 07/22] refactor: remove main window dependency from PythonService and utilize WindowService for window management (#11116) * refactor: remove main window dependency from PythonService and utilize WindowService for window management * format code --- src/main/ipc.ts | 3 --- src/main/services/PythonService.ts | 14 +++++--------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/main/ipc.ts b/src/main/ipc.ts index 0e63f11600..936a0dd008 100644 --- a/src/main/ipc.ts +++ b/src/main/ipc.ts @@ -115,9 +115,6 @@ export function registerIpc(mainWindow: BrowserWindow, app: Electron.App) { const appUpdater = new AppUpdater() const notificationService = new NotificationService() - // Initialize Python service with main window - pythonService.setMainWindow(mainWindow) - const checkMainWindow = () => { if (!mainWindow || mainWindow.isDestroyed()) { throw new Error('Main window does not exist or has been destroyed') diff --git a/src/main/services/PythonService.ts b/src/main/services/PythonService.ts index b4b2596831..e9f59fa3be 100644 --- a/src/main/services/PythonService.ts +++ b/src/main/services/PythonService.ts @@ -1,8 +1,9 @@ import { randomUUID } from 'node:crypto' -import type { BrowserWindow } from 'electron' import { ipcMain } from 'electron' +import { windowService } from './WindowService' + interface PythonExecutionRequest { id: string script: string @@ -21,7 +22,6 @@ interface PythonExecutionResponse { */ export class PythonService { private static instance: PythonService | null = null - private mainWindow: BrowserWindow | null = null private pendingRequests = new Map void; reject: (error: Error) => void }>() private constructor() { @@ -51,10 +51,6 @@ export class PythonService { }) } - public setMainWindow(mainWindow: BrowserWindow) { - this.mainWindow = mainWindow - } - /** * Execute Python code by sending request to renderer PyodideService */ @@ -63,8 +59,8 @@ export class PythonService { context: Record = {}, timeout: number = 60000 ): Promise { - if (!this.mainWindow) { - throw new Error('Main window not set in PythonService') + if (!windowService.getMainWindow()) { + throw new Error('Main window not found') } return new Promise((resolve, reject) => { @@ -95,7 +91,7 @@ export class PythonService { // Send request to renderer const request: PythonExecutionRequest = { id: requestId, script, context, timeout } - this.mainWindow?.webContents.send('python-execution-request', request) + windowService.getMainWindow()?.webContents.send('python-execution-request', request) }) } } From 32a84311aa5e334ae669fb06cbca825baa70cef1 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 3 Nov 2025 13:28:31 +0800 Subject: [PATCH 08/22] feat: add SophNet LLM provider --- .../src/assets/images/providers/sophnet.svg | 13 ++++++++++ src/renderer/src/config/models/default.ts | 1 + src/renderer/src/config/providers.ts | 25 ++++++++++++++++++- src/renderer/src/i18n/label.ts | 3 ++- src/renderer/src/i18n/locales/en-us.json | 1 + src/renderer/src/i18n/locales/zh-cn.json | 1 + src/renderer/src/i18n/locales/zh-tw.json | 1 + src/renderer/src/i18n/translate/de-de.json | 3 ++- src/renderer/src/i18n/translate/el-gr.json | 3 ++- src/renderer/src/i18n/translate/es-es.json | 3 ++- src/renderer/src/i18n/translate/fr-fr.json | 3 ++- src/renderer/src/i18n/translate/ja-jp.json | 1 + src/renderer/src/i18n/translate/pt-pt.json | 3 ++- src/renderer/src/i18n/translate/ru-ru.json | 1 + src/renderer/src/store/index.ts | 2 +- src/renderer/src/store/migrate.ts | 10 ++++++++ src/renderer/src/types/provider.ts | 1 + 17 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 src/renderer/src/assets/images/providers/sophnet.svg diff --git a/src/renderer/src/assets/images/providers/sophnet.svg b/src/renderer/src/assets/images/providers/sophnet.svg new file mode 100644 index 0000000000..aae1e03239 --- /dev/null +++ b/src/renderer/src/assets/images/providers/sophnet.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/renderer/src/config/models/default.ts b/src/renderer/src/config/models/default.ts index 5b242f297d..a56ea7f6cb 100644 --- a/src/renderer/src/config/models/default.ts +++ b/src/renderer/src/config/models/default.ts @@ -27,6 +27,7 @@ export const SYSTEM_MODELS: Record = ], cherryin: [], vertexai: [], + sophnet: [], '302ai': [ { id: 'deepseek-chat', diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 4c25dfff99..2b9fe2b21f 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -46,6 +46,7 @@ import Ph8ProviderLogo from '@renderer/assets/images/providers/ph8.png' import PPIOProviderLogo from '@renderer/assets/images/providers/ppio.png' import QiniuProviderLogo from '@renderer/assets/images/providers/qiniu.webp' import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png' +import SophnetProviderLogo from '@renderer/assets/images/providers/sophnet.svg' import StepProviderLogo from '@renderer/assets/images/providers/step.png' import TencentCloudProviderLogo from '@renderer/assets/images/providers/tencent-cloud-ti.png' import TogetherProviderLogo from '@renderer/assets/images/providers/together.png' @@ -246,6 +247,16 @@ export const SYSTEM_PROVIDERS_CONFIG: Record = isSystem: true, enabled: false }, + sophnet: { + id: 'sophnet', + name: 'SophNet', + type: 'openai', + apiKey: '', + apiHost: 'https://www.sophnet.com/api/open-apis/v1', + models: [], + isSystem: true, + enabled: false + }, ppio: { id: 'ppio', name: 'PPIO', @@ -729,7 +740,8 @@ export const PROVIDER_LOGO_MAP: AtLeast = { poe: 'poe', // use svg icon component aionly: AiOnlyProviderLogo, longcat: LongCatProviderLogo, - huggingface: HuggingfaceProviderLogo + huggingface: HuggingfaceProviderLogo, + sophnet: SophnetProviderLogo } as const export function getProviderLogo(providerId: string) { @@ -808,6 +820,17 @@ export const PROVIDER_URLS: Record = { models: 'https://ai.burncloud.com/pricing' } }, + sophnet: { + api: { + url: 'https://www.sophnet.com/api/open-apis/v1' + }, + websites: { + official: 'https://sophnet.com', + apiKey: 'https://sophnet.com/#/project/key', + docs: 'https://sophnet.com/docs/component/introduce.html', + models: 'https://sophnet.com/#/model/list' + } + }, ppio: { api: { url: 'https://api.ppinfra.com/v3/openai' diff --git a/src/renderer/src/i18n/label.ts b/src/renderer/src/i18n/label.ts index 3736437fc8..14ff45b331 100644 --- a/src/renderer/src/i18n/label.ts +++ b/src/renderer/src/i18n/label.ts @@ -85,7 +85,8 @@ const providerKeyMap = { poe: 'provider.poe', aionly: 'provider.aionly', longcat: 'provider.longcat', - huggingface: 'provider.huggingface' + huggingface: 'provider.huggingface', + sophnet: 'provider.sophnet' } as const /** diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index b3b89851d7..b84cb8bc53 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -2482,6 +2482,7 @@ "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 8f91651bac..a83813b017 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -2482,6 +2482,7 @@ "qiniu": "七牛云 AI 推理", "qwenlm": "QwenLM", "silicon": "硅基流动", + "sophnet": "SophNet", "stepfun": "阶跃星辰", "tencent-cloud-ti": "腾讯云 TI", "together": "Together", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index f89802ee23..76777fd644 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -2482,6 +2482,7 @@ "qiniu": "七牛雲 AI 推理", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "騰訊雲 TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json index 68e491ecb3..9891df74ca 100644 --- a/src/renderer/src/i18n/translate/de-de.json +++ b/src/renderer/src/i18n/translate/de-de.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexity", - "ph8": "PH8 Großmodell-Plattform", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Cloud", "qiniu": "Qiniu Cloud KI-Inferenz", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json index 35d61b1a1c..9a51b4b1df 100644 --- a/src/renderer/src/i18n/translate/el-gr.json +++ b/src/renderer/src/i18n/translate/el-gr.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexity", - "ph8": "Πλατφόρμα Ανοιχτής Μεγάλης Μοντέλου PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Piao Yun", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Σιδηρική Παρουσία", + "sophnet": "SophNet", "stepfun": "Βήμα Ουράς", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json index 75475fef3f..4382c402e1 100644 --- a/src/renderer/src/i18n/translate/es-es.json +++ b/src/renderer/src/i18n/translate/es-es.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplejidad", - "ph8": "Plataforma Abierta de Grandes Modelos PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Cloud Piao", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Silicio Fluido", + "sophnet": "SophNet", "stepfun": "Función Salto", "tencent-cloud-ti": "Tencent Nube TI", "together": "Juntos", diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json index 2076b9a841..4b35eab2fe 100644 --- a/src/renderer/src/i18n/translate/fr-fr.json +++ b/src/renderer/src/i18n/translate/fr-fr.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexité", - "ph8": "Plateforme ouverte de grands modèles PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Cloud Piou", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Silicium Fluide", + "sophnet": "SophNet", "stepfun": "Échelon Étoile", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Ensemble", diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json index c8e6da0d04..be3fbf90a6 100644 --- a/src/renderer/src/i18n/translate/ja-jp.json +++ b/src/renderer/src/i18n/translate/ja-jp.json @@ -2482,6 +2482,7 @@ "qiniu": "七牛云 AI 推理", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json index f75a164a9d..85c6400d0b 100644 --- a/src/renderer/src/i18n/translate/pt-pt.json +++ b/src/renderer/src/i18n/translate/pt-pt.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexidade", - "ph8": "Plataforma Aberta de Grandes Modelos PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Nuvem Piao", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Silício em Fluxo", + "sophnet": "SophNet", "stepfun": "Função de Passo Estelar", "tencent-cloud-ti": "Nuvem TI da Tencent", "together": "Juntos", diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json index de63d96ff3..6f1797917d 100644 --- a/src/renderer/src/i18n/translate/ru-ru.json +++ b/src/renderer/src/i18n/translate/ru-ru.json @@ -2482,6 +2482,7 @@ "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index efd5e415ff..a181e17598 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -67,7 +67,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 169, + version: 170, blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs', 'toolPermissions'], migrate }, diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index c6e3a9576c..a96f81e2d0 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -2783,6 +2783,16 @@ const migrateConfig = { logger.error('migrate 169 error', error as Error) return state } + }, + '170': (state: RootState) => { + try { + addProvider(state, 'sophnet') + state.llm.providers = moveProvider(state.llm.providers, 'sophnet', 17) + return state + } catch (error) { + logger.error('migrate 170 error', error as Error) + return state + } } } diff --git a/src/renderer/src/types/provider.ts b/src/renderer/src/types/provider.ts index e013d3d58a..657e445707 100644 --- a/src/renderer/src/types/provider.ts +++ b/src/renderer/src/types/provider.ts @@ -123,6 +123,7 @@ export const SystemProviderIds = { cephalon: 'cephalon', lanyun: 'lanyun', ph8: 'ph8', + sophnet: 'sophnet', openrouter: 'openrouter', ollama: 'ollama', ovms: 'ovms', From 11bf50e722f1556b10326b46f1c5a02e5c04e5d7 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 3 Nov 2025 14:45:21 +0800 Subject: [PATCH 09/22] fix(i18n): improve label retrieval for paintings image size options --- src/renderer/src/i18n/label.ts | 2 +- .../ProviderSettings/ModelList/ManageModelsPopup.tsx | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/i18n/label.ts b/src/renderer/src/i18n/label.ts index 14ff45b331..f8806359d4 100644 --- a/src/renderer/src/i18n/label.ts +++ b/src/renderer/src/i18n/label.ts @@ -239,7 +239,7 @@ const paintingsImageSizeOptionsKeyMap = { } as const export const getPaintingsImageSizeOptionsLabel = (key: string): string => { - return getLabel(paintingsImageSizeOptionsKeyMap, key) + return paintingsImageSizeOptionsKeyMap[key] ? getLabel(paintingsImageSizeOptionsKeyMap, key) : key } const paintingsQualityOptionsKeyMap = { diff --git a/src/renderer/src/pages/settings/ProviderSettings/ModelList/ManageModelsPopup.tsx b/src/renderer/src/pages/settings/ProviderSettings/ModelList/ManageModelsPopup.tsx index 27f5c67eae..e2ae51394d 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/ModelList/ManageModelsPopup.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/ModelList/ManageModelsPopup.tsx @@ -131,10 +131,11 @@ const PopupContainer: React.FC = ({ providerId, resolve }) => { (model: Model) => { if (!isEmpty(model.name)) { if (isNewApiProvider(provider)) { - if (model.supported_endpoint_types && model.supported_endpoint_types.length > 0) { + const endpointTypes = model.supported_endpoint_types + if (endpointTypes && endpointTypes.length > 0) { addModel({ ...model, - endpoint_type: model.supported_endpoint_types[0], + endpoint_type: endpointTypes.includes('image-generation') ? 'image-generation' : endpointTypes[0], supported_text_delta: !isNotSupportedTextDelta(model) }) } else { From d8f68a6056b57258eab3b011fe71a5e74fca56c7 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 3 Nov 2025 15:12:58 +0800 Subject: [PATCH 10/22] feat: initialize painting model with first available option and update default provider to 'cherryin' --- .../src/pages/paintings/NewApiPage.tsx | 7 +++++++ .../pages/paintings/PaintingsRoutePage.tsx | 20 +++++++++---------- src/renderer/src/store/migrate.ts | 1 + src/renderer/src/store/settings.ts | 2 +- src/renderer/src/types/index.ts | 2 +- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/renderer/src/pages/paintings/NewApiPage.tsx b/src/renderer/src/pages/paintings/NewApiPage.tsx index eae48e5316..86571f446e 100644 --- a/src/renderer/src/pages/paintings/NewApiPage.tsx +++ b/src/renderer/src/pages/paintings/NewApiPage.tsx @@ -482,6 +482,13 @@ const NewApiPage: FC<{ Options: string[] }> = ({ Options }) => { } }, []) + // if painting.model is not set, set it to the first model in modelOptions + useEffect(() => { + if (!painting.model && modelOptions.length > 0) { + updatePaintingState({ model: modelOptions[0].value }) + } + }, [modelOptions, painting.model, updatePaintingState]) + return ( diff --git a/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx b/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx index 9c516560b6..aedd7a418e 100644 --- a/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx +++ b/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx @@ -3,6 +3,7 @@ import { isNewApiProvider } from '@renderer/config/providers' import { useAllProviders } from '@renderer/hooks/useProvider' import { useAppDispatch } from '@renderer/store' import { setDefaultPaintingProvider } from '@renderer/store/settings' +import { updateTab } from '@renderer/store/tabs' import type { PaintingProvider, SystemProviderId } from '@renderer/types' import type { FC } from 'react' import { useEffect, useMemo, useState } from 'react' @@ -25,11 +26,11 @@ const PaintingsRoutePage: FC = () => { const provider = params['*'] const dispatch = useAppDispatch() const providers = useAllProviders() - const Options = useMemo(() => { - return [...BASE_OPTIONS, ...providers.filter((p) => isNewApiProvider(p)).map((p) => p.id)] - }, [providers]) const [ovmsStatus, setOvmsStatus] = useState<'not-installed' | 'not-running' | 'running'>('not-running') + const Options = useMemo(() => [...BASE_OPTIONS, ...providers.filter(isNewApiProvider).map((p) => p.id)], [providers]) + const newApiProviders = useMemo(() => providers.filter(isNewApiProvider), [providers]) + useEffect(() => { const checkStatus = async () => { const status = await window.api.ovms.getStatus() @@ -44,25 +45,24 @@ const PaintingsRoutePage: FC = () => { logger.debug(`defaultPaintingProvider: ${provider}`) if (provider && validOptions.includes(provider)) { dispatch(setDefaultPaintingProvider(provider as PaintingProvider)) + dispatch(updateTab({ id: 'paintings', updates: { path: `/paintings/${provider}` } })) } }, [provider, dispatch, validOptions]) return ( - } /> + } /> } /> } /> } /> } /> } /> } /> - {/* new-api family providers are mounted dynamically below */} - {providers - .filter((p) => isNewApiProvider(p)) - .map((p) => ( - } /> - ))} } /> + {/* new-api family providers are mounted dynamically below */} + {newApiProviders.map((p) => ( + } /> + ))} ) } diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index a96f81e2d0..1a6d32106c 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -2788,6 +2788,7 @@ const migrateConfig = { try { addProvider(state, 'sophnet') state.llm.providers = moveProvider(state.llm.providers, 'sophnet', 17) + state.settings.defaultPaintingProvider = 'cherryin' return state } catch (error) { logger.error('migrate 170 error', error as Error) diff --git a/src/renderer/src/store/settings.ts b/src/renderer/src/store/settings.ts index eccaf733d8..45f521b3df 100644 --- a/src/renderer/src/store/settings.ts +++ b/src/renderer/src/store/settings.ts @@ -390,7 +390,7 @@ export const initialState: SettingsState = { localBackupSyncInterval: 0, localBackupMaxBackups: 0, localBackupSkipBackupFile: false, - defaultPaintingProvider: 'zhipu', + defaultPaintingProvider: 'cherryin', s3: { endpoint: '', region: '', diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 28e0aff882..2026a935ab 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -280,7 +280,7 @@ export type PaintingParams = { providerId?: string } -export type PaintingProvider = 'zhipu' | 'aihubmix' | 'silicon' | 'dmxapi' | 'new-api' | 'ovms' +export type PaintingProvider = 'zhipu' | 'aihubmix' | 'silicon' | 'dmxapi' | 'new-api' | 'ovms' | 'cherryin' export interface Painting extends PaintingParams { model?: string From 4186e9c990824d6d0c1f7fbb87df92479e3d0459 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 3 Nov 2025 16:37:12 +0800 Subject: [PATCH 11/22] feat: add support for TopP in model capabilities and update parameter builder to utilize it --- .../src/aiCore/prepareParams/modelCapabilities.ts | 13 +++++++++++++ .../src/aiCore/prepareParams/parameterBuilder.ts | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/aiCore/prepareParams/modelCapabilities.ts b/src/renderer/src/aiCore/prepareParams/modelCapabilities.ts index 4a3c3f4bbf..b6e4b25843 100644 --- a/src/renderer/src/aiCore/prepareParams/modelCapabilities.ts +++ b/src/renderer/src/aiCore/prepareParams/modelCapabilities.ts @@ -85,6 +85,19 @@ export function supportsLargeFileUpload(model: Model): boolean { }) } +/** + * 检查模型是否支持TopP + */ +export function supportsTopP(model: Model): boolean { + const provider = getProviderByModel(model) + + if (provider?.type === 'anthropic' || model?.endpoint_type === 'anthropic') { + return false + } + + return true +} + /** * 获取提供商特定的文件大小限制 */ diff --git a/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts b/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts index d3fa1cb654..397c481cf3 100644 --- a/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts +++ b/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts @@ -34,6 +34,7 @@ import { setupToolsConfig } from '../utils/mcp' import { buildProviderOptions } from '../utils/options' import { getAnthropicThinkingBudget } from '../utils/reasoning' import { buildProviderBuiltinWebSearchConfig } from '../utils/websearch' +import { supportsTopP } from './modelCapabilities' import { getTemperature, getTopP } from './modelParameters' const logger = loggerService.withContext('parameterBuilder') @@ -176,20 +177,27 @@ export async function buildStreamTextParams( messages: sdkMessages, maxOutputTokens: maxTokens, temperature: getTemperature(assistant, model), - topP: getTopP(assistant, model), abortSignal: options.requestOptions?.signal, headers: options.requestOptions?.headers, providerOptions, stopWhen: stepCountIs(20), maxRetries: 0 } + + if (supportsTopP(model)) { + params.topP = getTopP(assistant, model) + } + if (tools) { params.tools = tools } + if (assistant.prompt) { params.system = await replacePromptVariables(assistant.prompt, model.name) } + logger.debug('params', params) + return { params, modelId: model.id, From 0cf81c04c8a7874acc153b46eb399a5b4b28e23a Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 3 Nov 2025 17:54:29 +0800 Subject: [PATCH 12/22] chore: update electron-builder.yml to exclude additional configuration files from build (#11129) * chore: update electron-builder.yml to exclude additional configuration files from build * delete all hide files --- electron-builder.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/electron-builder.yml b/electron-builder.yml index 967d1c96a6..2815d86e5c 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -21,6 +21,8 @@ files: - "**/*" - "!**/{.vscode,.yarn,.yarn-lock,.github,.cursorrules,.prettierrc}" - "!electron.vite.config.{js,ts,mjs,cjs}}" + - "!.*" + - "!components.json" - "!**/{.eslintignore,.eslintrc.js,.eslintrc.json,.eslintcache,root.eslint.config.js,eslint.config.js,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,eslint.config.mjs,dev-app-update.yml,CHANGELOG.md,README.md,biome.jsonc}" - "!**/{.env,.env.*,.npmrc,pnpm-lock.yaml}" - "!**/{tsconfig.json,tsconfig.tsbuildinfo,tsconfig.node.json,tsconfig.web.json}" From 714a28ac29629227def4fa99d11f8bdc7008edb8 Mon Sep 17 00:00:00 2001 From: Phantom Date: Mon, 3 Nov 2025 20:34:24 +0800 Subject: [PATCH 13/22] fix(QuickPanel): Hide the options that should be hidden in the quick panel. (#10931) * feat(QuickPanel): add hidden property to list items Add support for hiding QuickPanel items by introducing a hidden property. This allows conditional visibility of items like the knowledge base button based on application state. * docs(types): clarify settings field comment in Assistant type --- src/renderer/src/components/QuickPanel/types.ts | 1 + src/renderer/src/components/QuickPanel/view.tsx | 3 ++- src/renderer/src/pages/home/Inputbar/InputbarTools.tsx | 3 ++- src/renderer/src/types/index.ts | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/components/QuickPanel/types.ts b/src/renderer/src/components/QuickPanel/types.ts index 812ec153a6..519180c5b7 100644 --- a/src/renderer/src/components/QuickPanel/types.ts +++ b/src/renderer/src/components/QuickPanel/types.ts @@ -64,6 +64,7 @@ export type QuickPanelListItem = { isSelected?: boolean isMenu?: boolean disabled?: boolean + hidden?: boolean /** * 固定显示项:不参与过滤,始终出现在列表顶部。 * 例如“清除”按钮可设置为 alwaysVisible,从而在有匹配项时始终可见; diff --git a/src/renderer/src/components/QuickPanel/view.tsx b/src/renderer/src/components/QuickPanel/view.tsx index 47a0c6299e..5c6afcbf61 100644 --- a/src/renderer/src/components/QuickPanel/view.tsx +++ b/src/renderer/src/components/QuickPanel/view.tsx @@ -143,7 +143,8 @@ export const QuickPanelView: React.FC = ({ setInputText }) => { prevSymbolRef.current = ctx.symbol // 固定项置顶 + 过滤后的普通项 - return [...pinnedItems, ...filteredNormalItems] + const pinnedFiltered = [...pinnedItems, ...filteredNormalItems] + return pinnedFiltered.filter((item) => !item.hidden) }, [ctx.isVisible, ctx.symbol, ctx.list, searchText]) const canForwardAndBackward = useMemo(() => { diff --git a/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx b/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx index a24d63e8ba..4dee55b167 100644 --- a/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx +++ b/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx @@ -245,6 +245,7 @@ const InputbarTools = ({ icon: , isMenu: true, disabled: files.length > 0, + hidden: !showKnowledgeBaseButton, action: () => { knowledgeBaseButtonRef.current?.openQuickPanel() } @@ -312,7 +313,7 @@ const InputbarTools = ({ translate() } } - ] + ] satisfies QuickPanelListItem[] } const handleDragEnd = (result: DropResult) => { diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 2026a935ab..c86e80a157 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -36,6 +36,7 @@ export type Assistant = { description?: string model?: Model defaultModel?: Model + // This field should be considered as not Partial and not optional in v2 settings?: Partial messages?: AssistantMessage[] /** enableWebSearch 代表使用模型内置网络搜索功能 */ From 49bd298d37567bdb7a1df7c6d4ed0e08affbc576 Mon Sep 17 00:00:00 2001 From: Phantom Date: Mon, 3 Nov 2025 20:36:52 +0800 Subject: [PATCH 14/22] feat(InputbarTools): add reasoning effort button to quick panel (#10959) Add new menu item with lightbulb icon that opens the reasoning effort quick panel when clicked --- src/renderer/src/pages/home/Inputbar/InputbarTools.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx b/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx index 4dee55b167..a3d62e85bf 100644 --- a/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx +++ b/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx @@ -2,6 +2,7 @@ import type { DropResult } from '@hello-pangea/dnd' import { DragDropContext, Draggable, Droppable } from '@hello-pangea/dnd' import { loggerService } from '@logger' import { ActionIconButton } from '@renderer/components/Buttons' +import { MdiLightbulbOn } from '@renderer/components/Icons' import type { QuickPanelListItem } from '@renderer/components/QuickPanel' import { isAnthropicModel, @@ -230,6 +231,15 @@ const InputbarTools = ({ quickPhrasesButtonRef.current?.openQuickPanel() } }, + { + label: t('assistants.settings.reasoning_effort.label'), + description: '', + icon: , + isMenu: true, + action: () => { + thinkingButtonRef.current?.openQuickPanel() + } + }, { label: t('assistants.presets.edit.model.select.title'), description: '', From abd5d3b96ff549aa571938f1b5187a48cb6747ed Mon Sep 17 00:00:00 2001 From: Zephyr Date: Mon, 3 Nov 2025 21:05:10 +0800 Subject: [PATCH 15/22] feat: amazon bedrock request use bedrock api key (#10727) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: amazon bedrock request use bedrock api key * feat: ai-core/provider support bedrock api key * refactor: extract AWS Bedrock auth type and remove redundant state * feat: add bedrock reasoning support Add AWS Bedrock-specific reasoning parameter handling to support Extended Thinking feature for Claude models via Bedrock API. Changes: - Add `buildBedrockProviderOptions` function in options.ts to handle Bedrock-specific provider options - Add `getBedrockReasoningParams` function in reasoning.ts to generate reasoning config with budget tokens - Register 'bedrock' case in provider options switch to route to Bedrock-specific builder - Reuse `getAnthropicThinkingBudget` helper for consistent token budget calculation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * feat: add migration for Bedrock auth type and API key fields * refactor: replace any type with BedrockRuntimeClientConfig in AWS Bedrock client * fix: bug fix * fix: lint error * fix: bedrock reasoning * chore: bump persisted reducer version to 171 * Update src/renderer/src/store/migrate.ts --------- Co-authored-by: Claude Co-authored-by: icarus --- package.json | 6 +- .../legacy/clients/aws/AwsBedrockAPIClient.ts | 59 +- .../src/aiCore/provider/providerConfig.ts | 12 +- src/renderer/src/aiCore/utils/options.ts | 30 + src/renderer/src/aiCore/utils/reasoning.ts | 28 + src/renderer/src/hooks/useAwsBedrock.ts | 19 +- src/renderer/src/i18n/locales/en-us.json | 6 + src/renderer/src/i18n/locales/zh-cn.json | 6 + src/renderer/src/i18n/locales/zh-tw.json | 6 + .../ProviderSettings/AwsBedrockSettings.tsx | 109 +- .../src/services/__tests__/ApiService.test.ts | 2 + src/renderer/src/store/index.ts | 2 +- src/renderer/src/store/llm.ts | 14 +- src/renderer/src/store/migrate.ts | 11 + src/renderer/src/types/provider.ts | 11 + yarn.lock | 2821 +++++------------ 16 files changed, 1120 insertions(+), 2022 deletions(-) diff --git a/package.json b/package.json index 0187f2fef1..f0c0050d2a 100644 --- a/package.json +++ b/package.json @@ -113,9 +113,9 @@ "@ant-design/v5-patch-for-react-19": "^1.0.3", "@anthropic-ai/sdk": "^0.41.0", "@anthropic-ai/vertex-sdk": "patch:@anthropic-ai/vertex-sdk@npm%3A0.11.4#~/.yarn/patches/@anthropic-ai-vertex-sdk-npm-0.11.4-c19cb41edb.patch", - "@aws-sdk/client-bedrock": "^3.840.0", - "@aws-sdk/client-bedrock-runtime": "^3.840.0", - "@aws-sdk/client-s3": "^3.840.0", + "@aws-sdk/client-bedrock": "^3.910.0", + "@aws-sdk/client-bedrock-runtime": "^3.910.0", + "@aws-sdk/client-s3": "^3.910.0", "@biomejs/biome": "2.2.4", "@cherrystudio/ai-core": "workspace:^1.0.0-alpha.18", "@cherrystudio/embedjs": "^0.1.31", diff --git a/src/renderer/src/aiCore/legacy/clients/aws/AwsBedrockAPIClient.ts b/src/renderer/src/aiCore/legacy/clients/aws/AwsBedrockAPIClient.ts index 94f74eecff..c4b0140579 100644 --- a/src/renderer/src/aiCore/legacy/clients/aws/AwsBedrockAPIClient.ts +++ b/src/renderer/src/aiCore/legacy/clients/aws/AwsBedrockAPIClient.ts @@ -1,6 +1,7 @@ import { BedrockClient, ListFoundationModelsCommand, ListInferenceProfilesCommand } from '@aws-sdk/client-bedrock' import { BedrockRuntimeClient, + type BedrockRuntimeClientConfig, ConverseCommand, InvokeModelCommand, InvokeModelWithResponseStreamCommand @@ -11,6 +12,8 @@ import { DEFAULT_MAX_TOKENS } from '@renderer/config/constant' import { findTokenLimit, isReasoningModel } from '@renderer/config/models' import { getAwsBedrockAccessKeyId, + getAwsBedrockApiKey, + getAwsBedrockAuthType, getAwsBedrockRegion, getAwsBedrockSecretAccessKey } from '@renderer/hooks/useAwsBedrock' @@ -75,32 +78,48 @@ export class AwsBedrockAPIClient extends BaseApiClient< } const region = getAwsBedrockRegion() - const accessKeyId = getAwsBedrockAccessKeyId() - const secretAccessKey = getAwsBedrockSecretAccessKey() + const authType = getAwsBedrockAuthType() if (!region) { - throw new Error('AWS region is required. Please configure AWS-Region in extra headers.') + throw new Error('AWS region is required. Please configure AWS region in settings.') } - if (!accessKeyId || !secretAccessKey) { - throw new Error('AWS credentials are required. Please configure AWS-Access-Key-ID and AWS-Secret-Access-Key.') + // Build client configuration based on auth type + let clientConfig: BedrockRuntimeClientConfig + + if (authType === 'iam') { + // IAM credentials authentication + const accessKeyId = getAwsBedrockAccessKeyId() + const secretAccessKey = getAwsBedrockSecretAccessKey() + + if (!accessKeyId || !secretAccessKey) { + throw new Error('AWS credentials are required. Please configure Access Key ID and Secret Access Key.') + } + + clientConfig = { + region, + credentials: { + accessKeyId, + secretAccessKey + } + } + } else { + // API Key authentication + const awsBedrockApiKey = getAwsBedrockApiKey() + + if (!awsBedrockApiKey) { + throw new Error('AWS Bedrock API Key is required. Please configure API Key in settings.') + } + + clientConfig = { + region, + token: { token: awsBedrockApiKey }, + authSchemePreference: ['httpBearerAuth'] + } } - const client = new BedrockRuntimeClient({ - region, - credentials: { - accessKeyId, - secretAccessKey - } - }) - - const bedrockClient = new BedrockClient({ - region, - credentials: { - accessKeyId, - secretAccessKey - } - }) + const client = new BedrockRuntimeClient(clientConfig) + const bedrockClient = new BedrockClient(clientConfig) this.sdkInstance = { client, bedrockClient, region } return this.sdkInstance diff --git a/src/renderer/src/aiCore/provider/providerConfig.ts b/src/renderer/src/aiCore/provider/providerConfig.ts index 15323751c2..c8447671d1 100644 --- a/src/renderer/src/aiCore/provider/providerConfig.ts +++ b/src/renderer/src/aiCore/provider/providerConfig.ts @@ -14,6 +14,8 @@ import { } from '@renderer/config/providers' import { getAwsBedrockAccessKeyId, + getAwsBedrockApiKey, + getAwsBedrockAuthType, getAwsBedrockRegion, getAwsBedrockSecretAccessKey } from '@renderer/hooks/useAwsBedrock' @@ -192,9 +194,15 @@ export function providerToAiSdkConfig( // bedrock if (aiSdkProviderId === 'bedrock') { + const authType = getAwsBedrockAuthType() extraOptions.region = getAwsBedrockRegion() - extraOptions.accessKeyId = getAwsBedrockAccessKeyId() - extraOptions.secretAccessKey = getAwsBedrockSecretAccessKey() + + if (authType === 'apiKey') { + extraOptions.apiKey = getAwsBedrockApiKey() + } else { + extraOptions.accessKeyId = getAwsBedrockAccessKeyId() + extraOptions.secretAccessKey = getAwsBedrockSecretAccessKey() + } } // google-vertex if (aiSdkProviderId === 'google-vertex' || aiSdkProviderId === 'google-vertex-anthropic') { diff --git a/src/renderer/src/aiCore/utils/options.ts b/src/renderer/src/aiCore/utils/options.ts index eaf4764c70..60d9b1e098 100644 --- a/src/renderer/src/aiCore/utils/options.ts +++ b/src/renderer/src/aiCore/utils/options.ts @@ -17,6 +17,7 @@ import { getAiSdkProviderId } from '../provider/factory' import { buildGeminiGenerateImageParams } from './image' import { getAnthropicReasoningParams, + getBedrockReasoningParams, getCustomParameters, getGeminiReasoningParams, getOpenAIReasoningParams, @@ -127,6 +128,9 @@ export function buildProviderOptions( case 'google-vertex-anthropic': providerSpecificOptions = buildAnthropicProviderOptions(assistant, model, capabilities) break + case 'bedrock': + providerSpecificOptions = buildBedrockProviderOptions(assistant, model, capabilities) + break default: // 对于其他 provider,使用通用的构建逻辑 providerSpecificOptions = { @@ -266,6 +270,32 @@ function buildXAIProviderOptions( return providerOptions } +/** + * Build Bedrock providerOptions + */ +function buildBedrockProviderOptions( + assistant: Assistant, + model: Model, + capabilities: { + enableReasoning: boolean + enableWebSearch: boolean + enableGenerateImage: boolean + } +): Record { + const { enableReasoning } = capabilities + let providerOptions: Record = {} + + if (enableReasoning) { + const reasoningParams = getBedrockReasoningParams(assistant, model) + providerOptions = { + ...providerOptions, + ...reasoningParams + } + } + + return providerOptions +} + /** * 构建通用的 providerOptions(用于其他 provider) */ diff --git a/src/renderer/src/aiCore/utils/reasoning.ts b/src/renderer/src/aiCore/utils/reasoning.ts index 7b5a6890d7..3a36fb658a 100644 --- a/src/renderer/src/aiCore/utils/reasoning.ts +++ b/src/renderer/src/aiCore/utils/reasoning.ts @@ -485,6 +485,34 @@ export function getXAIReasoningParams(assistant: Assistant, model: Model): Recor } } +/** + * Get Bedrock reasoning parameters + */ +export function getBedrockReasoningParams(assistant: Assistant, model: Model): Record { + if (!isReasoningModel(model)) { + return {} + } + + const reasoningEffort = assistant?.settings?.reasoning_effort + + if (reasoningEffort === undefined) { + return {} + } + + // Only apply thinking budget for Claude reasoning models + if (!isSupportedThinkingTokenClaudeModel(model)) { + return {} + } + + const budgetTokens = getAnthropicThinkingBudget(assistant, model) + return { + reasoningConfig: { + type: 'enabled', + budgetTokens: budgetTokens + } + } +} + /** * 获取自定义参数 * 从 assistant 设置中提取自定义参数 diff --git a/src/renderer/src/hooks/useAwsBedrock.ts b/src/renderer/src/hooks/useAwsBedrock.ts index e84608a3bb..619eedd4ea 100644 --- a/src/renderer/src/hooks/useAwsBedrock.ts +++ b/src/renderer/src/hooks/useAwsBedrock.ts @@ -1,5 +1,12 @@ import store, { useAppSelector } from '@renderer/store' -import { setAwsBedrockAccessKeyId, setAwsBedrockRegion, setAwsBedrockSecretAccessKey } from '@renderer/store/llm' +import { + setAwsBedrockAccessKeyId, + setAwsBedrockApiKey, + setAwsBedrockAuthType, + setAwsBedrockRegion, + setAwsBedrockSecretAccessKey +} from '@renderer/store/llm' +import type { AwsBedrockAuthType } from '@renderer/types' import { useDispatch } from 'react-redux' export function useAwsBedrockSettings() { @@ -8,8 +15,10 @@ export function useAwsBedrockSettings() { return { ...settings, + setAuthType: (authType: AwsBedrockAuthType) => dispatch(setAwsBedrockAuthType(authType)), setAccessKeyId: (accessKeyId: string) => dispatch(setAwsBedrockAccessKeyId(accessKeyId)), setSecretAccessKey: (secretAccessKey: string) => dispatch(setAwsBedrockSecretAccessKey(secretAccessKey)), + setApiKey: (apiKey: string) => dispatch(setAwsBedrockApiKey(apiKey)), setRegion: (region: string) => dispatch(setAwsBedrockRegion(region)) } } @@ -18,6 +27,10 @@ export function getAwsBedrockSettings() { return store.getState().llm.settings.awsBedrock } +export function getAwsBedrockAuthType() { + return store.getState().llm.settings.awsBedrock.authType +} + export function getAwsBedrockAccessKeyId() { return store.getState().llm.settings.awsBedrock.accessKeyId } @@ -26,6 +39,10 @@ export function getAwsBedrockSecretAccessKey() { return store.getState().llm.settings.awsBedrock.secretAccessKey } +export function getAwsBedrockApiKey() { + return store.getState().llm.settings.awsBedrock.apiKey +} + export function getAwsBedrockRegion() { return store.getState().llm.settings.awsBedrock.region } diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index b84cb8bc53..36ce60edb6 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "AWS Access Key ID", "access_key_id_help": "Your AWS Access Key ID for accessing AWS Bedrock services", + "api_key": "Bedrock API Key", + "api_key_help": "Your AWS Bedrock API Key for authentication", + "auth_type": "Authentication Type", + "auth_type_api_key": "Bedrock API Key", + "auth_type_help": "Choose between IAM credentials or Bedrock API Key authentication", + "auth_type_iam": "IAM Credentials", "description": "AWS Bedrock is Amazon's fully managed foundation model service that supports various advanced large language models", "region": "AWS Region", "region_help": "Your AWS service region, e.g., us-east-1", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index a83813b017..0acb816a1c 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "AWS 访问密钥 ID", "access_key_id_help": "您的 AWS 访问密钥 ID,用于访问 AWS Bedrock 服务", + "api_key": "Bedrock API 密钥", + "api_key_help": "您的 AWS Bedrock API 密钥,用于身份验证", + "auth_type": "认证方式", + "auth_type_api_key": "Bedrock API 密钥", + "auth_type_help": "选择使用 IAM 凭证或 Bedrock API 密钥进行身份验证", + "auth_type_iam": "IAM 凭证", "description": "AWS Bedrock 是亚马逊提供的全托管基础模型服务,支持多种先进的大语言模型", "region": "AWS 区域", "region_help": "您的 AWS 服务区域,例如 us-east-1", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index 76777fd644..913a4de5ad 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "AWS 存取密鑰 ID", "access_key_id_help": "您的 AWS 存取密鑰 ID,用於存取 AWS Bedrock 服務", + "api_key": "Bedrock API 金鑰", + "api_key_help": "您的 AWS Bedrock API 金鑰,用於身份驗證", + "auth_type": "認證方式", + "auth_type_api_key": "Bedrock API 金鑰", + "auth_type_help": "選擇使用 IAM 憑證或 Bedrock API 金鑰進行身份驗證", + "auth_type_iam": "IAM 憑證", "description": "AWS Bedrock 是亞馬遜提供的全托管基础模型服務,支持多種先進的大語言模型", "region": "AWS 區域", "region_help": "您的 AWS 服務區域,例如 us-east-1", diff --git a/src/renderer/src/pages/settings/ProviderSettings/AwsBedrockSettings.tsx b/src/renderer/src/pages/settings/ProviderSettings/AwsBedrockSettings.tsx index 198765da9b..75278c917f 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/AwsBedrockSettings.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/AwsBedrockSettings.tsx @@ -1,7 +1,7 @@ import { HStack } from '@renderer/components/Layout' import { PROVIDER_URLS } from '@renderer/config/providers' import { useAwsBedrockSettings } from '@renderer/hooks/useAwsBedrock' -import { Alert, Input } from 'antd' +import { Alert, Input, Radio } from 'antd' import type { FC } from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -10,14 +10,25 @@ import { SettingHelpLink, SettingHelpText, SettingHelpTextRow, SettingSubtitle } const AwsBedrockSettings: FC = () => { const { t } = useTranslation() - const { accessKeyId, secretAccessKey, region, setAccessKeyId, setSecretAccessKey, setRegion } = - useAwsBedrockSettings() + const { + authType, + accessKeyId, + secretAccessKey, + apiKey, + region, + setAuthType, + setAccessKeyId, + setSecretAccessKey, + setApiKey, + setRegion + } = useAwsBedrockSettings() const providerConfig = PROVIDER_URLS['aws-bedrock'] const apiKeyWebsite = providerConfig?.websites?.apiKey const [localAccessKeyId, setLocalAccessKeyId] = useState(accessKeyId) const [localSecretAccessKey, setLocalSecretAccessKey] = useState(secretAccessKey) + const [localApiKey, setLocalApiKey] = useState(apiKey) const [localRegion, setLocalRegion] = useState(region) return ( @@ -25,39 +36,75 @@ const AwsBedrockSettings: FC = () => { {t('settings.provider.aws-bedrock.title')} - {t('settings.provider.aws-bedrock.access_key_id')} - setLocalAccessKeyId(e.target.value)} - onBlur={() => setAccessKeyId(localAccessKeyId)} - style={{ marginTop: 5 }} - /> + {/* Authentication Type Selector */} + {t('settings.provider.aws-bedrock.auth_type')} + setAuthType(e.target.value)} style={{ marginTop: 5 }}> + {t('settings.provider.aws-bedrock.auth_type_iam')} + {t('settings.provider.aws-bedrock.auth_type_api_key')} + - {t('settings.provider.aws-bedrock.access_key_id_help')} + {t('settings.provider.aws-bedrock.auth_type_help')} - {t('settings.provider.aws-bedrock.secret_access_key')} - setLocalSecretAccessKey(e.target.value)} - onBlur={() => setSecretAccessKey(localSecretAccessKey)} - style={{ marginTop: 5 }} - spellCheck={false} - /> - {apiKeyWebsite && ( - - - - {t('settings.provider.get_api_key')} - - - {t('settings.provider.aws-bedrock.secret_access_key_help')} - + {/* IAM Credentials Fields */} + {authType === 'iam' && ( + <> + + {t('settings.provider.aws-bedrock.access_key_id')} + + setLocalAccessKeyId(e.target.value)} + onBlur={() => setAccessKeyId(localAccessKeyId)} + style={{ marginTop: 5 }} + /> + + {t('settings.provider.aws-bedrock.access_key_id_help')} + + + + {t('settings.provider.aws-bedrock.secret_access_key')} + + setLocalSecretAccessKey(e.target.value)} + onBlur={() => setSecretAccessKey(localSecretAccessKey)} + style={{ marginTop: 5 }} + spellCheck={false} + /> + {apiKeyWebsite && ( + + + + {t('settings.provider.get_api_key')} + + + {t('settings.provider.aws-bedrock.secret_access_key_help')} + + )} + )} - {t('settings.provider.aws-bedrock.region')} + {authType === 'apiKey' && ( + <> + {t('settings.provider.aws-bedrock.api_key')} + setLocalApiKey(e.target.value)} + onBlur={() => setApiKey(localApiKey)} + style={{ marginTop: 5 }} + spellCheck={false} + /> + + {t('settings.provider.aws-bedrock.api_key_help')} + + + )} + + {t('settings.provider.aws-bedrock.region')} { location: '' }, awsBedrock: { + authType: 'iam', accessKeyId: '', secretAccessKey: '', + apiKey: '', region: '' } } diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index a181e17598..e68ada058f 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -67,7 +67,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 170, + version: 171, blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs', 'toolPermissions'], migrate }, diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 737de4440b..15f256382e 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -3,7 +3,7 @@ import { createSlice } from '@reduxjs/toolkit' import { isLocalAi } from '@renderer/config/env' import { SYSTEM_MODELS } from '@renderer/config/models' import { SYSTEM_PROVIDERS } from '@renderer/config/providers' -import type { Model, Provider } from '@renderer/types' +import type { AwsBedrockAuthType, Model, Provider } from '@renderer/types' import { uniqBy } from 'lodash' type LlmSettings = { @@ -25,8 +25,10 @@ type LlmSettings = { location: string } awsBedrock: { + authType: AwsBedrockAuthType accessKeyId: string secretAccessKey: string + apiKey: string region: string } } @@ -68,8 +70,10 @@ export const initialState: LlmState = { location: '' }, awsBedrock: { + authType: 'iam', accessKeyId: '', secretAccessKey: '', + apiKey: '', region: '' } } @@ -197,12 +201,18 @@ const llmSlice = createSlice({ setVertexAIServiceAccountClientEmail: (state, action: PayloadAction) => { state.settings.vertexai.serviceAccount.clientEmail = action.payload }, + setAwsBedrockAuthType: (state, action: PayloadAction) => { + state.settings.awsBedrock.authType = action.payload + }, setAwsBedrockAccessKeyId: (state, action: PayloadAction) => { state.settings.awsBedrock.accessKeyId = action.payload }, setAwsBedrockSecretAccessKey: (state, action: PayloadAction) => { state.settings.awsBedrock.secretAccessKey = action.payload }, + setAwsBedrockApiKey: (state, action: PayloadAction) => { + state.settings.awsBedrock.apiKey = action.payload + }, setAwsBedrockRegion: (state, action: PayloadAction) => { state.settings.awsBedrock.region = action.payload }, @@ -242,8 +252,10 @@ export const { setVertexAILocation, setVertexAIServiceAccountPrivateKey, setVertexAIServiceAccountClientEmail, + setAwsBedrockAuthType, setAwsBedrockAccessKeyId, setAwsBedrockSecretAccessKey, + setAwsBedrockApiKey, setAwsBedrockRegion, updateModel } = llmSlice.actions diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index 1a6d32106c..d4bebf6023 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -2794,6 +2794,17 @@ const migrateConfig = { logger.error('migrate 170 error', error as Error) return state } + }, + '171': (state: RootState) => { + try { + addProvider(state, 'sophnet') + state.llm.providers = moveProvider(state.llm.providers, 'sophnet', 17) + state.settings.defaultPaintingProvider = 'cherryin' + return state + } catch (error) { + logger.error('migrate 171 error', error as Error) + return state + } } } diff --git a/src/renderer/src/types/provider.ts b/src/renderer/src/types/provider.ts index 657e445707..b7d669e1f2 100644 --- a/src/renderer/src/types/provider.ts +++ b/src/renderer/src/types/provider.ts @@ -73,6 +73,17 @@ export function isServiceTier(tier: string): tier is ServiceTier { return isGroqServiceTier(tier) || isOpenAIServiceTier(tier) } +export const AwsBedrockAuthTypes = { + iam: 'iam', + apiKey: 'apiKey' +} as const + +export type AwsBedrockAuthType = keyof typeof AwsBedrockAuthTypes + +export function isAwsBedrockAuthType(type: string): type is AwsBedrockAuthType { + return Object.hasOwn(AwsBedrockAuthTypes, type) +} + export type Provider = { id: string type: ProviderType diff --git a/yarn.lock b/yarn.lock index 1d4550b9b4..73436f5108 100644 --- a/yarn.lock +++ b/yarn.lock @@ -721,1209 +721,645 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-bedrock-runtime@npm:^3.840.0": - version: 3.848.0 - resolution: "@aws-sdk/client-bedrock-runtime@npm:3.848.0" +"@aws-sdk/client-bedrock-runtime@npm:^3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/client-bedrock-runtime@npm:3.910.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/credential-provider-node": "npm:3.848.0" - "@aws-sdk/eventstream-handler-node": "npm:3.840.0" - "@aws-sdk/middleware-eventstream": "npm:3.840.0" - "@aws-sdk/middleware-host-header": "npm:3.840.0" - "@aws-sdk/middleware-logger": "npm:3.840.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.840.0" - "@aws-sdk/middleware-user-agent": "npm:3.848.0" - "@aws-sdk/middleware-websocket": "npm:3.844.0" - "@aws-sdk/region-config-resolver": "npm:3.840.0" - "@aws-sdk/token-providers": "npm:3.848.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.848.0" - "@aws-sdk/util-user-agent-browser": "npm:3.840.0" - "@aws-sdk/util-user-agent-node": "npm:3.848.0" - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/core": "npm:^3.7.0" - "@smithy/eventstream-serde-browser": "npm:^4.0.4" - "@smithy/eventstream-serde-config-resolver": "npm:^4.1.2" - "@smithy/eventstream-serde-node": "npm:^4.0.4" - "@smithy/fetch-http-handler": "npm:^5.1.0" - "@smithy/hash-node": "npm:^4.0.4" - "@smithy/invalid-dependency": "npm:^4.0.4" - "@smithy/middleware-content-length": "npm:^4.0.4" - "@smithy/middleware-endpoint": "npm:^4.1.15" - "@smithy/middleware-retry": "npm:^4.1.16" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/node-http-handler": "npm:^4.1.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.7" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.23" - "@smithy/util-defaults-mode-node": "npm:^4.0.23" - "@smithy/util-endpoints": "npm:^3.0.6" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" - "@smithy/util-stream": "npm:^4.2.3" - "@smithy/util-utf8": "npm:^4.0.0" - "@types/uuid": "npm:^9.0.1" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/credential-provider-node": "npm:3.910.0" + "@aws-sdk/eventstream-handler-node": "npm:3.910.0" + "@aws-sdk/middleware-eventstream": "npm:3.910.0" + "@aws-sdk/middleware-host-header": "npm:3.910.0" + "@aws-sdk/middleware-logger": "npm:3.910.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.910.0" + "@aws-sdk/middleware-user-agent": "npm:3.910.0" + "@aws-sdk/middleware-websocket": "npm:3.910.0" + "@aws-sdk/region-config-resolver": "npm:3.910.0" + "@aws-sdk/token-providers": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-endpoints": "npm:3.910.0" + "@aws-sdk/util-user-agent-browser": "npm:3.910.0" + "@aws-sdk/util-user-agent-node": "npm:3.910.0" + "@smithy/config-resolver": "npm:^4.3.2" + "@smithy/core": "npm:^3.16.1" + "@smithy/eventstream-serde-browser": "npm:^4.2.2" + "@smithy/eventstream-serde-config-resolver": "npm:^4.3.2" + "@smithy/eventstream-serde-node": "npm:^4.2.2" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/hash-node": "npm:^4.2.2" + "@smithy/invalid-dependency": "npm:^4.2.2" + "@smithy/middleware-content-length": "npm:^4.2.2" + "@smithy/middleware-endpoint": "npm:^4.3.3" + "@smithy/middleware-retry": "npm:^4.4.3" + "@smithy/middleware-serde": "npm:^4.2.2" + "@smithy/middleware-stack": "npm:^4.2.2" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/node-http-handler": "npm:^4.4.1" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.2" + "@smithy/util-defaults-mode-node": "npm:^4.2.3" + "@smithy/util-endpoints": "npm:^3.2.2" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-retry": "npm:^4.2.2" + "@smithy/util-stream": "npm:^4.5.2" + "@smithy/util-utf8": "npm:^4.2.0" + "@smithy/uuid": "npm:^1.1.0" tslib: "npm:^2.6.2" - uuid: "npm:^9.0.1" - checksum: 10c0/6aae8b8a8970f55605c89aa15d7efc189120cb54b64a9f57348ac4085b422d4d839fa5ed8b0d2d8ca4efc4a5326bf6988f61ded8f2b1cde79455c3bd4705ece6 + checksum: 10c0/b13ddcbf3453603612531df9ff056510755adde400ec1ed3357e8da129696cb36d80834e4ddd8abd34c076182389b24abbc3705bf9342fe9b341db785c37a63e languageName: node linkType: hard -"@aws-sdk/client-bedrock@npm:^3.840.0": - version: 3.864.0 - resolution: "@aws-sdk/client-bedrock@npm:3.864.0" +"@aws-sdk/client-bedrock@npm:^3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/client-bedrock@npm:3.910.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/credential-provider-node": "npm:3.864.0" - "@aws-sdk/middleware-host-header": "npm:3.862.0" - "@aws-sdk/middleware-logger": "npm:3.862.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.862.0" - "@aws-sdk/middleware-user-agent": "npm:3.864.0" - "@aws-sdk/region-config-resolver": "npm:3.862.0" - "@aws-sdk/token-providers": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@aws-sdk/util-endpoints": "npm:3.862.0" - "@aws-sdk/util-user-agent-browser": "npm:3.862.0" - "@aws-sdk/util-user-agent-node": "npm:3.864.0" - "@smithy/config-resolver": "npm:^4.1.5" - "@smithy/core": "npm:^3.8.0" - "@smithy/fetch-http-handler": "npm:^5.1.1" - "@smithy/hash-node": "npm:^4.0.5" - "@smithy/invalid-dependency": "npm:^4.0.5" - "@smithy/middleware-content-length": "npm:^4.0.5" - "@smithy/middleware-endpoint": "npm:^4.1.18" - "@smithy/middleware-retry": "npm:^4.1.19" - "@smithy/middleware-serde": "npm:^4.0.9" - "@smithy/middleware-stack": "npm:^4.0.5" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/node-http-handler": "npm:^4.1.1" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - "@smithy/url-parser": "npm:^4.0.5" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.26" - "@smithy/util-defaults-mode-node": "npm:^4.0.26" - "@smithy/util-endpoints": "npm:^3.0.7" - "@smithy/util-middleware": "npm:^4.0.5" - "@smithy/util-retry": "npm:^4.0.7" - "@smithy/util-utf8": "npm:^4.0.0" - "@types/uuid": "npm:^9.0.1" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/credential-provider-node": "npm:3.910.0" + "@aws-sdk/middleware-host-header": "npm:3.910.0" + "@aws-sdk/middleware-logger": "npm:3.910.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.910.0" + "@aws-sdk/middleware-user-agent": "npm:3.910.0" + "@aws-sdk/region-config-resolver": "npm:3.910.0" + "@aws-sdk/token-providers": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-endpoints": "npm:3.910.0" + "@aws-sdk/util-user-agent-browser": "npm:3.910.0" + "@aws-sdk/util-user-agent-node": "npm:3.910.0" + "@smithy/config-resolver": "npm:^4.3.2" + "@smithy/core": "npm:^3.16.1" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/hash-node": "npm:^4.2.2" + "@smithy/invalid-dependency": "npm:^4.2.2" + "@smithy/middleware-content-length": "npm:^4.2.2" + "@smithy/middleware-endpoint": "npm:^4.3.3" + "@smithy/middleware-retry": "npm:^4.4.3" + "@smithy/middleware-serde": "npm:^4.2.2" + "@smithy/middleware-stack": "npm:^4.2.2" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/node-http-handler": "npm:^4.4.1" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.2" + "@smithy/util-defaults-mode-node": "npm:^4.2.3" + "@smithy/util-endpoints": "npm:^3.2.2" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-retry": "npm:^4.2.2" + "@smithy/util-utf8": "npm:^4.2.0" + "@smithy/uuid": "npm:^1.1.0" tslib: "npm:^2.6.2" - uuid: "npm:^9.0.1" - checksum: 10c0/ab2d473f3b7d7d95baa03f25117eb70314c2904554b10163a0b63d1f1abba858c2791aa7565832289104a277d51196e1c1cfea6b9ce2628c20fffd607d09bb79 + checksum: 10c0/f70fd04f589a7e9d14c9862d3a1444023e0fb8c72a21aa162eb2077def9fb26c68650b117429be1db74e63908316ae28d8040a1165360c513c66a3876d446606 languageName: node linkType: hard -"@aws-sdk/client-s3@npm:^3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/client-s3@npm:3.840.0" +"@aws-sdk/client-s3@npm:^3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/client-s3@npm:3.910.0" dependencies: "@aws-crypto/sha1-browser": "npm:5.2.0" "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/credential-provider-node": "npm:3.840.0" - "@aws-sdk/middleware-bucket-endpoint": "npm:3.840.0" - "@aws-sdk/middleware-expect-continue": "npm:3.840.0" - "@aws-sdk/middleware-flexible-checksums": "npm:3.840.0" - "@aws-sdk/middleware-host-header": "npm:3.840.0" - "@aws-sdk/middleware-location-constraint": "npm:3.840.0" - "@aws-sdk/middleware-logger": "npm:3.840.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.840.0" - "@aws-sdk/middleware-sdk-s3": "npm:3.840.0" - "@aws-sdk/middleware-ssec": "npm:3.840.0" - "@aws-sdk/middleware-user-agent": "npm:3.840.0" - "@aws-sdk/region-config-resolver": "npm:3.840.0" - "@aws-sdk/signature-v4-multi-region": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.840.0" - "@aws-sdk/util-user-agent-browser": "npm:3.840.0" - "@aws-sdk/util-user-agent-node": "npm:3.840.0" - "@aws-sdk/xml-builder": "npm:3.821.0" - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/core": "npm:^3.6.0" - "@smithy/eventstream-serde-browser": "npm:^4.0.4" - "@smithy/eventstream-serde-config-resolver": "npm:^4.1.2" - "@smithy/eventstream-serde-node": "npm:^4.0.4" - "@smithy/fetch-http-handler": "npm:^5.0.4" - "@smithy/hash-blob-browser": "npm:^4.0.4" - "@smithy/hash-node": "npm:^4.0.4" - "@smithy/hash-stream-node": "npm:^4.0.4" - "@smithy/invalid-dependency": "npm:^4.0.4" - "@smithy/md5-js": "npm:^4.0.4" - "@smithy/middleware-content-length": "npm:^4.0.4" - "@smithy/middleware-endpoint": "npm:^4.1.13" - "@smithy/middleware-retry": "npm:^4.1.14" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/node-http-handler": "npm:^4.0.6" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.21" - "@smithy/util-defaults-mode-node": "npm:^4.0.21" - "@smithy/util-endpoints": "npm:^3.0.6" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" - "@smithy/util-stream": "npm:^4.2.2" - "@smithy/util-utf8": "npm:^4.0.0" - "@smithy/util-waiter": "npm:^4.0.6" - "@types/uuid": "npm:^9.0.1" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/credential-provider-node": "npm:3.910.0" + "@aws-sdk/middleware-bucket-endpoint": "npm:3.910.0" + "@aws-sdk/middleware-expect-continue": "npm:3.910.0" + "@aws-sdk/middleware-flexible-checksums": "npm:3.910.0" + "@aws-sdk/middleware-host-header": "npm:3.910.0" + "@aws-sdk/middleware-location-constraint": "npm:3.910.0" + "@aws-sdk/middleware-logger": "npm:3.910.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.910.0" + "@aws-sdk/middleware-sdk-s3": "npm:3.910.0" + "@aws-sdk/middleware-ssec": "npm:3.910.0" + "@aws-sdk/middleware-user-agent": "npm:3.910.0" + "@aws-sdk/region-config-resolver": "npm:3.910.0" + "@aws-sdk/signature-v4-multi-region": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-endpoints": "npm:3.910.0" + "@aws-sdk/util-user-agent-browser": "npm:3.910.0" + "@aws-sdk/util-user-agent-node": "npm:3.910.0" + "@aws-sdk/xml-builder": "npm:3.910.0" + "@smithy/config-resolver": "npm:^4.3.2" + "@smithy/core": "npm:^3.16.1" + "@smithy/eventstream-serde-browser": "npm:^4.2.2" + "@smithy/eventstream-serde-config-resolver": "npm:^4.3.2" + "@smithy/eventstream-serde-node": "npm:^4.2.2" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/hash-blob-browser": "npm:^4.2.3" + "@smithy/hash-node": "npm:^4.2.2" + "@smithy/hash-stream-node": "npm:^4.2.2" + "@smithy/invalid-dependency": "npm:^4.2.2" + "@smithy/md5-js": "npm:^4.2.2" + "@smithy/middleware-content-length": "npm:^4.2.2" + "@smithy/middleware-endpoint": "npm:^4.3.3" + "@smithy/middleware-retry": "npm:^4.4.3" + "@smithy/middleware-serde": "npm:^4.2.2" + "@smithy/middleware-stack": "npm:^4.2.2" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/node-http-handler": "npm:^4.4.1" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.2" + "@smithy/util-defaults-mode-node": "npm:^4.2.3" + "@smithy/util-endpoints": "npm:^3.2.2" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-retry": "npm:^4.2.2" + "@smithy/util-stream": "npm:^4.5.2" + "@smithy/util-utf8": "npm:^4.2.0" + "@smithy/util-waiter": "npm:^4.2.2" + "@smithy/uuid": "npm:^1.1.0" tslib: "npm:^2.6.2" - uuid: "npm:^9.0.1" - checksum: 10c0/c923c8a0b6743f81478758641190b7c1da8306e7f6bf81d7f9df722be183f7ad506ad47e1b9de0807961fffec6b36074385d4c611c0c2fb08c8e5b1d47948a48 + checksum: 10c0/9142a2a56b6acd83d20adf4d2f9942663ba7c815158233085215d59b126234bff243b434ceb43dc59c5b3b315d44930a0b4a1993257981985b18d71756538a8a languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/client-sso@npm:3.840.0" +"@aws-sdk/client-sso@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/client-sso@npm:3.910.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/middleware-host-header": "npm:3.840.0" - "@aws-sdk/middleware-logger": "npm:3.840.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.840.0" - "@aws-sdk/middleware-user-agent": "npm:3.840.0" - "@aws-sdk/region-config-resolver": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.840.0" - "@aws-sdk/util-user-agent-browser": "npm:3.840.0" - "@aws-sdk/util-user-agent-node": "npm:3.840.0" - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/core": "npm:^3.6.0" - "@smithy/fetch-http-handler": "npm:^5.0.4" - "@smithy/hash-node": "npm:^4.0.4" - "@smithy/invalid-dependency": "npm:^4.0.4" - "@smithy/middleware-content-length": "npm:^4.0.4" - "@smithy/middleware-endpoint": "npm:^4.1.13" - "@smithy/middleware-retry": "npm:^4.1.14" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/node-http-handler": "npm:^4.0.6" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.21" - "@smithy/util-defaults-mode-node": "npm:^4.0.21" - "@smithy/util-endpoints": "npm:^3.0.6" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/middleware-host-header": "npm:3.910.0" + "@aws-sdk/middleware-logger": "npm:3.910.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.910.0" + "@aws-sdk/middleware-user-agent": "npm:3.910.0" + "@aws-sdk/region-config-resolver": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-endpoints": "npm:3.910.0" + "@aws-sdk/util-user-agent-browser": "npm:3.910.0" + "@aws-sdk/util-user-agent-node": "npm:3.910.0" + "@smithy/config-resolver": "npm:^4.3.2" + "@smithy/core": "npm:^3.16.1" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/hash-node": "npm:^4.2.2" + "@smithy/invalid-dependency": "npm:^4.2.2" + "@smithy/middleware-content-length": "npm:^4.2.2" + "@smithy/middleware-endpoint": "npm:^4.3.3" + "@smithy/middleware-retry": "npm:^4.4.3" + "@smithy/middleware-serde": "npm:^4.2.2" + "@smithy/middleware-stack": "npm:^4.2.2" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/node-http-handler": "npm:^4.4.1" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.2" + "@smithy/util-defaults-mode-node": "npm:^4.2.3" + "@smithy/util-endpoints": "npm:^3.2.2" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-retry": "npm:^4.2.2" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/6d83d3dfefaab731818eade68f08f563906e9bee37c0836da262f47b15be8b1885e813a67927dd2549b1a043dffb551a2ec39a963ef335b9df54e8b9faf534e5 + checksum: 10c0/d0f634c2f2c1c6234e1706470ca29f9455e97257d6263add984180e7d3c547f442673d031a1a3b6be68c78e1a4424719147cdf96b52f1bb7cc4ead70915d648b languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/client-sso@npm:3.848.0" +"@aws-sdk/core@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/core@npm:3.910.0" dependencies: - "@aws-crypto/sha256-browser": "npm:5.2.0" - "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/middleware-host-header": "npm:3.840.0" - "@aws-sdk/middleware-logger": "npm:3.840.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.840.0" - "@aws-sdk/middleware-user-agent": "npm:3.848.0" - "@aws-sdk/region-config-resolver": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.848.0" - "@aws-sdk/util-user-agent-browser": "npm:3.840.0" - "@aws-sdk/util-user-agent-node": "npm:3.848.0" - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/core": "npm:^3.7.0" - "@smithy/fetch-http-handler": "npm:^5.1.0" - "@smithy/hash-node": "npm:^4.0.4" - "@smithy/invalid-dependency": "npm:^4.0.4" - "@smithy/middleware-content-length": "npm:^4.0.4" - "@smithy/middleware-endpoint": "npm:^4.1.15" - "@smithy/middleware-retry": "npm:^4.1.16" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/node-http-handler": "npm:^4.1.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.7" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.23" - "@smithy/util-defaults-mode-node": "npm:^4.0.23" - "@smithy/util-endpoints": "npm:^3.0.6" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/xml-builder": "npm:3.910.0" + "@smithy/core": "npm:^3.16.1" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/signature-v4": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/758d98cec61ee94f90e476584955409800368346ce9cafaad9d2012579655ddd7500ec31e6e4f409d4d14365ed44379b248a47b2d5a7c4dfde6658d17efea25a + checksum: 10c0/15b0215f49da8295ca9424695f2aa2f6eb578647397a57f43d56288b7f77cf4112a3a897afc7cd14bfe1f8943b2ef78bdc2788ff7eca0e57cb2029d99f71902c languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/client-sso@npm:3.864.0" +"@aws-sdk/credential-provider-env@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.910.0" dependencies: - "@aws-crypto/sha256-browser": "npm:5.2.0" - "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/middleware-host-header": "npm:3.862.0" - "@aws-sdk/middleware-logger": "npm:3.862.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.862.0" - "@aws-sdk/middleware-user-agent": "npm:3.864.0" - "@aws-sdk/region-config-resolver": "npm:3.862.0" - "@aws-sdk/types": "npm:3.862.0" - "@aws-sdk/util-endpoints": "npm:3.862.0" - "@aws-sdk/util-user-agent-browser": "npm:3.862.0" - "@aws-sdk/util-user-agent-node": "npm:3.864.0" - "@smithy/config-resolver": "npm:^4.1.5" - "@smithy/core": "npm:^3.8.0" - "@smithy/fetch-http-handler": "npm:^5.1.1" - "@smithy/hash-node": "npm:^4.0.5" - "@smithy/invalid-dependency": "npm:^4.0.5" - "@smithy/middleware-content-length": "npm:^4.0.5" - "@smithy/middleware-endpoint": "npm:^4.1.18" - "@smithy/middleware-retry": "npm:^4.1.19" - "@smithy/middleware-serde": "npm:^4.0.9" - "@smithy/middleware-stack": "npm:^4.0.5" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/node-http-handler": "npm:^4.1.1" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - "@smithy/url-parser": "npm:^4.0.5" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.26" - "@smithy/util-defaults-mode-node": "npm:^4.0.26" - "@smithy/util-endpoints": "npm:^3.0.7" - "@smithy/util-middleware": "npm:^4.0.5" - "@smithy/util-retry": "npm:^4.0.7" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/3f18d13ef59a19c636f6fa4e7c5142936f724906d9bcf5754bdb8bad9b65f215db25b565c65959fb12989c2eaf0861683babd67bb3391de391d51b75f64d269e + checksum: 10c0/31a61c3e762b1418e2c1a80a6867d4f4f8167027fd6334c1aba138e64e7a13edab6d6f386cd19c84cae3f09833445ea2d434ee0bdf715bf9782ffbd0a5e217b8 languageName: node linkType: hard -"@aws-sdk/core@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/core@npm:3.840.0" +"@aws-sdk/credential-provider-http@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/xml-builder": "npm:3.821.0" - "@smithy/core": "npm:^3.6.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/signature-v4": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-utf8": "npm:^4.0.0" - fast-xml-parser: "npm:4.4.1" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/node-http-handler": "npm:^4.4.1" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-stream": "npm:^4.5.2" tslib: "npm:^2.6.2" - checksum: 10c0/6bd10d86a85c2f52d1a6ca3fe4e45fb8b8ba43abb0f52d2cd14b8d3fb9908f2e1ec0cd9dcf7980df847cfb3dbcd329679a6fe7d029fbc57840d716d1120bc445 + checksum: 10c0/7c15829bec5ebb49542b181a17cbfef6b02b78447e1323157ca7d33103203258b409bccb3dfef19f255d88ba282c5a553552a09488c4af1a5899bb7bff65a873 languageName: node linkType: hard -"@aws-sdk/core@npm:3.846.0": - version: 3.846.0 - resolution: "@aws-sdk/core@npm:3.846.0" +"@aws-sdk/credential-provider-ini@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/xml-builder": "npm:3.821.0" - "@smithy/core": "npm:^3.7.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/signature-v4": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.7" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-utf8": "npm:^4.0.0" - fast-xml-parser: "npm:5.2.5" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/credential-provider-env": "npm:3.910.0" + "@aws-sdk/credential-provider-http": "npm:3.910.0" + "@aws-sdk/credential-provider-process": "npm:3.910.0" + "@aws-sdk/credential-provider-sso": "npm:3.910.0" + "@aws-sdk/credential-provider-web-identity": "npm:3.910.0" + "@aws-sdk/nested-clients": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/credential-provider-imds": "npm:^4.2.2" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/b23115868854939ec4d2eefcedd0fe6a2dbaa8bca83e4b757c21e5c8a153c99b61ea4b645e763257b2031717dfcc9c92264f83aa4f9d0071c806895eea6722fa + checksum: 10c0/2dd52fa13aa4e0cf02d62e45f1c15d2ac3d891230b5a4fd95f6d69227b52887fbc3e2fc5f12665528292c2764cbf184d9a3a3bb4feb0eb97befa05e110f0fcc4 languageName: node linkType: hard -"@aws-sdk/core@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/core@npm:3.864.0" +"@aws-sdk/credential-provider-node@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.862.0" - "@aws-sdk/xml-builder": "npm:3.862.0" - "@smithy/core": "npm:^3.8.0" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/signature-v4": "npm:^5.1.3" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.5" - "@smithy/util-utf8": "npm:^4.0.0" - fast-xml-parser: "npm:5.2.5" + "@aws-sdk/credential-provider-env": "npm:3.910.0" + "@aws-sdk/credential-provider-http": "npm:3.910.0" + "@aws-sdk/credential-provider-ini": "npm:3.910.0" + "@aws-sdk/credential-provider-process": "npm:3.910.0" + "@aws-sdk/credential-provider-sso": "npm:3.910.0" + "@aws-sdk/credential-provider-web-identity": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/credential-provider-imds": "npm:^4.2.2" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/83eae93e22408750abcd5225650945f5b9a2a4e4b9477d62e97c982b0d573d6f7b1a5ba4979a85947299d71898bf2ce68a9b87a0864c2697272eb74a817b4d97 + checksum: 10c0/cfbb7b9b19cd6971d9a766a7237eedb3b02842e90cd95edf863286bc41c9237ac54310a62dce7995333012a40db6e7c496f640a5cd5606218295bfaffcbe2daa languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.840.0" +"@aws-sdk/credential-provider-process@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/ed12ee47f67980b2a434a168de12401312d995428f33e487ea64420a670fdfec59324318eb02e630ef779336723499ca13533cec2b64f1f9d9f48fe9c7e138ef + checksum: 10c0/e4daf57799cb025020ac1df2d567a097cdbb53457be7ea30982f494b6a8ac6060de114637e7bebdb759dda874159c8ee7e6f031bf5e6d762ca359474116a0c3c languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.846.0": - version: 3.846.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.846.0" +"@aws-sdk/credential-provider-sso@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/client-sso": "npm:3.910.0" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/token-providers": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/21640b6eec50de4fa3a7e2ac1c4505c0cf27f2f7540781d2892b2aa281f28d7c4214bd385e11cdbfd5e3309cd12219c05d26adf7cad4c881c995a20b8bc4dbcd + checksum: 10c0/a3899bcc6fa8cf5cde2ef30de82a59e9f251f8c0bee7cc6a1343b8310d16923f5f06081a2f3097ca89687324a9cfc976c514c1e5e4111d62a31d6909ef955c1e languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.864.0" +"@aws-sdk/credential-provider-web-identity@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/nested-clients": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/6ffa5ba6787b976181aac62fcd510bade27a38685fb89d9824cf0ad4d34e6e8e82466438bdd35fd2d5bec1d60bbede0f7a60f836fc3ddb8d0d02a01e11e84704 + checksum: 10c0/ff16df706549cf46c93e2fa765fcdb5bbf11a42ea710d0a3efc3acbacbe9ffd7792db7b2481980243348d058955dc14d55178113f17b2e1bbef974d605bc76bf languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.840.0" +"@aws-sdk/eventstream-handler-node@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/eventstream-handler-node@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/fetch-http-handler": "npm:^5.0.4" - "@smithy/node-http-handler": "npm:^4.0.6" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-stream": "npm:^4.2.2" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/eventstream-codec": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/21892b9252b4f7692f9a3e9999a5991e476a8ef7541674c230e94d6a5a1fa7381e643e69d1f7e77dd3bbcee952fa9f4bf45793abf8e5a9c60c0ecb407f10ad4f + checksum: 10c0/2764f42bdda331963a65c22407d74cffa422c215aac450c390acc956eafb2d5d912af3fff0403387f3a1cbf7f01247530e932ba389b7d0baef6686b8e8b2a824 languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.846.0": - version: 3.846.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.846.0" +"@aws-sdk/middleware-bucket-endpoint@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/fetch-http-handler": "npm:^5.1.0" - "@smithy/node-http-handler": "npm:^4.1.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.7" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-stream": "npm:^4.2.3" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-arn-parser": "npm:3.893.0" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-config-provider": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/5fbc05c5b0e622ce473dda41d5402982508e63496d36cb22ee6039caf563bb5d1c5633ced6901fe8c134090818400b865202c619288979132ba635f09aa98a97 + checksum: 10c0/32154bd1870c691d5071e5275a17ba2ea542bece2bf2da8464389c95358f1631d199af3bba25958098f04bf9dc11a569fafb2bb96d452718170abab86597300b languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.864.0" +"@aws-sdk/middleware-eventstream@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-eventstream@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/fetch-http-handler": "npm:^5.1.1" - "@smithy/node-http-handler": "npm:^4.1.1" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-stream": "npm:^4.2.4" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/430f13e13cbe35e306c312e63b9c88187134593c03cc0d68bdaee19103b8e48535c45b63fb95888d61b35348afe1dc83a32aa4db73f5a2918eed12f58ff220f3 + checksum: 10c0/a07f9ef0e4e2d25ca554806ed7e149242c1c03294744dd505c9e557d46f5f4e045ff0ed6e500084a7a16192bdd6c0ae079543cea35b27d047455e24bb53baa37 languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.840.0" +"@aws-sdk/middleware-expect-continue@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/credential-provider-env": "npm:3.840.0" - "@aws-sdk/credential-provider-http": "npm:3.840.0" - "@aws-sdk/credential-provider-process": "npm:3.840.0" - "@aws-sdk/credential-provider-sso": "npm:3.840.0" - "@aws-sdk/credential-provider-web-identity": "npm:3.840.0" - "@aws-sdk/nested-clients": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/credential-provider-imds": "npm:^4.0.6" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/963c9a675b327f70c7123c392ce0e96ee9e451e118b3af7ba1ea65921965718f96896c29992448c4d5f7739c499e66007aed03be28e094fab0728b8b2bb19731 + checksum: 10c0/1e8b9426e8b1a7f0db82faded10ac8047310f52224468bb00c7271a172fe645518b46a92be3b7cfdf757179f5ee43d53f69c81be303c5f8851ae330028b5b20a languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.848.0" - dependencies: - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/credential-provider-env": "npm:3.846.0" - "@aws-sdk/credential-provider-http": "npm:3.846.0" - "@aws-sdk/credential-provider-process": "npm:3.846.0" - "@aws-sdk/credential-provider-sso": "npm:3.848.0" - "@aws-sdk/credential-provider-web-identity": "npm:3.848.0" - "@aws-sdk/nested-clients": "npm:3.848.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/credential-provider-imds": "npm:^4.0.6" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/af3f7aa9816618a4be600f4feeeb737cf5bd11db4f3f7e96cc30e45e93386a2e3ab4a2f9c40b2eb738b4d4e66dbe0db5086062846a8a75dfa2fd42acfb349b33 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-ini@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.864.0" - dependencies: - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/credential-provider-env": "npm:3.864.0" - "@aws-sdk/credential-provider-http": "npm:3.864.0" - "@aws-sdk/credential-provider-process": "npm:3.864.0" - "@aws-sdk/credential-provider-sso": "npm:3.864.0" - "@aws-sdk/credential-provider-web-identity": "npm:3.864.0" - "@aws-sdk/nested-clients": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/credential-provider-imds": "npm:^4.0.7" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/shared-ini-file-loader": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/e0124557eff3617b0816b498f65d8082a17a3946795f5876a00d62edec06de58aba0a1bdbf63c697e7c20af79c4f4669db44578a946ea3d7edd20873e34228ae - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-node@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.840.0" - dependencies: - "@aws-sdk/credential-provider-env": "npm:3.840.0" - "@aws-sdk/credential-provider-http": "npm:3.840.0" - "@aws-sdk/credential-provider-ini": "npm:3.840.0" - "@aws-sdk/credential-provider-process": "npm:3.840.0" - "@aws-sdk/credential-provider-sso": "npm:3.840.0" - "@aws-sdk/credential-provider-web-identity": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/credential-provider-imds": "npm:^4.0.6" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/cef45e1d12aee1e05aae0498a03eafe6b0f18aa612cb7b49965dcb535bb7bc91339f33de299afb235d20e557a9a2ce16ab1ff2ddf9babec3860cc217437106b7 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-node@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.848.0" - dependencies: - "@aws-sdk/credential-provider-env": "npm:3.846.0" - "@aws-sdk/credential-provider-http": "npm:3.846.0" - "@aws-sdk/credential-provider-ini": "npm:3.848.0" - "@aws-sdk/credential-provider-process": "npm:3.846.0" - "@aws-sdk/credential-provider-sso": "npm:3.848.0" - "@aws-sdk/credential-provider-web-identity": "npm:3.848.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/credential-provider-imds": "npm:^4.0.6" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/9887a7a32dfc687c4cfb9aacf9fbc9468916dc6022802a1ddfccc6d948202e6cf6f2d15c3e526806714edd365490a828c18ec67de977a66d83b37ab75d170d56 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-node@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.864.0" - dependencies: - "@aws-sdk/credential-provider-env": "npm:3.864.0" - "@aws-sdk/credential-provider-http": "npm:3.864.0" - "@aws-sdk/credential-provider-ini": "npm:3.864.0" - "@aws-sdk/credential-provider-process": "npm:3.864.0" - "@aws-sdk/credential-provider-sso": "npm:3.864.0" - "@aws-sdk/credential-provider-web-identity": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/credential-provider-imds": "npm:^4.0.7" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/shared-ini-file-loader": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/4fda02b247dc54d2df2667f67b0b73bcb71a83d82ce921d94260a12717d11f76872b30074e8c435d8009a6b32d5cb92452026c4344d74ce34f7edae50aa5c714 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-process@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.840.0" - dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/c4278d64dd3a4c3072b30483fb723c6fabf811989f4f434f6573c729fed94e6851ff339275fe207e6aeab83a672d57dca70b1385c8c2dca731cae87fcec59319 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-process@npm:3.846.0": - version: 3.846.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.846.0" - dependencies: - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/3be6d4547cabd1fa71aa0acacc64f7996f6154aff01e7e5aa6f1cece3d89399c4f500b74db8f0173cf0c9c89275d8803970cb815d45c769808d339bdfae186fe - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-process@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.864.0" - dependencies: - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/shared-ini-file-loader": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/74bb1906ac48187aa4639675423f6bface1447286ce4e904d0f5e5932f8bee271397f85d7dccb45c909b25d43d943531a124fe3c1fdd137df581010aa5fe3d03 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-sso@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.840.0" - dependencies: - "@aws-sdk/client-sso": "npm:3.840.0" - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/token-providers": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/4b0398be1d148bcab6e228016fead4c14d0fa6c6d0a7bc59b1b3e937534070f9a99c2147a897a24e83de4601e406d47d8a1a5b19fa59a5d35beb2474b1b41087 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-sso@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.848.0" - dependencies: - "@aws-sdk/client-sso": "npm:3.848.0" - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/token-providers": "npm:3.848.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/3ac50af20ff6646388175581cafab03b590eb5fccd1743ef45eeab3b3bb843a681e6c9e88d06c031a2886f77f649ab1a5df18cf7fb088dc8b34a7b225614ebaf - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-sso@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.864.0" - dependencies: - "@aws-sdk/client-sso": "npm:3.864.0" - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/token-providers": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/shared-ini-file-loader": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/706532dc10c49d0988789426a32abc556feece6a2cf967f5f93a0fc9a78a67dd6b3601f086c36838323f66b270789767add61906eb42acc904eb532c06a14de3 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-web-identity@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.840.0" - dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/nested-clients": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/a68d4b09d9c1869383372c105ed78c5b2c5442e783f8a2fa5f8ca3e9f84e4041d7eaf854a74f867b9f4bfa9f7288093b71e2789494e77ae04e8f77ef280ffdab - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-web-identity@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.848.0" - dependencies: - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/nested-clients": "npm:3.848.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/bd1729dc05426d86c4feb4093b6c57eb2f11a8c10d6bd9a9b81d795bd4de1fa03f9c92c85ca35e6121c4814ba6a3416fa6bb7b3bf8171735de28999a1a239aa6 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-web-identity@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.864.0" - dependencies: - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/nested-clients": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/3f1596e848ae1ecdbd731496f239e90be16a4956d2ba85bcf2603e825a9928c9aa9414952dee6efde437614ac7f189add56950d6e027dd5a30ff0ebf7db2491f - languageName: node - linkType: hard - -"@aws-sdk/eventstream-handler-node@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/eventstream-handler-node@npm:3.840.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/eventstream-codec": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/a95bc35719ed519d692d50983195ae1648edfa8c5da6750edf861e6f179daac75ab75b1235225efceae913eeebf438efb467409785aca989852adbb32637c255 - languageName: node - linkType: hard - -"@aws-sdk/middleware-bucket-endpoint@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.840.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-arn-parser": "npm:3.804.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-config-provider": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/371f6e30b16821e1a9c17efcbe6436616eb2bcbfe1757d5f70c56d5eca8452d8dddd42f26f53635b87f927b4da541dc36156e4d3529bb0eb0705969365dce8fc - languageName: node - linkType: hard - -"@aws-sdk/middleware-eventstream@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-eventstream@npm:3.840.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/887e92906c5b026f01d292d4ebc58483da5676a19a63f34c33fc7d6e4ca00b2df9c4336d0afa141a2f231fb6e01c45851facdef1f531589629e7da7bcbbee02a - languageName: node - linkType: hard - -"@aws-sdk/middleware-expect-continue@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.840.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/73099d06d044f5d82cf172398939c8776c966bf88466288270d80a4e93f451c9e620c92252b0b5c8086b22429f6a69137a21d81bbac66e573c36241859f0739b - languageName: node - linkType: hard - -"@aws-sdk/middleware-flexible-checksums@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.840.0" +"@aws-sdk/middleware-flexible-checksums@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.910.0" dependencies: "@aws-crypto/crc32": "npm:5.2.0" "@aws-crypto/crc32c": "npm:5.2.0" "@aws-crypto/util": "npm:5.2.0" - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/is-array-buffer": "npm:^4.0.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-stream": "npm:^4.2.2" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/is-array-buffer": "npm:^4.2.0" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-stream": "npm:^4.5.2" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/55f31563a9811cc0b49c00d3c24e719416f51be31ac3d2af87425850d1c4ea2abb9a2dfc2f853ca6c3e10b837640e189c5cd37369476951dd0eab286e5abacbf + checksum: 10c0/b210f1555bd20abb848eb8696d7a9c549733ee6d50f1dcebf9379bd781de1579443a6c6474401c094444e6e639dacb1501d235ecdf11e4fd9a3b0bff78966166 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.840.0" +"@aws-sdk/middleware-host-header@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/aae5964c39118815293f3f1d42c6b5131ff44862d33af9c8d44eb98fb5b8db0e6191cceba59c487a2b89b70b2e7ad710b174a14506bc6d99d333af42fd6b3d07 + checksum: 10c0/bfd348a15b855a89a46a5c3cc18dbca94eda541847c3260b2d66b8c84440976cd527831bab7adaf3f6bc68fb9b61b885b69762dee3830cb960a2a18a8c517482 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.862.0" +"@aws-sdk/middleware-location-constraint@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.862.0" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/1a71a7fb8e678fbe7b57028e952c30ee7e6d3f9a213e99742befd008d42df772f5a6e43403c0501f86e4b3f42ff076ce068cbae040e146c1438d1f4e7643c948 + checksum: 10c0/91d06ca54012047048396ccdf1eb74477ae7d90feb28243f2e0a88df120e6c403b63c9c42b170114be4d994c089bbb1023b78db4cd6251ad978714ed8b297bed languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.840.0" +"@aws-sdk/middleware-logger@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-logger@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/4520274c5b350881df39e28b1732b482ee8023801e8cc6fe1da4b11856ea9660af5036dc6144cefce20338ed0cf5622cc03d10dddf67f95354447d3d0448d987 + checksum: 10c0/33d0ec8c067701e8fb80f792ec4208decb0eb61502fd34377976bcd0aea5ee2c554a0861b3f42547a6a11abfe7ca5324c419d87dbe88def282b9ce4da2edb068 languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-logger@npm:3.840.0" +"@aws-sdk/middleware-recursion-detection@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/types": "npm:3.910.0" + "@aws/lambda-invoke-store": "npm:^0.0.1" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/5cc4eec656ec9811b64e504a96812f05f1b57e3542ea1dae6710505f81f8dfb36119709538b736a55792f02565818ab71f803e91b00bc4f0652ab198fce153fd + checksum: 10c0/bdf27349e500c8abffc67c5ed017dad8749b5a007d1e1da0fea7f12cb5e85a6255e28811e517566454a1a6a201fea6fe94cb8e90d4f8d8023cbcbf412afddcdd languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/middleware-logger@npm:3.862.0" +"@aws-sdk/middleware-sdk-s3@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.862.0" - "@smithy/types": "npm:^4.3.2" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-arn-parser": "npm:3.893.0" + "@smithy/core": "npm:^3.16.1" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/signature-v4": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-config-provider": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-stream": "npm:^4.5.2" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/b1e7026ae941435b066530b37acf2291d96530bf5c1a5a47fa32f32caf3a336f1b2f6223d0ad2a61115f1846d63b632a6104fe0dd761c239067c780efa90b297 + checksum: 10c0/6e1a435849cdec5408e09d7b378f5e7d0e51660b2f360f54e6ef3745a39d5579136c9e146f23551d62df628ebb55c0139bedeeaff825e2348eec5ac71f21f2ed languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.840.0" +"@aws-sdk/middleware-ssec@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/88b1dfbf487d86b2aa26761b08e3de2fd1edd8d09abffd88f5d31b77215fd0852c74deba38802a15cc7015a716d990c2925523af88577890311958f53ef739e7 + checksum: 10c0/2156df7de3e63d426bc8fdc018298ae8dc6bcff55f9a21365de71142b0c61266f5e65657757a8815662f1b2a6d5c5a78e9b970bf4315907e6d7888059da0526a languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.862.0" +"@aws-sdk/middleware-user-agent@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.862.0" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-endpoints": "npm:3.910.0" + "@smithy/core": "npm:^3.16.1" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/ed186d07cf5733ccc899168f83767e428ca9d2e7394e315e43f4f2522ed9a9aac6e5477e47aa4710775e724730dcb25a6699784aa5e63153e102c001ea96ab7f + checksum: 10c0/70138565efae2e497cbeae877e5e07a5275ef3c59061b18aa5b4156cc2d53afbe1cced665f2c7c37f59f246bf76464cd67c68e2992f427caedf5dabba115b813 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.840.0" +"@aws-sdk/middleware-websocket@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/middleware-websocket@npm:3.910.0" dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-arn-parser": "npm:3.804.0" - "@smithy/core": "npm:^3.6.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/signature-v4": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-config-provider": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-stream": "npm:^4.2.2" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-format-url": "npm:3.910.0" + "@smithy/eventstream-codec": "npm:^4.2.2" + "@smithy/eventstream-serde-browser": "npm:^4.2.2" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/signature-v4": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-hex-encoding": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/8ef8413028e710a5cee96af80b545d578c3c385dbcb87d2e2b61772b81813f700d7ca503305305af9819462c354e131e8aef692f58eeb08164279701ca1e67ef + checksum: 10c0/fb3e2bf805ec6eacb446cce3a79da58fde271e90295ffb8be6b2cc907c47df80dfb8162b4141bdc013496101a3524c42c46e3f7d528e11a2593aadf14a544ad2 languageName: node linkType: hard -"@aws-sdk/middleware-ssec@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-ssec@npm:3.840.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/22cdded72582d15adb266e5f65b5756c129b7104535765ff5c67eedc24609bface9eebb1fa3b74ed41e7b8fade57940195810bbbe2e44b8283104849894ec658 - languageName: node - linkType: hard - -"@aws-sdk/middleware-user-agent@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.840.0" - dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.840.0" - "@smithy/core": "npm:^3.6.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/68822bc24d1311ba47a1e3b2ff194376f3923b39379aa29e6be658ee7e1b809bfea5ea07335c696ca581b42665f30899e25bbe8d9b3216003f602622b4326140 - languageName: node - linkType: hard - -"@aws-sdk/middleware-user-agent@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.848.0" - dependencies: - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.848.0" - "@smithy/core": "npm:^3.7.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/2ec977bd69711022a162e287584c04c66a6481ecc331ed8fe13b6fd334a9d2c3ebe13709933dd5b224915cf7fa6e196870077e428c853b772a4b841162e71752 - languageName: node - linkType: hard - -"@aws-sdk/middleware-user-agent@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.864.0" - dependencies: - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@aws-sdk/util-endpoints": "npm:3.862.0" - "@smithy/core": "npm:^3.8.0" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/638401786dfb365cd4e890e4b4d18ddf48e267faf8842c53feaad37f25f38615fc8fb710c721f7ca8e1de9c4b1c74f411d437b544385fe739d129b5c03958a16 - languageName: node - linkType: hard - -"@aws-sdk/middleware-websocket@npm:3.844.0": - version: 3.844.0 - resolution: "@aws-sdk/middleware-websocket@npm:3.844.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-format-url": "npm:3.840.0" - "@smithy/eventstream-codec": "npm:^4.0.4" - "@smithy/eventstream-serde-browser": "npm:^4.0.4" - "@smithy/fetch-http-handler": "npm:^5.1.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/signature-v4": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-hex-encoding": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/ff626f40f2d7369cc96ac139548bfb51b04056097ac5ad06ef20776973030e50990e7b8d218955ab1ef4caf90cc55b6a7bc34e9b01ae04a7e29dd6e6d60223be - languageName: node - linkType: hard - -"@aws-sdk/nested-clients@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/nested-clients@npm:3.840.0" +"@aws-sdk/nested-clients@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/nested-clients@npm:3.910.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/middleware-host-header": "npm:3.840.0" - "@aws-sdk/middleware-logger": "npm:3.840.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.840.0" - "@aws-sdk/middleware-user-agent": "npm:3.840.0" - "@aws-sdk/region-config-resolver": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.840.0" - "@aws-sdk/util-user-agent-browser": "npm:3.840.0" - "@aws-sdk/util-user-agent-node": "npm:3.840.0" - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/core": "npm:^3.6.0" - "@smithy/fetch-http-handler": "npm:^5.0.4" - "@smithy/hash-node": "npm:^4.0.4" - "@smithy/invalid-dependency": "npm:^4.0.4" - "@smithy/middleware-content-length": "npm:^4.0.4" - "@smithy/middleware-endpoint": "npm:^4.1.13" - "@smithy/middleware-retry": "npm:^4.1.14" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/node-http-handler": "npm:^4.0.6" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.21" - "@smithy/util-defaults-mode-node": "npm:^4.0.21" - "@smithy/util-endpoints": "npm:^3.0.6" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/middleware-host-header": "npm:3.910.0" + "@aws-sdk/middleware-logger": "npm:3.910.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.910.0" + "@aws-sdk/middleware-user-agent": "npm:3.910.0" + "@aws-sdk/region-config-resolver": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@aws-sdk/util-endpoints": "npm:3.910.0" + "@aws-sdk/util-user-agent-browser": "npm:3.910.0" + "@aws-sdk/util-user-agent-node": "npm:3.910.0" + "@smithy/config-resolver": "npm:^4.3.2" + "@smithy/core": "npm:^3.16.1" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/hash-node": "npm:^4.2.2" + "@smithy/invalid-dependency": "npm:^4.2.2" + "@smithy/middleware-content-length": "npm:^4.2.2" + "@smithy/middleware-endpoint": "npm:^4.3.3" + "@smithy/middleware-retry": "npm:^4.4.3" + "@smithy/middleware-serde": "npm:^4.2.2" + "@smithy/middleware-stack": "npm:^4.2.2" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/node-http-handler": "npm:^4.4.1" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.2" + "@smithy/util-defaults-mode-node": "npm:^4.2.3" + "@smithy/util-endpoints": "npm:^3.2.2" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-retry": "npm:^4.2.2" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/1b9ee866f37f433723e472ed194629155de2b1fb7d464bf772727c5140bcb6ad5fbc5d4ae911a19b319f55614239bb1935304fa3ec5a881038a577c32a96b238 + checksum: 10c0/9d77566d1f11a4ef2b007f32b814d98837608d8f3b6207324e158c4b8ee37d183f957b8567c7f3fd8523ff8d614b6b542a195669dfc51bcb60a3866baccee7e3 languageName: node linkType: hard -"@aws-sdk/nested-clients@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/nested-clients@npm:3.848.0" +"@aws-sdk/region-config-resolver@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.910.0" dependencies: - "@aws-crypto/sha256-browser": "npm:5.2.0" - "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/middleware-host-header": "npm:3.840.0" - "@aws-sdk/middleware-logger": "npm:3.840.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.840.0" - "@aws-sdk/middleware-user-agent": "npm:3.848.0" - "@aws-sdk/region-config-resolver": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@aws-sdk/util-endpoints": "npm:3.848.0" - "@aws-sdk/util-user-agent-browser": "npm:3.840.0" - "@aws-sdk/util-user-agent-node": "npm:3.848.0" - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/core": "npm:^3.7.0" - "@smithy/fetch-http-handler": "npm:^5.1.0" - "@smithy/hash-node": "npm:^4.0.4" - "@smithy/invalid-dependency": "npm:^4.0.4" - "@smithy/middleware-content-length": "npm:^4.0.4" - "@smithy/middleware-endpoint": "npm:^4.1.15" - "@smithy/middleware-retry": "npm:^4.1.16" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/node-http-handler": "npm:^4.1.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/smithy-client": "npm:^4.4.7" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.23" - "@smithy/util-defaults-mode-node": "npm:^4.0.23" - "@smithy/util-endpoints": "npm:^3.0.6" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-config-provider": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/77057a60ce0f86bee16e1daa5214385720aa433f1ff097350b41a85dab2da2ac0a6f196f17b94d51631448adeed9dabfd8b984976771d9cfd4bb27a449f26bc6 + checksum: 10c0/03bc2172d0c3b134cbb496e8546606a8821fc4f0272ea03aadfd653b29956ddbbfa2ad3e12b7937d3e98d7b0f92e8fedb2af6559f2389c2d1d4ffc37bb55c5b0 languageName: node linkType: hard -"@aws-sdk/nested-clients@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/nested-clients@npm:3.864.0" +"@aws-sdk/signature-v4-multi-region@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.910.0" dependencies: - "@aws-crypto/sha256-browser": "npm:5.2.0" - "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/middleware-host-header": "npm:3.862.0" - "@aws-sdk/middleware-logger": "npm:3.862.0" - "@aws-sdk/middleware-recursion-detection": "npm:3.862.0" - "@aws-sdk/middleware-user-agent": "npm:3.864.0" - "@aws-sdk/region-config-resolver": "npm:3.862.0" - "@aws-sdk/types": "npm:3.862.0" - "@aws-sdk/util-endpoints": "npm:3.862.0" - "@aws-sdk/util-user-agent-browser": "npm:3.862.0" - "@aws-sdk/util-user-agent-node": "npm:3.864.0" - "@smithy/config-resolver": "npm:^4.1.5" - "@smithy/core": "npm:^3.8.0" - "@smithy/fetch-http-handler": "npm:^5.1.1" - "@smithy/hash-node": "npm:^4.0.5" - "@smithy/invalid-dependency": "npm:^4.0.5" - "@smithy/middleware-content-length": "npm:^4.0.5" - "@smithy/middleware-endpoint": "npm:^4.1.18" - "@smithy/middleware-retry": "npm:^4.1.19" - "@smithy/middleware-serde": "npm:^4.0.9" - "@smithy/middleware-stack": "npm:^4.0.5" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/node-http-handler": "npm:^4.1.1" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - "@smithy/url-parser": "npm:^4.0.5" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-body-length-node": "npm:^4.0.0" - "@smithy/util-defaults-mode-browser": "npm:^4.0.26" - "@smithy/util-defaults-mode-node": "npm:^4.0.26" - "@smithy/util-endpoints": "npm:^3.0.7" - "@smithy/util-middleware": "npm:^4.0.5" - "@smithy/util-retry": "npm:^4.0.7" - "@smithy/util-utf8": "npm:^4.0.0" + "@aws-sdk/middleware-sdk-s3": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/signature-v4": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/a1c6b61352bac1eb0d3348de5be92efef015256bdc18f8391df630631f0a347cdd38faea4b2ad48e99a82d5ea2e8537ad673e29ff1dab2468f13a04bd86b6038 + checksum: 10c0/c7292caec15d290d1ad8b9846da53afcebb7b8109079163b7055e3525c8ae08fe168a95f1a483c58abae810e4e99a1fc64863a962ced5fd7bfb2d6701faaeec7 languageName: node linkType: hard -"@aws-sdk/region-config-resolver@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.840.0" +"@aws-sdk/token-providers@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/token-providers@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-config-provider": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" + "@aws-sdk/core": "npm:3.910.0" + "@aws-sdk/nested-clients": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/27d72bb9657efd79637a4c4aa895004d29c66eefce083fa84050f092f68bcba8cb9bf0e4c16c11c132a5fa01f1841e878fa903bc837c4e1e6904d1b2d2c3dd37 + checksum: 10c0/8bcbc8a1f22acaaf7911bd6c7181af7da07e63470e063fb3c1a84b052af1699179a3568823e4e0c38d914340e1e2c2c9a450942f4571642113efc1e5a0410c5b languageName: node linkType: hard -"@aws-sdk/region-config-resolver@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.862.0" +"@aws-sdk/types@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/types@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.862.0" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-config-provider": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.5" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/b74d1ae2e663e6de0c4ce3a22af5693af911b0d05fb241595b69875cc6e03917c85e8d058ffc62c4bf7cf0b659d4e3aeb44d3ac2b18ecda0abd85bb04eb9579f + checksum: 10c0/b91c035d68999dfef31ffb81f0f6dea6d9a763339293d4267975dc9bc0f946d39d48fa51dbe643360d8643686e6ccce783f2ae1e3dfabd4d470bb8834c1186d3 languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.840.0" - dependencies: - "@aws-sdk/middleware-sdk-s3": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/signature-v4": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/224e17e624925ba5972f698d92e92289912f9e1ca1fd0525bbc62e6965a9e0585abb309fdb6b7e304fddeb4301e5c832d4370b324c55cbfd42922e73c1abc70c - languageName: node - linkType: hard - -"@aws-sdk/token-providers@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/token-providers@npm:3.840.0" - dependencies: - "@aws-sdk/core": "npm:3.840.0" - "@aws-sdk/nested-clients": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/a172666169fd8164ce48a3a0ea242405d8437119c8fbcf259223badf8ad04cf68a1ebba54c09c22cbee5c16775e885733788978aa99c9a27241036e967ea2fa5 - languageName: node - linkType: hard - -"@aws-sdk/token-providers@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/token-providers@npm:3.848.0" - dependencies: - "@aws-sdk/core": "npm:3.846.0" - "@aws-sdk/nested-clients": "npm:3.848.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/c37329f6f3f41c32464d4ca512baa0aa1cd8694964af4391eebb14e7a4980316041579745bc35930caf973aa5595326da95f652b26ebb8f167cea078fb893d10 - languageName: node - linkType: hard - -"@aws-sdk/token-providers@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/token-providers@npm:3.864.0" - dependencies: - "@aws-sdk/core": "npm:3.864.0" - "@aws-sdk/nested-clients": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/shared-ini-file-loader": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/c87f9a0c7becb8e016f3cb6a468c9efa26a1c708c8738155d77799547479c2ff24801bd1becd1e57244431dde94ad348c676530b9053741ffb98c8710914077b - languageName: node - linkType: hard - -"@aws-sdk/types@npm:3.840.0, @aws-sdk/types@npm:^3.222.0": +"@aws-sdk/types@npm:^3.222.0": version: 3.840.0 resolution: "@aws-sdk/types@npm:3.840.0" dependencies: @@ -1933,72 +1369,37 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/types@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/types@npm:3.862.0" +"@aws-sdk/util-arn-parser@npm:3.893.0": + version: 3.893.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.893.0" dependencies: - "@smithy/types": "npm:^4.3.2" tslib: "npm:^2.6.2" - checksum: 10c0/d8e13eadde27c29e39d8effa861a3dc8ef43fba6ecb9772e3461619a76897873c8d4355be89aa5090294d1f17e1a6697834f0bbf6a7f73902a77fe00b1fbe5c2 + checksum: 10c0/c8bbc1e258674e791929f1259a3f2422433c0b8c5470808a958ef4320bb9ca7c27783b617da3b9e04d9a1cd1d0b547da2858249dbec816f1098c02731b551aac languageName: node linkType: hard -"@aws-sdk/util-arn-parser@npm:3.804.0": - version: 3.804.0 - resolution: "@aws-sdk/util-arn-parser@npm:3.804.0" +"@aws-sdk/util-endpoints@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/util-endpoints@npm:3.910.0" dependencies: + "@aws-sdk/types": "npm:3.910.0" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" + "@smithy/util-endpoints": "npm:^3.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/b6d4c883ec2949fa40552fe8573c9c32af07c92c1bd94a27d978aa14d37b005be95392069d6b882ba977484f4dd0371792296fb2516f5d7601be5102888ee9ee + checksum: 10c0/1944c8ff7fd50ef6e018a27c378ae0eba7672900827cbc2b1604d04ce08ec2a74dea11eb3a9ba63a00e4083206be93e9a90aaa424f841e5f5c55888cf0e07073 languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/util-endpoints@npm:3.840.0" +"@aws-sdk/util-format-url@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/util-format-url@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-endpoints": "npm:^3.0.6" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/querystring-builder": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/822fe59c003b433c955756daf47736a17c42c25f449b9ca96c2c2bb79964866ee0a0a657824da6289588d689e76712a7058d70e42c3fad2b78bfb23f905643d9 - languageName: node - linkType: hard - -"@aws-sdk/util-endpoints@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/util-endpoints@npm:3.848.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-endpoints": "npm:^3.0.6" - tslib: "npm:^2.6.2" - checksum: 10c0/84567b4152ea823274855cdab4acdde1ca60b4ba0be265408da13ad59b9f5ec2f16578402ca0430748b57b57f3a457466517bf434d0e9cec79abf855a0468b49 - languageName: node - linkType: hard - -"@aws-sdk/util-endpoints@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/util-endpoints@npm:3.862.0" - dependencies: - "@aws-sdk/types": "npm:3.862.0" - "@smithy/types": "npm:^4.3.2" - "@smithy/url-parser": "npm:^4.0.5" - "@smithy/util-endpoints": "npm:^3.0.7" - tslib: "npm:^2.6.2" - checksum: 10c0/e37245c5e6cfa03591895e7c11f24a356b85d57895f08f5202a2bc107030177244c66e4a952a9333c8aaf072b23edb89f781416ae9999c1dc0b2b0dec9403ca3 - languageName: node - linkType: hard - -"@aws-sdk/util-format-url@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/util-format-url@npm:3.840.0" - dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/querystring-builder": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/9f1d55e00bc10523d786e9a7c4b387ceb38170a870a1c5c8772bd3cd7d0ab1f352ca1c49a52cbf751acee65091ae9e58f079e6ee94bbe104b8989bff26f40a63 + checksum: 10c0/f65f56ac79b557a6ab98143c3cb607ea92bb5d785bc3bed0c077365e9f04119c3a34e3d05e14c0e9d99ec2064de32e30cdc03d901cee0a59d4d1da9f85e9aebd languageName: node linkType: hard @@ -2011,101 +1412,51 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.840.0" +"@aws-sdk/util-user-agent-browser@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.840.0" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/types": "npm:^4.7.1" bowser: "npm:^2.11.0" tslib: "npm:^2.6.2" - checksum: 10c0/873d5e3218958aa935127b05dad5a1d8cf26c9b7726584eb424a5958e7e205786dd99e4fa053b65f3b956261a7f8a3746e48e9b7dc47c3149792ff525da97631 + checksum: 10c0/7f331a95df724548198a076f560cb1a7491c4b87dc76b2eea623ef6acc2c4b186e50a393336a26ecf83fadb9375c9eb668e5b5bc154adcf3e17ecf7ae0f89cc0 languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.862.0" +"@aws-sdk/util-user-agent-node@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.910.0" dependencies: - "@aws-sdk/types": "npm:3.862.0" - "@smithy/types": "npm:^4.3.2" - bowser: "npm:^2.11.0" - tslib: "npm:^2.6.2" - checksum: 10c0/68d8ce204c52ed703b925f77922b8845875fb101454654c9a0483947d5edbd40d4fedb515df9f0f70f93c08277cb11cd51a376fafbf43c6745b5364679dce6cb - languageName: node - linkType: hard - -"@aws-sdk/util-user-agent-node@npm:3.840.0": - version: 3.840.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.840.0" - dependencies: - "@aws-sdk/middleware-user-agent": "npm:3.840.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/types": "npm:^4.3.1" + "@aws-sdk/middleware-user-agent": "npm:3.910.0" + "@aws-sdk/types": "npm:3.910.0" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: 10c0/862fc435d8a25f3e299e5c92c5ba51ef287a75f18cb0a529797a42a72de1481e3c92458a5569eeeab09fddfb5a75db1c59aa766d95b0e832c32c6c1bd7745644 + checksum: 10c0/619e590479b67c7870e43161e6a81eb7268a54a7b89712ce575f0e8fa14fda55356da87fa9998312c6f314e0d8187757c56874cd96f441cfbbb336a4bf297e00 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.848.0": - version: 3.848.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.848.0" +"@aws-sdk/xml-builder@npm:3.910.0": + version: 3.910.0 + resolution: "@aws-sdk/xml-builder@npm:3.910.0" dependencies: - "@aws-sdk/middleware-user-agent": "npm:3.848.0" - "@aws-sdk/types": "npm:3.840.0" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" + fast-xml-parser: "npm:5.2.5" tslib: "npm:^2.6.2" - peerDependencies: - aws-crt: ">=1.0.0" - peerDependenciesMeta: - aws-crt: - optional: true - checksum: 10c0/165308d1323ed0f56f4366e235674a73606c9d32a47c1572541c4befc6ce5ecca2d2334981f0d77791def22dad0a722773b1540f60f2d329710f2ade361801a6 + checksum: 10c0/b0799f1a70f842e1632a4dfa9275c3669ed4d2e0551f1f238932b5d63a1582a58345b6a4e946a3bd73ab052eb702e63e0396d4b8fae35778eb30c89856287306 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.864.0": - version: 3.864.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.864.0" - dependencies: - "@aws-sdk/middleware-user-agent": "npm:3.864.0" - "@aws-sdk/types": "npm:3.862.0" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - peerDependencies: - aws-crt: ">=1.0.0" - peerDependenciesMeta: - aws-crt: - optional: true - checksum: 10c0/1eba907bbeb99d1c78912e94589ead12b6ecb6f2fbfffa4fafdff94439dc81d2adfa8145302c3d6bcf355ecee7687081f18d5034269f921affc00c5b8402a9bf - languageName: node - linkType: hard - -"@aws-sdk/xml-builder@npm:3.821.0": - version: 3.821.0 - resolution: "@aws-sdk/xml-builder@npm:3.821.0" - dependencies: - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/316e0eb04bcec0bb0897f67718629deab29adb9664ce78743ad854df772472c02332ab12627d74b96ebe2205adc51b1cb7fb01fcb4251e80a7af405e56cfa135 - languageName: node - linkType: hard - -"@aws-sdk/xml-builder@npm:3.862.0": - version: 3.862.0 - resolution: "@aws-sdk/xml-builder@npm:3.862.0" - dependencies: - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/bf388c2cc23cd7d7fbe32d148b59b7476227cadc1d169d92b086befed128926d202c74a58af549888979f57f7bccff2db901b842f36aa135fb3be4b886199053 +"@aws/lambda-invoke-store@npm:^0.0.1": + version: 0.0.1 + resolution: "@aws/lambda-invoke-store@npm:0.0.1" + checksum: 10c0/0bbf3060014a462177fb743e132e9b106a6743ad9cd905df4bd26e9ca8bfe2cc90473b03a79938fa908934e45e43f366f57af56a697991abda71d9ac92f5018f languageName: node linkType: hard @@ -9905,147 +9256,76 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/abort-controller@npm:4.0.4" +"@smithy/abort-controller@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/abort-controller@npm:4.2.2" dependencies: - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/eb172b002fb92406c69b83460f949ace73247e6abd85d0d3714de2765c5db7b98070b9abfb630e2c591dd7b2ff770cc24f7737c1c207581f716c402b16bf46f9 + checksum: 10c0/eb0428d3f1cde2f7689b84f725db23d1160c493addabd00a48f1589df6dad9cf69c88050017bdaf57dc37f81ce8b390673aebdf358195598b63a8481f89056c5 languageName: node linkType: hard -"@smithy/abort-controller@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/abort-controller@npm:4.0.5" +"@smithy/chunked-blob-reader-native@npm:^4.2.1": + version: 4.2.1 + resolution: "@smithy/chunked-blob-reader-native@npm:4.2.1" dependencies: - "@smithy/types": "npm:^4.3.2" + "@smithy/util-base64": "npm:^4.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/0a16d5571f5aa3d6d43465ce1060263a92c6eba011cf448adaeafb940121981ecb26fabb0185745520cace9dfd9aebe6879930ff3b55c8f1b42ac6a337070f20 + checksum: 10c0/63831fe47a5b3a1ea6821846a5fb009298da57159e4818238e8110b77245805c1a07cb854df7955a39de1f5f2dfb7c8803ac942117e622665e089d715cb2041c languageName: node linkType: hard -"@smithy/chunked-blob-reader-native@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/chunked-blob-reader-native@npm:4.0.0" +"@smithy/chunked-blob-reader@npm:^5.2.0": + version: 5.2.0 + resolution: "@smithy/chunked-blob-reader@npm:5.2.0" dependencies: - "@smithy/util-base64": "npm:^4.0.0" tslib: "npm:^2.6.2" - checksum: 10c0/4387f4e8841f20c1c4e689078141de7e6f239e7883be3a02810a023aa30939b15576ee00227b991972d2c5a2f3b6152bcaeca0975c9fa8d3669354c647bd532a + checksum: 10c0/9fe95b788e022ce2b59c8cab607c8f71d73cce367329871d2a7eafdc0d77cec8d1939fe8141f446bbe4051dcfffce864a562762ac2691c368df3b6c2f6ed62b3 languageName: node linkType: hard -"@smithy/chunked-blob-reader@npm:^5.0.0": - version: 5.0.0 - resolution: "@smithy/chunked-blob-reader@npm:5.0.0" +"@smithy/config-resolver@npm:^4.3.2": + version: 4.3.2 + resolution: "@smithy/config-resolver@npm:4.3.2" dependencies: + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-config-provider": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/55ba0fe366ddaa3f93e1faf8a70df0b67efedbd0008922295efe215df09b68df0ba3043293e65b17e7d1be71448d074c2bfc54e5eb6bd18f59b425822c2b9e9a + checksum: 10c0/58ecefbab4b3fe802326e9a2c1d950714c44b701f6d1e36dd91d9e7f2f43d00f21c167ba1ee3a74b7f37305e7ed3a664204c16ce9691ded0603e5a8251329450 languageName: node linkType: hard -"@smithy/config-resolver@npm:^4.1.4": - version: 4.1.4 - resolution: "@smithy/config-resolver@npm:4.1.4" +"@smithy/core@npm:^3.16.1": + version: 3.16.1 + resolution: "@smithy/core@npm:3.16.1" dependencies: - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-config-provider": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" + "@smithy/middleware-serde": "npm:^4.2.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-stream": "npm:^4.5.2" + "@smithy/util-utf8": "npm:^4.2.0" + "@smithy/uuid": "npm:^1.1.0" tslib: "npm:^2.6.2" - checksum: 10c0/41832a42f8da7143732c71098b410f4ddcb096066126f7e8f45bae8d9aeb95681bd0d0d54886f46244c945c63829ca5d23373d4de31a038487aa07159722ef4e + checksum: 10c0/34892aaa74b1559c821d70d058d150fc7d7a4b09c8164c9e40ff493dddf657cd4a28e5db7dffd5b2ff76df644bb48e6b66d4213f483390fdda3f6711893517ef languageName: node linkType: hard -"@smithy/config-resolver@npm:^4.1.5": - version: 4.1.5 - resolution: "@smithy/config-resolver@npm:4.1.5" +"@smithy/credential-provider-imds@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/credential-provider-imds@npm:4.2.2" dependencies: - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-config-provider": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.5" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/f76f2365403411810a205763a6744eb84d4edfc6bedb87ba0d41b4b310b9c693f3cb17610f963f706b06e90c12864fe54617c9ff1f435fe3b94d825f2def2bfb - languageName: node - linkType: hard - -"@smithy/core@npm:^3.6.0": - version: 3.6.0 - resolution: "@smithy/core@npm:3.6.0" - dependencies: - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-stream": "npm:^4.2.2" - "@smithy/util-utf8": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/015874e1c44815b6e50594f2983a1a88e3c4f777760d062b2e31b402e8d145ce5c64b33065eaa97fd37867ef6c95493ddc62f3775cd7102e6fd41c9808be219a - languageName: node - linkType: hard - -"@smithy/core@npm:^3.7.0, @smithy/core@npm:^3.7.1": - version: 3.7.1 - resolution: "@smithy/core@npm:3.7.1" - dependencies: - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-stream": "npm:^4.2.3" - "@smithy/util-utf8": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/3828f48b776a50ee58896fd8fdcd2ae28e2142114118b5ee78892c6e40f74c63f7dbb39199a324f9858d87ca3362e72563e47ddd81c38895da070c9503325405 - languageName: node - linkType: hard - -"@smithy/core@npm:^3.8.0": - version: 3.8.0 - resolution: "@smithy/core@npm:3.8.0" - dependencies: - "@smithy/middleware-serde": "npm:^4.0.9" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-body-length-browser": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.5" - "@smithy/util-stream": "npm:^4.2.4" - "@smithy/util-utf8": "npm:^4.0.0" - "@types/uuid": "npm:^9.0.1" - tslib: "npm:^2.6.2" - uuid: "npm:^9.0.1" - checksum: 10c0/0fe1c19b0a2f371ed04b47e51edac896ed24d868a3f78290ea8913e255fef7d023a9c0ba252f5af2b606bfadfdca7fbc545db01dcd0d2162c228d10b2eadc303 - languageName: node - linkType: hard - -"@smithy/credential-provider-imds@npm:^4.0.6": - version: 4.0.6 - resolution: "@smithy/credential-provider-imds@npm:4.0.6" - dependencies: - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - tslib: "npm:^2.6.2" - checksum: 10c0/b1f3157d0a7b9f9155ac80aeac70d7db896d23d0322a6b38f0e848f1e53864ba1bca6d3dc5dd9af86446c371ebc5bffe01f0712ad562e7635e7d13e532622aa4 - languageName: node - linkType: hard - -"@smithy/credential-provider-imds@npm:^4.0.7": - version: 4.0.7 - resolution: "@smithy/credential-provider-imds@npm:4.0.7" - dependencies: - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - "@smithy/url-parser": "npm:^4.0.5" - tslib: "npm:^2.6.2" - checksum: 10c0/862ac40520e2756918e8ecdf2259ec82f1b1556595b3b8d19d7c68390119c416fdd9c716c78773a2ccec21c32cb81f465e0474073a8a90808e171fbdcdcfbd81 + checksum: 10c0/53e1543b195d606250fa6c4f68b81c98f9e11b4cc473f165f82bbf266ad4850d7549b05fa0424ccdf5a5b2c32bfdc809e39e124fab6e4a87f0d6a5233436647a languageName: node linkType: hard @@ -10061,164 +9341,116 @@ __metadata: languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/eventstream-codec@npm:4.0.4" +"@smithy/eventstream-codec@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/eventstream-codec@npm:4.2.2" dependencies: "@aws-crypto/crc32": "npm:5.2.0" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-hex-encoding": "npm:^4.0.0" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-hex-encoding": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/89b76826d4d3bf97317e3539ece105b9a03552144ad816a687b0b2cbca60e2b3513062c04b6cfacaffb270d616ffc8ac8bf549afc4aa676a6d7465df5a3215ba + checksum: 10c0/9bb133d1e5942c32fd1d50357f8df2d0649ef2be2761deac5754406f88e9cdb7f611680ac601e525c658a8959497b2bbebf7f830244963e5d57a6d8f31cba2bc languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/eventstream-serde-browser@npm:4.0.4" +"@smithy/eventstream-serde-browser@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/eventstream-serde-browser@npm:4.2.2" dependencies: - "@smithy/eventstream-serde-universal": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@smithy/eventstream-serde-universal": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/b2444538555c54ac96d4049b0be3a65d959914bcd5198a8059edc838c7ffac5a1db225290194f85ea8805c47c1edc95484dfeb415cb2004ec3e572880f4fc8c5 + checksum: 10c0/af58899f07476f96d30635296fffed789fa7328c4b4f32b2e4211ffc0547090e8f95609c578bddda1d79f64a3d5c3cc53d43cb160187dbc0743c4930c11a34b0 languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^4.1.2": - version: 4.1.2 - resolution: "@smithy/eventstream-serde-config-resolver@npm:4.1.2" +"@smithy/eventstream-serde-config-resolver@npm:^4.3.2": + version: 4.3.2 + resolution: "@smithy/eventstream-serde-config-resolver@npm:4.3.2" dependencies: - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/54184a29d1e42f1b972292efc3a5cbbe3ca237cd9ab76132bad40e8426fa62d0b7f6fdac01f23e3a9cac69919107ddfd9d2f2873f83ae1f65470d3052c67cefc + checksum: 10c0/fe5c31447a9f303b1f2d530f048d233253b15236cbb9870fc809cf55f2dd66c3f1d09e21487d01a839f111de1a8316837ab9ff84f1eaa384d38d5831853702bb languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/eventstream-serde-node@npm:4.0.4" +"@smithy/eventstream-serde-node@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/eventstream-serde-node@npm:4.2.2" dependencies: - "@smithy/eventstream-serde-universal": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@smithy/eventstream-serde-universal": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/e6d0765a73332c79b69531ed20c27e49475173da09ce21e4c011a64d8a61d7c5c328c9bc1cab991e145fc969b16071ffd6a33ab11291c0fa2a46e8dae28da23b + checksum: 10c0/03e3ac9b099c74f83f17bfb77c3b1389c818f88ff7ba4c0c94530b215c0c0b2545b741438d44f074044bd0cd5493f4aa235f44f4eb050bb1a227f34a89610d21 languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/eventstream-serde-universal@npm:4.0.4" +"@smithy/eventstream-serde-universal@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/eventstream-serde-universal@npm:4.2.2" dependencies: - "@smithy/eventstream-codec": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@smithy/eventstream-codec": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/f0c18efa6cafa111ed20c8c53b4a7b6a0f8e25ccb0d2cafdf83282ebc6f96e47f26daf24b5b810ea83a02e03c994c35419d94fad76871f2cc6cb01d2aed277d9 + checksum: 10c0/12102eac8161456263c008f5ab6052230fa834abc7a00142c767fc1a0094c0fc733d4e375c1133f5981513702612e4eeff3774e48f1e49711805807cd1c58c2a languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^5.0.4": - version: 5.0.4 - resolution: "@smithy/fetch-http-handler@npm:5.0.4" +"@smithy/fetch-http-handler@npm:^5.3.3": + version: 5.3.3 + resolution: "@smithy/fetch-http-handler@npm:5.3.3" dependencies: - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/querystring-builder": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/querystring-builder": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-base64": "npm:^4.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/ce57acfcd40a6ff3965c5f14b432c5ab87f0b0766766960224d4af79af85e37d61da2db6dc5cfa16bf4b8f2d8966a2838d2ee6eef8d5cd5a837aacbc01517851 + checksum: 10c0/1f1635f3c4922f5e22e9d1a26248146e269bf847880ae57c94fe3425def0abd2938aa43678f141014bb923c03be117f9beee79e633a0dd1c4ab5eeb8e38350d9 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^5.1.0": - version: 5.1.0 - resolution: "@smithy/fetch-http-handler@npm:5.1.0" +"@smithy/hash-blob-browser@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/hash-blob-browser@npm:4.2.3" dependencies: - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/querystring-builder": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" + "@smithy/chunked-blob-reader": "npm:^5.2.0" + "@smithy/chunked-blob-reader-native": "npm:^4.2.1" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/9bd54f40f00f35a4eee3c359e5942fc5c6ea1c43d7c708e5dd2cd74e8291c55fc6f1ce043d66eea7c1ca687dda682899058967c5b92df75ab56e44a773bb8679 + checksum: 10c0/d0f8fcc2036f0f3dd1c02ba63d9c8c14402b339fddb962e8e030e6e6f62f75bcb73c8d623efe74de423a2a2178865ecf8920d2778d13b67054a1d538509b1837 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^5.1.1": - version: 5.1.1 - resolution: "@smithy/fetch-http-handler@npm:5.1.1" +"@smithy/hash-node@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/hash-node@npm:4.2.2" dependencies: - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/querystring-builder": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-base64": "npm:^4.0.0" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-buffer-from": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/c07f5cad58d5da7cd0de95e2d600e8dee8cda54bba65e7327c5beb25d2aa3eb815d228944bf20860de8927068d3d80baa28f71ecee0a1a3e131307774f53813b + checksum: 10c0/dda1ab2b05e72c487c13f6dd1dfa91902143aa90516428d3fbcf8f1d12aa52d4d71c631aebb20fc661d18a25e634fb134ef8fc65057d84d92759fb27b17c41cc languageName: node linkType: hard -"@smithy/hash-blob-browser@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/hash-blob-browser@npm:4.0.4" +"@smithy/hash-stream-node@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/hash-stream-node@npm:4.2.2" dependencies: - "@smithy/chunked-blob-reader": "npm:^5.0.0" - "@smithy/chunked-blob-reader-native": "npm:^4.0.0" - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/f970058c2e04e86427e1474355199027fc84dc1d96d9a2278ed37904458d37b020472541390558bd3fb071bbd177b2850b18ceb1beb39d387fead06a2912f974 + checksum: 10c0/18bea2f7f194e31aacd75d3b4ae2c4b6a0eefd0faaddfa0d72c794b4520b19acd4530c556198e60a2980a75af89f2caaaaa7f3a207f3368a62ed575309e9c3b0 languageName: node linkType: hard -"@smithy/hash-node@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/hash-node@npm:4.0.4" +"@smithy/invalid-dependency@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/invalid-dependency@npm:4.2.2" dependencies: - "@smithy/types": "npm:^4.3.1" - "@smithy/util-buffer-from": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/07beb38643990f6c055457765d65af2aedd5944d819025df90d1f2f59596d1a1394cd8c9035ac6d343bc55e3afeb186b51b0ac91938024da8687120fc0b436dc - languageName: node - linkType: hard - -"@smithy/hash-node@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/hash-node@npm:4.0.5" - dependencies: - "@smithy/types": "npm:^4.3.2" - "@smithy/util-buffer-from": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/6c5aeba12b651d74fa05e03b7019d48193b0fac4995ad84fe313961c4e51d16cdbe46f529a3fe435a061fbe7eebee0620def92f9821add28e466152fd3270560 - languageName: node - linkType: hard - -"@smithy/hash-stream-node@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/hash-stream-node@npm:4.0.4" - dependencies: - "@smithy/types": "npm:^4.3.1" - "@smithy/util-utf8": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/4899132433f520e45972bbacb6a999da8d7ccf4c813f2fb28b1af65eaf268ba549b2c37dd54a586cd7bcd82f6e4cec914651a6446b3fb3e1f226ca1864051535 - languageName: node - linkType: hard - -"@smithy/invalid-dependency@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/invalid-dependency@npm:4.0.4" - dependencies: - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/5e5a6282c17a7310f8e866c7e34fa07479d42c650cf3c1875bdb0ec38d5280eeac82a269605a3521b8fa455b92673d8fd5e97eb997acf81a80da82d6f501d651 - languageName: node - linkType: hard - -"@smithy/invalid-dependency@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/invalid-dependency@npm:4.0.5" - dependencies: - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/8cc2a14dc47ac5513641747297e6e7e79dceb687e962e1520949db94597a5ce057f9f92657530b6660df100ef1fcff04cd5d9638847c8ada7f7b431a73f34fd2 + checksum: 10c0/76899c977d406af5afbf446af14a397ed948cda36260819d8f36c5f3f18a83e849923bf7b6435278e37c2544d52775f2bd65bb99282a4f9d2c64e52986ab8084 languageName: node linkType: hard @@ -10240,438 +9472,204 @@ __metadata: languageName: node linkType: hard -"@smithy/md5-js@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/md5-js@npm:4.0.4" +"@smithy/is-array-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/is-array-buffer@npm:4.2.0" dependencies: - "@smithy/types": "npm:^4.3.1" - "@smithy/util-utf8": "npm:^4.0.0" tslib: "npm:^2.6.2" - checksum: 10c0/7c66405dca5d7df6694367dbb4a3d9f13fdfe2589abc81f85d5fb7bf876e1382578d9c477d2256d4b5bc59951c3c534e51eb65c53c2fb3251080f16d1d7ea82c + checksum: 10c0/8e3e21cff5929d627bbf4a9beded28bd54555cfd37772226290964af6950cc10d700776a2ce7553f34ddf88a2e7e3d4681de58c94e9805592d901fc0f32cb597 languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/middleware-content-length@npm:4.0.4" +"@smithy/md5-js@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/md5-js@npm:4.2.2" dependencies: - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/fde43ff13f0830c4608b83cf6e2bd3ae142aa6eb3df6f6c190c2564dd00c2c98f4f95da9146c69bc09115ad87ffc9dc24935d1a3d6d3b2383a9c8558d9177dd6 + checksum: 10c0/09c3c352d3bc00a95ffee6ccab1f2ffc4a61ea55db817f5599419e3273ca6152b43f96982675399fc20f7d448280f848123ed0b35b12650392f0645088c6e84b languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/middleware-content-length@npm:4.0.5" +"@smithy/middleware-content-length@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/middleware-content-length@npm:4.2.2" dependencies: - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/2bbe3afc2d29bf4153afb52adb2cadc063e745c2e1f3c630ff10bb97ce4fa8ae7e6872082ec1407b638d0c7cb896ebcc27ca190f9aa78635a8e41a2440fe680a + checksum: 10c0/f0671c55981785b9a141d5aaa0f5a73db7af381179b9dc1aa1f403bbfc14e6bc4dcbc45734f2a7b55f325b79f7d5eacb8c7a5f8159c470b145424dd937d1246e languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^4.1.13": - version: 4.1.13 - resolution: "@smithy/middleware-endpoint@npm:4.1.13" +"@smithy/middleware-endpoint@npm:^4.3.3": + version: 4.3.3 + resolution: "@smithy/middleware-endpoint@npm:4.3.3" dependencies: - "@smithy/core": "npm:^3.6.0" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-middleware": "npm:^4.0.4" + "@smithy/core": "npm:^3.16.1" + "@smithy/middleware-serde": "npm:^4.2.2" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/url-parser": "npm:^4.2.2" + "@smithy/util-middleware": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/a4f605ba95d59e5afbad326ed0a1417fb33cb1c6085a9c13f765520d3732e223ab501033457eab72ed223d41ce0a079d6895ebb3954935b2a6d25b223c4ef72c + checksum: 10c0/ea1adb2887178ac6421a9b59e069a1e043960f8f5422bd54183c8275b6fa8c479ac752e3d726f2d711714e9bc15664bf718495bddafaac5713a50b708216977a languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^4.1.15, @smithy/middleware-endpoint@npm:^4.1.16": - version: 4.1.16 - resolution: "@smithy/middleware-endpoint@npm:4.1.16" +"@smithy/middleware-retry@npm:^4.4.3": + version: 4.4.3 + resolution: "@smithy/middleware-retry@npm:4.4.3" dependencies: - "@smithy/core": "npm:^3.7.1" - "@smithy/middleware-serde": "npm:^4.0.8" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - "@smithy/url-parser": "npm:^4.0.4" - "@smithy/util-middleware": "npm:^4.0.4" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/service-error-classification": "npm:^4.2.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-retry": "npm:^4.2.2" + "@smithy/uuid": "npm:^1.1.0" tslib: "npm:^2.6.2" - checksum: 10c0/9f19d65ec1ed88e6a7a214821087286304199bbc613b157cca9dd7eab12f3ab6554fb38b9681759c75285210b21b4cc1527add1eafd46f9f5bfb8ca5679eebeb + checksum: 10c0/9ab0f4cdf0e1b9a303ea8522af1b6e070640774d09218c7a9a3c7b82a962601cb0a6e690daf815021a8717a16c58c8a36950c6c4043dbef5ec3ffb0ebe36aa2a languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^4.1.18": - version: 4.1.18 - resolution: "@smithy/middleware-endpoint@npm:4.1.18" +"@smithy/middleware-serde@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/middleware-serde@npm:4.2.2" dependencies: - "@smithy/core": "npm:^3.8.0" - "@smithy/middleware-serde": "npm:^4.0.9" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - "@smithy/url-parser": "npm:^4.0.5" - "@smithy/util-middleware": "npm:^4.0.5" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/22a6e05e427c9899041facefea8bdf8dad393bdb3ccd7ca795fb705e85ee8b9e48c6000e947bb6a8a1cfe48d1f1f1b9f894f0b588e87ce1ea5b187d041bcd6fe + checksum: 10c0/4d3db5dcce34b08f90af4b150c94fb25c0ceb309ea8cc07686be9dde4ccfaa5f31b6662fcaab4a7f2d4ce2630a26048abc08020e36bacccff8411772b59bb998 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^4.1.14": - version: 4.1.14 - resolution: "@smithy/middleware-retry@npm:4.1.14" +"@smithy/middleware-stack@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/middleware-stack@npm:4.2.2" dependencies: - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/service-error-classification": "npm:^4.0.6" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - uuid: "npm:^9.0.1" - checksum: 10c0/a720f366f3c8b5ea9d35bf38718d3885492fe896288623f9e5b3c293bfea14bc530b9107da100abdac3ff45bebbe1335f6da928c005fc78dbdefab2d65f1269d + checksum: 10c0/81b265313f381ff12c223997f04b171f661e58fa3ae3d286990148d9252c784f6bdd9f2c4db747d4eb860fec96c72363d369f7d11bdd8e34fb03ae7e0aba7a09 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^4.1.16": - version: 4.1.17 - resolution: "@smithy/middleware-retry@npm:4.1.17" +"@smithy/node-config-provider@npm:^4.3.2": + version: 4.3.2 + resolution: "@smithy/node-config-provider@npm:4.3.2" dependencies: - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/service-error-classification": "npm:^4.0.6" - "@smithy/smithy-client": "npm:^4.4.8" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-retry": "npm:^4.0.6" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/shared-ini-file-loader": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - uuid: "npm:^9.0.1" - checksum: 10c0/d8b8ce6180a1b9bef099c95a0f8bfcd232f12fc662a65f7ac2d65839009678af33665284c29b8abdb92de47f20f40ec95307a5f1d74623a3374158d800598b43 + checksum: 10c0/a1f5a329e64b738a9cf74f28cad4cd9bd844a2146bce9681d24494a69869e847dbe037bf5ef89508c7b3f234f1c7dff7796e35e747ae675b31e0aa0efd6699a8 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^4.1.19": - version: 4.1.19 - resolution: "@smithy/middleware-retry@npm:4.1.19" +"@smithy/node-http-handler@npm:^4.4.1": + version: 4.4.1 + resolution: "@smithy/node-http-handler@npm:4.4.1" dependencies: - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/service-error-classification": "npm:^4.0.7" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-middleware": "npm:^4.0.5" - "@smithy/util-retry": "npm:^4.0.7" - "@types/uuid": "npm:^9.0.1" + "@smithy/abort-controller": "npm:^4.2.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/querystring-builder": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - uuid: "npm:^9.0.1" - checksum: 10c0/6595d27404491ee3befc69ffe8ce576f26b409385d6958597c8d889fff7aff26973a54eab605348299c24760912d9606f7efe84e3adf72ab146b114096592bec + checksum: 10c0/126ac736317cc167c5744366bff0efef9e9afffbcc6afb3a70875388be570b7eca2a52c59c6c12d6b990ebe4c90c103209a5b874b3a16c72d5923fc3c0ed3dfa languageName: node linkType: hard -"@smithy/middleware-serde@npm:^4.0.8": - version: 4.0.8 - resolution: "@smithy/middleware-serde@npm:4.0.8" +"@smithy/property-provider@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/property-provider@npm:4.2.2" dependencies: - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/11414e584780716b2b0487fe748da9927943d4d810b5b0161e73df6ab24a4d17f675773287f95868c57a71013385f7b027eb2afbab1eed3dbaafef754b482b27 + checksum: 10c0/14b49afd41b9c490b8568716aceb0e6e02449a8a3008b11634d593bd0013081296eb8768fd51ef7bf35e5d0cb248895bbfa73a8b15afa6bcf2fb8d001b38149d languageName: node linkType: hard -"@smithy/middleware-serde@npm:^4.0.9": - version: 4.0.9 - resolution: "@smithy/middleware-serde@npm:4.0.9" +"@smithy/protocol-http@npm:^5.3.2": + version: 5.3.2 + resolution: "@smithy/protocol-http@npm:5.3.2" dependencies: - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/71dc9d920d36a3f65cc883718e8c74687a7c8074a148ab1a035e395e43c6566a3514f10b4c15a13b98194ecd1d81816932c9df8dfa5955cd347c6049893defc4 + checksum: 10c0/a429e1b058d342aaff0eb9463be4d7f4da1ac12933bf30e202d906f25964e20433d503f4e19fe5ede5989f84096ba5e09cf0c10fd94992c8306dd81aa7d17a95 languageName: node linkType: hard -"@smithy/middleware-stack@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/middleware-stack@npm:4.0.4" +"@smithy/querystring-builder@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/querystring-builder@npm:4.2.2" dependencies: - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-uri-escape": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/b29b6430e31f11683f0ce0e06d21a4bfe6cb791ce1eb5686533559baa81698f617bfbfdac06f569e13f077ce177cb70e55f4db20701906b3e344d9294817f382 + checksum: 10c0/d1a288fd78a01133aca6d6778232f7cf8d8fc423af6eab1604ebd06c547ef403e2d51879a47e19dd37ac72e3cbee0f532362b2ec1528f03580ce01687d047c69 languageName: node linkType: hard -"@smithy/middleware-stack@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/middleware-stack@npm:4.0.5" +"@smithy/querystring-parser@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/querystring-parser@npm:4.2.2" dependencies: - "@smithy/types": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/2ebe346b8b868d11bf9e5028a225ad1312f7862231ae01c289059291b984127a7c18e17f1fa4d803de09f77441d839bc5e25f8ec9bed10a9a320d0393bc55930 + checksum: 10c0/af0f051265aabdefd0e8ad40b39962513ca4d6a6560f30b8129b1ddbcf5965fdc8567024062e146dc234dc952376d3a92cba7ee0660685aa7e6fc9ff851f974d languageName: node linkType: hard -"@smithy/node-config-provider@npm:^4.1.3": - version: 4.1.3 - resolution: "@smithy/node-config-provider@npm:4.1.3" +"@smithy/service-error-classification@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/service-error-classification@npm:4.2.2" dependencies: - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/shared-ini-file-loader": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@smithy/types": "npm:^4.7.1" + checksum: 10c0/10e1d9bbe7bb02e0cf20ed83964586dc97016a103d5fd656eb0a31f8d9a6df7049eef26d6b864da0ae2ecb175ddccb5e0bdf091e58282b8bda27f01ac69c08aa + languageName: node + linkType: hard + +"@smithy/shared-ini-file-loader@npm:^4.3.2": + version: 4.3.2 + resolution: "@smithy/shared-ini-file-loader@npm:4.3.2" + dependencies: + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/bea20b3f92290fbefa32d30c4ac7632f94d4e89b5432dfe5a2d0c6261bfd90e882d62dd02e0a4e65f3bc89f815b19e44d7bb103a78b6c77941cc186450ad79f1 + checksum: 10c0/3b96d782bf6ea47107799f8befc4be1182ef7db0e98168f1e253c0404e1a53c5b587ccdb09a14c601f105494aa2bf2229822242e37de7fd55263481097f75543 languageName: node linkType: hard -"@smithy/node-config-provider@npm:^4.1.4": - version: 4.1.4 - resolution: "@smithy/node-config-provider@npm:4.1.4" +"@smithy/signature-v4@npm:^5.3.2": + version: 5.3.2 + resolution: "@smithy/signature-v4@npm:5.3.2" dependencies: - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/shared-ini-file-loader": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" + "@smithy/is-array-buffer": "npm:^4.2.0" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-hex-encoding": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.2" + "@smithy/util-uri-escape": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/950f9e234b8ffb680d2f5b35bc7ff21f73623caf0612d59daba1991da79126ec33e1afd2f6408534b7910474665ab150bd9d341aa46950bf5903665e71c7da6f + checksum: 10c0/a27ef848a6318904186a49eccf9452bf1541f7d4df70332717bb9935081effb30fdc5bc250f652277cfe2a5f983c1b0b06e981d8d6bae5dce534fb1bc4d5998f languageName: node linkType: hard -"@smithy/node-http-handler@npm:^4.0.6": - version: 4.0.6 - resolution: "@smithy/node-http-handler@npm:4.0.6" +"@smithy/smithy-client@npm:^4.8.1": + version: 4.8.1 + resolution: "@smithy/smithy-client@npm:4.8.1" dependencies: - "@smithy/abort-controller": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/querystring-builder": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@smithy/core": "npm:^3.16.1" + "@smithy/middleware-endpoint": "npm:^4.3.3" + "@smithy/middleware-stack": "npm:^4.2.2" + "@smithy/protocol-http": "npm:^5.3.2" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-stream": "npm:^4.5.2" tslib: "npm:^2.6.2" - checksum: 10c0/bde23701b6166b76958cbc194d551a139e3dcc1d05a6c7de3d5b14f54934ca5a49a28d13d8ec4b012716aae816cd0c8c4735c959d5ef697a7a1932fbcfc5d7f2 - languageName: node - linkType: hard - -"@smithy/node-http-handler@npm:^4.1.0": - version: 4.1.0 - resolution: "@smithy/node-http-handler@npm:4.1.0" - dependencies: - "@smithy/abort-controller": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/querystring-builder": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/6212b86b62dc44d0d8eb3949428b2ddbb5d064e722979fc5384ec52367b8246b19619732822514e0be9d6455b8c2c41d29f46a74bf43548cc2713ea7552c07a8 - languageName: node - linkType: hard - -"@smithy/node-http-handler@npm:^4.1.1": - version: 4.1.1 - resolution: "@smithy/node-http-handler@npm:4.1.1" - dependencies: - "@smithy/abort-controller": "npm:^4.0.5" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/querystring-builder": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/a61a841bc6e69c62a983031e8b3faf1ab82abaf0ccd1eb5d3e02e3d99a8be020fa8dff0b2b1f81468db43e0e7be2407785b89e9c6c04035b8b4afde08bed3a98 - languageName: node - linkType: hard - -"@smithy/property-provider@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/property-provider@npm:4.0.4" - dependencies: - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/c370efbb43ab01fb6050fbf4c231bbe2fb7d660256adeee40c0c4c14b7af1b9b75c36f6924aeacdd2885fad1aaf0655047cafe5f0d22f5e371cbd25ff2f04b27 - languageName: node - linkType: hard - -"@smithy/property-provider@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/property-provider@npm:4.0.5" - dependencies: - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/67b828f4ddfb90a90e8a919328bb3c842612115d84d949087988fd8558cd143ec8f7dc437936ef41f9427a7ea2a6ec6a726c5f92a9c12e8c7bef831c4b4f16f0 - languageName: node - linkType: hard - -"@smithy/protocol-http@npm:^5.1.2": - version: 5.1.2 - resolution: "@smithy/protocol-http@npm:5.1.2" - dependencies: - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/50fb026efa321e65a77f9747312eeb428ff2196095c15ed5937efe807a4734c47746759ccf2dbc84a45719effcbc81221662289be6d4d5ec122afb0e3cd66fd9 - languageName: node - linkType: hard - -"@smithy/protocol-http@npm:^5.1.3": - version: 5.1.3 - resolution: "@smithy/protocol-http@npm:5.1.3" - dependencies: - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/5adc1e69b9e2d7c90acfe1a9b731c4f233173e035eb9e8e3dd5fabf63d9a765aff54912a0e94f4f4bff494f4caa9ec40bd53cdc1a94028f561ab5c9649f2790f - languageName: node - linkType: hard - -"@smithy/querystring-builder@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/querystring-builder@npm:4.0.4" - dependencies: - "@smithy/types": "npm:^4.3.1" - "@smithy/util-uri-escape": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/30ec0301fbc2212101391841000a3117ab6c3ae2b6b2a1db230cc1dfcf97738f527b23f859f0a5e843f2a983793b58cdcd21a0ce11ef93fcdf5d8a1ee0d70fbc - languageName: node - linkType: hard - -"@smithy/querystring-builder@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/querystring-builder@npm:4.0.5" - dependencies: - "@smithy/types": "npm:^4.3.2" - "@smithy/util-uri-escape": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/649a046a14f25d5febba341dedd577c9fce80aa86970dc2af0b0289a2b6326731c19ddefcae172a0162a4a73306ad823533528751a0067c910efce3cabe06675 - languageName: node - linkType: hard - -"@smithy/querystring-parser@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/querystring-parser@npm:4.0.4" - dependencies: - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/36bc93732a1628be5dd53748f6f36237bad26de2da810195213541dd35b20eee0b0264160a0de734b9333ca747e0229253d6729d1a8ddc26d176c0b1cce309e0 - languageName: node - linkType: hard - -"@smithy/querystring-parser@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/querystring-parser@npm:4.0.5" - dependencies: - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/e12a2e19137bc95487c51652dd20f6cd0199854986019e5461f14f797fda3cda3ec4786ff45af853aa64ab75a2a91d18f3f8320276f7e407016f80e33604564d - languageName: node - linkType: hard - -"@smithy/service-error-classification@npm:^4.0.6": - version: 4.0.6 - resolution: "@smithy/service-error-classification@npm:4.0.6" - dependencies: - "@smithy/types": "npm:^4.3.1" - checksum: 10c0/b67f5ef633fa803f6b9f81f53dcc361253f33e01ffefbcb1beaf29c578834b1381e5f979e25b38985d351142e1ab4ee638cf132a2ba9f6f7a0a806a35da76d86 - languageName: node - linkType: hard - -"@smithy/service-error-classification@npm:^4.0.7": - version: 4.0.7 - resolution: "@smithy/service-error-classification@npm:4.0.7" - dependencies: - "@smithy/types": "npm:^4.3.2" - checksum: 10c0/fe44ce36c8759c74a63adc52c47b638ee0a34ea32752d9c5923c370f0497a412ced51d8b83e444303d8d9d544d30d3d16fecb39c9f5cda8622b293704ce999a2 - languageName: node - linkType: hard - -"@smithy/shared-ini-file-loader@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/shared-ini-file-loader@npm:4.0.4" - dependencies: - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/a3ecabadda13ff6fca99585e7e0086a04c4d2350b8c783b3a23493c2ae0a599f397d3cb80a7e171b7123889340995cada866d320726fa6a03f3063d60d5d0207 - languageName: node - linkType: hard - -"@smithy/shared-ini-file-loader@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/shared-ini-file-loader@npm:4.0.5" - dependencies: - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/9fafb7d4cf10398cf07a2ad7b619b05f136a2a774b1d104eb43b1862f1297d1f88f7e6d72198df43bef35cdf5938b8b5bcf0e896a8bb406474920d0f653a0a4b - languageName: node - linkType: hard - -"@smithy/signature-v4@npm:^5.1.2": - version: 5.1.2 - resolution: "@smithy/signature-v4@npm:5.1.2" - dependencies: - "@smithy/is-array-buffer": "npm:^4.0.0" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-hex-encoding": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.4" - "@smithy/util-uri-escape": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/83d3870668a6c080c1d0cbecf2e7d1a86c0298cc3a3df9fba21bd942e2a9bcae81eb50960c66bba00c6f9820ef9e5ab3e5ddba67b2d7914a09a82c7887621c0c - languageName: node - linkType: hard - -"@smithy/signature-v4@npm:^5.1.3": - version: 5.1.3 - resolution: "@smithy/signature-v4@npm:5.1.3" - dependencies: - "@smithy/is-array-buffer": "npm:^4.0.0" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-hex-encoding": "npm:^4.0.0" - "@smithy/util-middleware": "npm:^4.0.5" - "@smithy/util-uri-escape": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 10c0/122a918ee070215e5cea8040605d905143a724b5bb0e5c904085f7a7a4b3d87701e5674b39cc8c9e13639b077994739edcdf33c3884172f363bcf68071c2abc7 - languageName: node - linkType: hard - -"@smithy/smithy-client@npm:^4.4.10": - version: 4.4.10 - resolution: "@smithy/smithy-client@npm:4.4.10" - dependencies: - "@smithy/core": "npm:^3.8.0" - "@smithy/middleware-endpoint": "npm:^4.1.18" - "@smithy/middleware-stack": "npm:^4.0.5" - "@smithy/protocol-http": "npm:^5.1.3" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-stream": "npm:^4.2.4" - tslib: "npm:^2.6.2" - checksum: 10c0/994743c7a04e3e1b5136c3be98c3882ab9169d39143530c11553062934887b6b9b7d32de035a15f7ff0f7e6b5db6106ab3e71dc62beb473da9313ff6b8b24a37 - languageName: node - linkType: hard - -"@smithy/smithy-client@npm:^4.4.5": - version: 4.4.5 - resolution: "@smithy/smithy-client@npm:4.4.5" - dependencies: - "@smithy/core": "npm:^3.6.0" - "@smithy/middleware-endpoint": "npm:^4.1.13" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-stream": "npm:^4.2.2" - tslib: "npm:^2.6.2" - checksum: 10c0/180115cf186a0984db9110b3763db2f84451b65c353ae8e908cc6b6941ad4ad13de690192e7ee50281c83694ab09a7f282bcf4c81a2d839497f515c951d86b38 - languageName: node - linkType: hard - -"@smithy/smithy-client@npm:^4.4.7, @smithy/smithy-client@npm:^4.4.8": - version: 4.4.8 - resolution: "@smithy/smithy-client@npm:4.4.8" - dependencies: - "@smithy/core": "npm:^3.7.1" - "@smithy/middleware-endpoint": "npm:^4.1.16" - "@smithy/middleware-stack": "npm:^4.0.4" - "@smithy/protocol-http": "npm:^5.1.2" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-stream": "npm:^4.2.3" - tslib: "npm:^2.6.2" - checksum: 10c0/2e7a0138dcf8afed63e998254f75d90fdb8da34f96cd09f84c7736eb5118f2b539b1ccb1dce697fdd7df7653d9c34b663731b22bfd1e0cb5dbdd8f797a01dfd9 + checksum: 10c0/3c01450c7d3b43e56781333450e50a8f30afb530acf0a8e8e37b03cf9e534082427e48b9bd4fb31a94791fc9177e12b37fda63eafb0e3ee79c3e7272281add1f languageName: node linkType: hard @@ -10693,54 +9691,52 @@ __metadata: languageName: node linkType: hard -"@smithy/url-parser@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/url-parser@npm:4.0.4" +"@smithy/types@npm:^4.7.1": + version: 4.7.1 + resolution: "@smithy/types@npm:4.7.1" dependencies: - "@smithy/querystring-parser": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" tslib: "npm:^2.6.2" - checksum: 10c0/5f4649d9ff618c683e339fa826b1d722419bf8e20d72726fc5fe3cd479ec8c161d4b09b6e24e49b0143a6fb4f9a950d35410db1834e143c28e377b9c529a3657 + checksum: 10c0/5e5703d99bf814d78b636a7652229c644759424523b1877d16a61007de250ced27bb119ab37bb0fb31d973ba590717dac03ff1827d2a45a075b0bb037066c90b languageName: node linkType: hard -"@smithy/url-parser@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/url-parser@npm:4.0.5" +"@smithy/url-parser@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/url-parser@npm:4.2.2" dependencies: - "@smithy/querystring-parser": "npm:^4.0.5" - "@smithy/types": "npm:^4.3.2" + "@smithy/querystring-parser": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/19cb3c8a80a7a42936d47011e5991cee6d548f233cde2bf36ccb6c547d075bbc30e3be67e92f60aaf17c4f3875766be319a3da8399af40767a77b04aea3d9ee5 + checksum: 10c0/da5bfb3ad9670437cd917c9be7a9f7563a7d59a67d0dd639b306e439cdf1fed651e4d1f8e3ee9f66fafb938668419284e2c3d29fee29b3e8b708c826ddecac2d languageName: node linkType: hard -"@smithy/util-base64@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/util-base64@npm:4.0.0" +"@smithy/util-base64@npm:^4.3.0": + version: 4.3.0 + resolution: "@smithy/util-base64@npm:4.3.0" dependencies: - "@smithy/util-buffer-from": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" + "@smithy/util-buffer-from": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/ad18ec66cc357c189eef358d96876b114faf7086b13e47e009b265d0ff80cec046052500489c183957b3a036768409acdd1a373e01074cc002ca6983f780cffc + checksum: 10c0/02dd536b9257914cc9a595a865faac64fc96db10468d52d0cba475df78764fc25ba255707ccd061ee197fca189d7859d70af8cf89b0b0c3e27c1c693676eb6e4 languageName: node linkType: hard -"@smithy/util-body-length-browser@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/util-body-length-browser@npm:4.0.0" +"@smithy/util-body-length-browser@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-body-length-browser@npm:4.2.0" dependencies: tslib: "npm:^2.6.2" - checksum: 10c0/574a10934024a86556e9dcde1a9776170284326c3dfcc034afa128cc5a33c1c8179fca9cfb622ef8be5f2004316cc3f427badccceb943e829105536ec26306d9 + checksum: 10c0/15553c249088d59406c6917c19ed19810c7dbcc0967c44e5f3fbb2cc870c004b35f388c082b77f370a2c440a69ec7e8336c7a066af904812a66944dd5cb4c8cc languageName: node linkType: hard -"@smithy/util-body-length-node@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/util-body-length-node@npm:4.0.0" +"@smithy/util-body-length-node@npm:^4.2.1": + version: 4.2.1 + resolution: "@smithy/util-body-length-node@npm:4.2.1" dependencies: tslib: "npm:^2.6.2" - checksum: 10c0/e91fd3816767606c5f786166ada26440457fceb60f96653b3d624dcf762a8c650e513c275ff3f647cb081c63c283cc178853a7ed9aa224abc8ece4eeeef7a1dd + checksum: 10c0/3c32306735af5b62f75375e976a531ab45f171dfb0dc23ee035478d2132eaf21f244c31b0f3e861c514ff97d8112055e74c98ed44595ad24bd31434d5fdaf4bf languageName: node linkType: hard @@ -10764,118 +9760,60 @@ __metadata: languageName: node linkType: hard -"@smithy/util-config-provider@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/util-config-provider@npm:4.0.0" +"@smithy/util-buffer-from@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-buffer-from@npm:4.2.0" dependencies: + "@smithy/is-array-buffer": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/cd9498d5f77a73aadd575084bcb22d2bb5945bac4605d605d36f2efe3f165f2b60f4dc88b7a62c2ed082ffa4b2c2f19621d0859f18399edbc2b5988d92e4649f + checksum: 10c0/4842d5607240c11400db30762ef6cb4def8d13e3474c5a901a4e2a1783198f5b163ab6011cf24a7f0acbba9a4d7cc79db1d811dc8aa9da446448e52773223997 languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^4.0.21": - version: 4.0.21 - resolution: "@smithy/util-defaults-mode-browser@npm:4.0.21" +"@smithy/util-config-provider@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-config-provider@npm:4.2.0" dependencies: - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" - bowser: "npm:^2.11.0" tslib: "npm:^2.6.2" - checksum: 10c0/401d5f83aa0c054755e18742a6f35de50268174d93ad05bd95123fe176870153da3bfc2344ebad23a2a159bd0668f2c0c758a94e3d5696dd59990d5e881c4c1b + checksum: 10c0/0699b9980ef94eac8f491c2ac557dc47e01c6ae71dabcb4464cc064f8dbf0855797461dbec8ba1925d45f076e968b0df02f0691c636cd1043e560f67541a1d27 languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^4.0.23": - version: 4.0.24 - resolution: "@smithy/util-defaults-mode-browser@npm:4.0.24" +"@smithy/util-defaults-mode-browser@npm:^4.3.2": + version: 4.3.2 + resolution: "@smithy/util-defaults-mode-browser@npm:4.3.2" dependencies: - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/smithy-client": "npm:^4.4.8" - "@smithy/types": "npm:^4.3.1" - bowser: "npm:^2.11.0" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/f0738ae262dd79c17cfa060a26cfd84de6b51d7a238f3d48bc960f2e9888e68af719b825243c99ec65828edda52883bd70361cedd7224f290981d71963edbc07 + checksum: 10c0/143041912a4819909c317e7c7a23270e49bdfdc19b36e3e296247ca2ce1e47db1e46523910b21bb5e8b07fb5b57daf653e5226dad0670f7328d44914592147ef languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^4.0.26": - version: 4.0.26 - resolution: "@smithy/util-defaults-mode-browser@npm:4.0.26" +"@smithy/util-defaults-mode-node@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/util-defaults-mode-node@npm:4.2.3" dependencies: - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - bowser: "npm:^2.11.0" + "@smithy/config-resolver": "npm:^4.3.2" + "@smithy/credential-provider-imds": "npm:^4.2.2" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/property-provider": "npm:^4.2.2" + "@smithy/smithy-client": "npm:^4.8.1" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/ba10af21bd302f4705a808673eb3811e36a78c396f7ee93e2dfea5ded7d78470c789d3bc7a23e3d6232b43b7b91f57fbfbd383d11042e6993dc9c49030cbd0ef + checksum: 10c0/e572c8ce3b73bd8dd12e0987bbe0a4c97e2f42d03d58f61ad2ba9dbd261e491b8367d08f7322b1679407df53c6a4d0988cb1a8766271ff9914cb5232dc25670c languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^4.0.21": - version: 4.0.21 - resolution: "@smithy/util-defaults-mode-node@npm:4.0.21" +"@smithy/util-endpoints@npm:^3.2.2": + version: 3.2.2 + resolution: "@smithy/util-endpoints@npm:3.2.2" dependencies: - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/credential-provider-imds": "npm:^4.0.6" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/smithy-client": "npm:^4.4.5" - "@smithy/types": "npm:^4.3.1" + "@smithy/node-config-provider": "npm:^4.3.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/936399758fdecf68b14f7adfcb6a9dbc50b62edeabc6c146affe5f7dc40ccfc42df0c6af882748a8ccc32a54834bcf1d22fd42ec8589242dcabe5b983b67e40c - languageName: node - linkType: hard - -"@smithy/util-defaults-mode-node@npm:^4.0.23": - version: 4.0.24 - resolution: "@smithy/util-defaults-mode-node@npm:4.0.24" - dependencies: - "@smithy/config-resolver": "npm:^4.1.4" - "@smithy/credential-provider-imds": "npm:^4.0.6" - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/property-provider": "npm:^4.0.4" - "@smithy/smithy-client": "npm:^4.4.8" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/4ca648d7d660bf62c096d2a4b7639e0178898def45aa5e9d0b5ddd4cd6f49478155465145a44c1634e8e3149b7e6f79a19f91f93e584d765118504bac81225c0 - languageName: node - linkType: hard - -"@smithy/util-defaults-mode-node@npm:^4.0.26": - version: 4.0.26 - resolution: "@smithy/util-defaults-mode-node@npm:4.0.26" - dependencies: - "@smithy/config-resolver": "npm:^4.1.5" - "@smithy/credential-provider-imds": "npm:^4.0.7" - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/property-provider": "npm:^4.0.5" - "@smithy/smithy-client": "npm:^4.4.10" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/0a682393db1617681fc132c39d9f01accd5c3c250be457ebb514001d83d34252d404fe6315ee0cc5176e0efc7fdeec64e848299bdefe6113d3c70f81717b665b - languageName: node - linkType: hard - -"@smithy/util-endpoints@npm:^3.0.6": - version: 3.0.6 - resolution: "@smithy/util-endpoints@npm:3.0.6" - dependencies: - "@smithy/node-config-provider": "npm:^4.1.3" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/d7d583c73a0c1ce38188569616cd4d7c95c36c0393516117043962b932f8c743e8cd672d2edd23ea8a9da0e30b84ee0f0ced0709cc8024b70ea8e5f17f505811 - languageName: node - linkType: hard - -"@smithy/util-endpoints@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/util-endpoints@npm:3.0.7" - dependencies: - "@smithy/node-config-provider": "npm:^4.1.4" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/7024005a8a4f77ebae52d1dce538d76db3567c6fb22b06ba601dba4d4d8668cb4dbadd229015d02bb6bdb1a5aaa6b2d1c826cfcf412257ceb9dfe52c7ab95fca + checksum: 10c0/1423e1432cb7983324f58fc570ff7e0824f2064f54d599a87c6fbe59fbba7c0a72c1748a74b4e1a4c3b15c308313986591548a14878c1ff08804dde2fe57a5a1 languageName: node linkType: hard @@ -10888,102 +9826,58 @@ __metadata: languageName: node linkType: hard -"@smithy/util-middleware@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/util-middleware@npm:4.0.4" +"@smithy/util-hex-encoding@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-hex-encoding@npm:4.2.0" dependencies: - "@smithy/types": "npm:^4.3.1" tslib: "npm:^2.6.2" - checksum: 10c0/39530add63ec13dac555846c30e98128316136f7f57bfd8fe876a8c15a7677cb64d0a33fd1f08b671096d769ab3f025d4d8c785a9d7a7cdf42fd0188236b0f32 + checksum: 10c0/aaa94a69f03d14d3f28125cc915ca421065735e2d05d7305f0958a50021b2fce4fc68a248328e6b5b612dbaa49e471d481ff513bf89554f659f0a49573e97312 languageName: node linkType: hard -"@smithy/util-middleware@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/util-middleware@npm:4.0.5" - dependencies: - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/74d9bdbcea4c4aa5304197417c370346b230b7a89893ba0dee0d9771b6ead2628a53fb8a64a3822bf1a30a176ebba2c16ece7003c21880a7ff54be0955356606 - languageName: node - linkType: hard - -"@smithy/util-retry@npm:^4.0.6": - version: 4.0.6 - resolution: "@smithy/util-retry@npm:4.0.6" - dependencies: - "@smithy/service-error-classification": "npm:^4.0.6" - "@smithy/types": "npm:^4.3.1" - tslib: "npm:^2.6.2" - checksum: 10c0/b1d3a5875769300bb74d63243868eba8a8f3567a9b22776cfb11700cfdd10bf10b2ed96bffdc9527d9130daf1be2482ea9217e1865a94efed01fe66e688768f4 - languageName: node - linkType: hard - -"@smithy/util-retry@npm:^4.0.7": - version: 4.0.7 - resolution: "@smithy/util-retry@npm:4.0.7" - dependencies: - "@smithy/service-error-classification": "npm:^4.0.7" - "@smithy/types": "npm:^4.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/09c633f59ac51203d917548ceb4caf7678e24c87eea024e97e8d62a918be4a76a1c517622b7e9841cf0e9f50778d6787f62efe6c25ae514ed7068e2323303c72 - languageName: node - linkType: hard - -"@smithy/util-stream@npm:^4.2.2": +"@smithy/util-middleware@npm:^4.2.2": version: 4.2.2 - resolution: "@smithy/util-stream@npm:4.2.2" + resolution: "@smithy/util-middleware@npm:4.2.2" dependencies: - "@smithy/fetch-http-handler": "npm:^5.0.4" - "@smithy/node-http-handler": "npm:^4.0.6" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-buffer-from": "npm:^4.0.0" - "@smithy/util-hex-encoding": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/5e4ef783e41185d291a72e8503d02fd5a5f7bd23f3d30198f3d738c0f27dd6d7ea131fe6fbe36a6ac69b8bd4207f7dfc75a15329764e6aa52f62c45bc5442619 + checksum: 10c0/efada57900ece7f000740899a0f38a38844be3968e40379105c1c2a19d88bbda9095e87d50c8837f6d35b4f984ee73617c39db516b3716270b763e3a3b3ed406 languageName: node linkType: hard -"@smithy/util-stream@npm:^4.2.3": - version: 4.2.3 - resolution: "@smithy/util-stream@npm:4.2.3" +"@smithy/util-retry@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/util-retry@npm:4.2.2" dependencies: - "@smithy/fetch-http-handler": "npm:^5.1.0" - "@smithy/node-http-handler": "npm:^4.1.0" - "@smithy/types": "npm:^4.3.1" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-buffer-from": "npm:^4.0.0" - "@smithy/util-hex-encoding": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" + "@smithy/service-error-classification": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" tslib: "npm:^2.6.2" - checksum: 10c0/3321f944a36c7a9a8ef17f5c58b29ef06107c9bc682d7932f2ea9e1b6f839174d07d053e81285bad8b29c11848e799795e6c016648a6e3a8636d8acfe24183ef + checksum: 10c0/7df12a5d81a3047fdd3d1a03b391e2132bc94127eccfbe3c3d74409c0e6d6a4f924845d6f5c78708a49ba28213b177d97e2db9fe397d2851f89995b98d47edf7 languageName: node linkType: hard -"@smithy/util-stream@npm:^4.2.4": - version: 4.2.4 - resolution: "@smithy/util-stream@npm:4.2.4" +"@smithy/util-stream@npm:^4.5.2": + version: 4.5.2 + resolution: "@smithy/util-stream@npm:4.5.2" dependencies: - "@smithy/fetch-http-handler": "npm:^5.1.1" - "@smithy/node-http-handler": "npm:^4.1.1" - "@smithy/types": "npm:^4.3.2" - "@smithy/util-base64": "npm:^4.0.0" - "@smithy/util-buffer-from": "npm:^4.0.0" - "@smithy/util-hex-encoding": "npm:^4.0.0" - "@smithy/util-utf8": "npm:^4.0.0" + "@smithy/fetch-http-handler": "npm:^5.3.3" + "@smithy/node-http-handler": "npm:^4.4.1" + "@smithy/types": "npm:^4.7.1" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-buffer-from": "npm:^4.2.0" + "@smithy/util-hex-encoding": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/45d2945656a68822272eb5e37e447bd161861722d841712d087cc0aaf93ad0da8162eef2164d1a35f55a7124cb8815b357b766c21442b23ea972b1d5345f0526 + checksum: 10c0/aade6b07adfb6cc9e85fbdd3ce70959e95550d849d7f89d87c61148d1189258ee9f2a589c4c7cbd264776db945bef5b6dee76277439c0a9e4ecf9651b07fe383 languageName: node linkType: hard -"@smithy/util-uri-escape@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/util-uri-escape@npm:4.0.0" +"@smithy/util-uri-escape@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-uri-escape@npm:4.2.0" dependencies: tslib: "npm:^2.6.2" - checksum: 10c0/23984624060756adba8aa4ab1693fe6b387ee5064d8ec4dfd39bb5908c4ee8b9c3f2dc755da9b07505d8e3ce1338c1867abfa74158931e4728bf3cfcf2c05c3d + checksum: 10c0/1933e8d939dc52e1ee5e7d2397f4c208a9eac0283397a19ee72078d04db997ebe3ad39709b56aac586ffce10d1cf5ab17dfc068ea6ab030098fc06fe3532e085 languageName: node linkType: hard @@ -11007,14 +9901,33 @@ __metadata: languageName: node linkType: hard -"@smithy/util-waiter@npm:^4.0.6": - version: 4.0.6 - resolution: "@smithy/util-waiter@npm:4.0.6" +"@smithy/util-utf8@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-utf8@npm:4.2.0" dependencies: - "@smithy/abort-controller": "npm:^4.0.4" - "@smithy/types": "npm:^4.3.1" + "@smithy/util-buffer-from": "npm:^4.2.0" tslib: "npm:^2.6.2" - checksum: 10c0/4027aed03515dfb627c09e0d490f001b912def1142865d0ec8de1fc0422e7c71e96df3efc7b92c7fdfff9030105b2b4213120506d064ad346cc79124708c1b17 + checksum: 10c0/689a1f2295d52bec0dde7215a075d79ef32ad8b146cb610a529b2cab747d96978401fd31469c225e31f3042830c54403e64d39b28033df013c8de27a84b405a2 + languageName: node + linkType: hard + +"@smithy/util-waiter@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/util-waiter@npm:4.2.2" + dependencies: + "@smithy/abort-controller": "npm:^4.2.2" + "@smithy/types": "npm:^4.7.1" + tslib: "npm:^2.6.2" + checksum: 10c0/285efdb47f3e0f70aea7c9261df5fcfbe498515d52f3a63c94402183ab3b05eb9c972dd0a0d6dba6736890d5cc7cf8abe382abd833b3fe58fcdc978b32f3aeb1 + languageName: node + linkType: hard + +"@smithy/uuid@npm:^1.1.0": + version: 1.1.0 + resolution: "@smithy/uuid@npm:1.1.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/f8a8bfcc0e241457636884e778e261d45d8a3aaad533775111170cac36ac666275b59ec6d86d3d5b8d470ff4b864202d2a1a188b3c0e0ed0c86a0b693acf1ecf languageName: node linkType: hard @@ -12854,13 +11767,6 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: 10c0/b411b93054cb1d4361919579ef3508a1f12bf15b5fdd97337d3d351bece6c921b52b6daeef89b62340fd73fd60da407878432a1af777f40648cbe53a01723489 - languageName: node - linkType: hard - "@types/verror@npm:^1.10.3": version: 1.10.11 resolution: "@types/verror@npm:1.10.11" @@ -13857,9 +12763,9 @@ __metadata: "@anthropic-ai/claude-agent-sdk": "patch:@anthropic-ai/claude-agent-sdk@npm%3A0.1.25#~/.yarn/patches/@anthropic-ai-claude-agent-sdk-npm-0.1.25-08bbabb5d3.patch" "@anthropic-ai/sdk": "npm:^0.41.0" "@anthropic-ai/vertex-sdk": "patch:@anthropic-ai/vertex-sdk@npm%3A0.11.4#~/.yarn/patches/@anthropic-ai-vertex-sdk-npm-0.11.4-c19cb41edb.patch" - "@aws-sdk/client-bedrock": "npm:^3.840.0" - "@aws-sdk/client-bedrock-runtime": "npm:^3.840.0" - "@aws-sdk/client-s3": "npm:^3.840.0" + "@aws-sdk/client-bedrock": "npm:^3.910.0" + "@aws-sdk/client-bedrock-runtime": "npm:^3.910.0" + "@aws-sdk/client-s3": "npm:^3.910.0" "@biomejs/biome": "npm:2.2.4" "@cherrystudio/ai-core": "workspace:^1.0.0-alpha.18" "@cherrystudio/embedjs": "npm:^0.1.31" @@ -18738,17 +17644,6 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:4.4.1": - version: 4.4.1 - resolution: "fast-xml-parser@npm:4.4.1" - dependencies: - strnum: "npm:^1.0.5" - bin: - fxparser: src/cli/cli.js - checksum: 10c0/7f334841fe41bfb0bf5d920904ccad09cefc4b5e61eaf4c225bf1e1bb69ee77ef2147d8942f783ee8249e154d1ca8a858e10bda78a5d78b8bed3f48dcee9bf33 - languageName: node - linkType: hard - "fast-xml-parser@npm:5.2.5": version: 5.2.5 resolution: "fast-xml-parser@npm:5.2.5" @@ -27907,7 +26802,7 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^1.0.5, strnum@npm:^1.1.1": +"strnum@npm:^1.1.1": version: 1.1.2 resolution: "strnum@npm:1.1.2" checksum: 10c0/a0fce2498fa3c64ce64a40dada41beb91cabe3caefa910e467dc0518ef2ebd7e4d10f8c2202a6104f1410254cae245066c0e94e2521fb4061a5cb41831952392 From 346af4d338fbd3719a3d0af9f2c3380273fb3e47 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Tue, 4 Nov 2025 12:59:14 +0800 Subject: [PATCH 16/22] fix: add CherryAI provider support and update API host formatting (#11135) * fix: add CherryAI provider support and update API host formatting * format code * add ut * format code --- .../provider/__tests__/providerConfig.test.ts | 116 +++++++++++++++++- .../src/aiCore/provider/providerConfig.ts | 3 + src/renderer/src/config/providers.ts | 4 + 3 files changed, 119 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/aiCore/provider/__tests__/providerConfig.test.ts b/src/renderer/src/aiCore/provider/__tests__/providerConfig.test.ts index eb6e73c8ae..cc5f20c63e 100644 --- a/src/renderer/src/aiCore/provider/__tests__/providerConfig.test.ts +++ b/src/renderer/src/aiCore/provider/__tests__/providerConfig.test.ts @@ -21,10 +21,44 @@ vi.mock('@renderer/store', () => ({ } })) +vi.mock('@renderer/utils/api', () => ({ + formatApiHost: vi.fn((host, isSupportedAPIVersion = true) => { + if (isSupportedAPIVersion === false) { + return host // Return host as-is when isSupportedAPIVersion is false + } + return `${host}/v1` // Default behavior when isSupportedAPIVersion is true + }), + routeToEndpoint: vi.fn((host) => ({ + baseURL: host, + endpoint: '/chat/completions' + })) +})) + +vi.mock('@renderer/config/providers', async (importOriginal) => { + const actual = (await importOriginal()) as any + return { + ...actual, + isCherryAIProvider: vi.fn(), + isAnthropicProvider: vi.fn(() => false), + isAzureOpenAIProvider: vi.fn(() => false), + isGeminiProvider: vi.fn(() => false), + isNewApiProvider: vi.fn(() => false) + } +}) + +vi.mock('@renderer/hooks/useVertexAI', () => ({ + isVertexProvider: vi.fn(() => false), + isVertexAIConfigured: vi.fn(() => false), + createVertexProvider: vi.fn() +})) + +import { isCherryAIProvider } from '@renderer/config/providers' +import { getProviderByModel } from '@renderer/services/AssistantService' import type { Model, Provider } from '@renderer/types' +import { formatApiHost } from '@renderer/utils/api' import { COPILOT_DEFAULT_HEADERS, COPILOT_EDITOR_VERSION, isCopilotResponsesModel } from '../constants' -import { providerToAiSdkConfig } from '../providerConfig' +import { getActualProvider, providerToAiSdkConfig } from '../providerConfig' const createWindowKeyv = () => { const store = new Map() @@ -46,11 +80,21 @@ const createCopilotProvider = (): Provider => ({ isSystem: true }) -const createModel = (id: string, name = id): Model => ({ +const createModel = (id: string, name = id, provider = 'copilot'): Model => ({ id, name, - provider: 'copilot', - group: 'copilot' + provider, + group: provider +}) + +const createCherryAIProvider = (): Provider => ({ + id: 'cherryai', + type: 'openai', + name: 'CherryAI', + apiKey: 'test-key', + apiHost: 'https://api.cherryai.com', + models: [], + isSystem: false }) describe('Copilot responses routing', () => { @@ -87,3 +131,67 @@ describe('Copilot responses routing', () => { expect(config.options.headers?.['Copilot-Integration-Id']).toBe(COPILOT_DEFAULT_HEADERS['Copilot-Integration-Id']) }) }) + +describe('CherryAI provider configuration', () => { + beforeEach(() => { + ;(globalThis as any).window = { + ...(globalThis as any).window, + keyv: createWindowKeyv() + } + vi.clearAllMocks() + }) + + it('formats CherryAI provider apiHost with false parameter', () => { + const provider = createCherryAIProvider() + const model = createModel('gpt-4', 'GPT-4', 'cherryai') + + // Mock the functions to simulate CherryAI provider detection + vi.mocked(isCherryAIProvider).mockReturnValue(true) + vi.mocked(getProviderByModel).mockReturnValue(provider) + + // Call getActualProvider which should trigger formatProviderApiHost + const actualProvider = getActualProvider(model) + + // Verify that formatApiHost was called with false as the second parameter + expect(formatApiHost).toHaveBeenCalledWith('https://api.cherryai.com', false) + expect(actualProvider.apiHost).toBe('https://api.cherryai.com') + }) + + it('does not format non-CherryAI provider with false parameter', () => { + const provider = { + id: 'openai', + type: 'openai', + name: 'OpenAI', + apiKey: 'test-key', + apiHost: 'https://api.openai.com', + models: [], + isSystem: false + } as Provider + const model = createModel('gpt-4', 'GPT-4', 'openai') + + // Mock the functions to simulate non-CherryAI provider + vi.mocked(isCherryAIProvider).mockReturnValue(false) + vi.mocked(getProviderByModel).mockReturnValue(provider) + + // Call getActualProvider + const actualProvider = getActualProvider(model) + + // Verify that formatApiHost was called with default parameters (true) + expect(formatApiHost).toHaveBeenCalledWith('https://api.openai.com') + expect(actualProvider.apiHost).toBe('https://api.openai.com/v1') + }) + + it('handles CherryAI provider with empty apiHost', () => { + const provider = createCherryAIProvider() + provider.apiHost = '' + const model = createModel('gpt-4', 'GPT-4', 'cherryai') + + vi.mocked(isCherryAIProvider).mockReturnValue(true) + vi.mocked(getProviderByModel).mockReturnValue(provider) + + const actualProvider = getActualProvider(model) + + expect(formatApiHost).toHaveBeenCalledWith('', false) + expect(actualProvider.apiHost).toBe('') + }) +}) diff --git a/src/renderer/src/aiCore/provider/providerConfig.ts b/src/renderer/src/aiCore/provider/providerConfig.ts index c8447671d1..4669d4c851 100644 --- a/src/renderer/src/aiCore/provider/providerConfig.ts +++ b/src/renderer/src/aiCore/provider/providerConfig.ts @@ -9,6 +9,7 @@ import { isOpenAIChatCompletionOnlyModel } from '@renderer/config/models' import { isAnthropicProvider, isAzureOpenAIProvider, + isCherryAIProvider, isGeminiProvider, isNewApiProvider } from '@renderer/config/providers' @@ -100,6 +101,8 @@ function formatProviderApiHost(provider: Provider): Provider { formatted.apiHost = formatAzureOpenAIApiHost(formatted.apiHost) } else if (isVertexProvider(formatted)) { formatted.apiHost = formatVertexApiHost(formatted) + } else if (isCherryAIProvider(formatted)) { + formatted.apiHost = formatApiHost(formatted.apiHost, false) } else { formatted.apiHost = formatApiHost(formatted.apiHost) } diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 2b9fe2b21f..5fbae73dbf 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -1486,6 +1486,10 @@ export const isNewApiProvider = (provider: Provider) => { return ['new-api', 'cherryin'].includes(provider.id) || provider.type === 'new-api' } +export function isCherryAIProvider(provider: Provider): boolean { + return provider.id === 'cherryai' +} + /** * 判断是否为 OpenAI 兼容的提供商 * @param {Provider} provider 提供商对象 From 7dce1d776bace312d5280589ccb1e2700857251a Mon Sep 17 00:00:00 2001 From: fullex <106392080+0xfullex@users.noreply.github.com> Date: Tue, 4 Nov 2025 14:13:07 +0800 Subject: [PATCH 17/22] feat: app's version history log (#11097) * feat: integrate version tracking in app initialization - Added versionService to record the current version during app startup. - This change prepares for upcoming data refactoring in version 2. * fix: lint from other PRs & format * feat: enhance version tracking with meaningful change detection - Updated VersionService to check for changes in version, OS, environment, packaged status, and install mode before recording a new entry. - Improved logging to reflect whether version information has changed or remained the same. --- src/main/index.ts | 5 + src/main/services/VersionService.ts | 285 ++++++++++++++++++++++++++++ 2 files changed, 290 insertions(+) create mode 100644 src/main/services/VersionService.ts diff --git a/src/main/index.ts b/src/main/index.ts index d9554e1652..bcec606f4b 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -30,6 +30,7 @@ import { import selectionService, { initSelectionService } from './services/SelectionService' import { registerShortcuts } from './services/ShortcutService' import { TrayService } from './services/TrayService' +import { versionService } from './services/VersionService' import { windowService } from './services/WindowService' import { initWebviewHotkeys } from './services/WebviewService' @@ -110,6 +111,10 @@ if (!app.requestSingleInstanceLock()) { // Some APIs can only be used after this event occurs. app.whenReady().then(async () => { + // Record current version for tracking + // A preparation for v2 data refactoring + versionService.recordCurrentVersion() + initWebviewHotkeys() // Set app user model id for windows electronApp.setAppUserModelId(import.meta.env.VITE_MAIN_BUNDLE_ID || 'com.kangfenmao.CherryStudio') diff --git a/src/main/services/VersionService.ts b/src/main/services/VersionService.ts new file mode 100644 index 0000000000..a853b99074 --- /dev/null +++ b/src/main/services/VersionService.ts @@ -0,0 +1,285 @@ +import { loggerService } from '@logger' +import { app } from 'electron' +import fs from 'fs' +import path from 'path' + +const logger = loggerService.withContext('VersionService') + +type OS = 'win' | 'mac' | 'linux' | 'unknown' +type Environment = 'prod' | 'dev' +type Packaged = 'packaged' | 'unpackaged' +type Mode = 'install' | 'portable' + +/** + * Version record stored in version.log + */ +interface VersionRecord { + version: string + os: OS + environment: Environment + packaged: Packaged + mode: Mode + timestamp: string +} + +/** + * Service for tracking application version history + * Stores version information in userData/version.log for data migration and diagnostics + */ +class VersionService { + private readonly VERSION_LOG_FILE = 'version.log' + private versionLogPath: string | null = null + + constructor() { + // Lazy initialization of path since app.getPath may not be available during construction + } + + /** + * Gets the full path to version.log file + * @returns {string} Full path to version log file + */ + private getVersionLogPath(): string { + if (!this.versionLogPath) { + this.versionLogPath = path.join(app.getPath('userData'), this.VERSION_LOG_FILE) + } + return this.versionLogPath + } + + /** + * Gets current operating system identifier + * @returns {OS} OS identifier + */ + private getCurrentOS(): OS { + switch (process.platform) { + case 'win32': + return 'win' + case 'darwin': + return 'mac' + case 'linux': + return 'linux' + default: + return 'unknown' + } + } + + /** + * Gets current environment (production or development) + * @returns {Environment} Environment identifier + */ + private getCurrentEnvironment(): Environment { + return import.meta.env.MODE === 'production' ? 'prod' : 'dev' + } + + /** + * Gets packaging status + * @returns {Packaged} Packaging status + */ + private getPackagedStatus(): Packaged { + return app.isPackaged ? 'packaged' : 'unpackaged' + } + + /** + * Gets installation mode (install or portable) + * @returns {Mode} Installation mode + */ + private getInstallMode(): Mode { + return process.env.PORTABLE_EXECUTABLE_DIR !== undefined ? 'portable' : 'install' + } + + /** + * Generates version log line for current application state + * @returns {string} Pipe-separated version record line + */ + private generateCurrentVersionLine(): string { + const version = app.getVersion() + const os = this.getCurrentOS() + const environment = this.getCurrentEnvironment() + const packaged = this.getPackagedStatus() + const mode = this.getInstallMode() + const timestamp = new Date().toISOString() + + return `${version}|${os}|${environment}|${packaged}|${mode}|${timestamp}` + } + + /** + * Parses a version log line into a VersionRecord object + * @param {string} line - Pipe-separated version record line + * @returns {VersionRecord | null} Parsed version record or null if invalid + */ + private parseVersionLine(line: string): VersionRecord | null { + try { + const parts = line.trim().split('|') + if (parts.length !== 6) { + return null + } + + const [version, os, environment, packaged, mode, timestamp] = parts + + // Validate data + if ( + !version || + !['win', 'mac', 'linux', 'unknown'].includes(os) || + !['prod', 'dev'].includes(environment) || + !['packaged', 'unpackaged'].includes(packaged) || + !['install', 'portable'].includes(mode) || + !timestamp + ) { + return null + } + + return { + version, + os: os as OS, + environment: environment as Environment, + packaged: packaged as Packaged, + mode: mode as Mode, + timestamp + } + } catch (error) { + logger.warn(`Failed to parse version line: ${line}`, error as Error) + return null + } + } + + /** + * Reads the last 1KB from version.log and returns all lines + * Uses reverse reading from file end to avoid reading the entire file + * @returns {string[]} Array of version lines from the last 1KB + */ + private readLastVersionLines(): string[] { + const logPath = this.getVersionLogPath() + + try { + if (!fs.existsSync(logPath)) { + return [] + } + + const stats = fs.statSync(logPath) + const fileSize = stats.size + + if (fileSize === 0) { + return [] + } + + // Read from the end of the file, 1KB is enough to find previous version + // Typical line: "1.7.0-beta.3|win|prod|packaged|install|2025-01-15T08:30:00.000Z\n" (~70 bytes) + // 1KB can store ~14 lines, which is more than enough + const bufferSize = Math.min(1024, fileSize) + const buffer = Buffer.alloc(bufferSize) + + const fd = fs.openSync(logPath, 'r') + try { + const startPosition = Math.max(0, fileSize - bufferSize) + fs.readSync(fd, buffer, 0, bufferSize, startPosition) + + const content = buffer.toString('utf-8') + const lines = content + .trim() + .split('\n') + .filter((line) => line.trim()) + + return lines + } finally { + fs.closeSync(fd) + } + } catch (error) { + logger.error('Failed to read version log:', error as Error) + return [] + } + } + + /** + * Appends a version record line to version.log + * @param {string} line - Version record line to append + */ + private appendVersionLine(line: string): void { + const logPath = this.getVersionLogPath() + + try { + fs.appendFileSync(logPath, line + '\n', 'utf-8') + logger.debug(`Version recorded: ${line}`) + } catch (error) { + logger.error('Failed to append version log:', error as Error) + } + } + + /** + * Records the current version on application startup + * Only adds a new record if the version has changed since the last run + */ + recordCurrentVersion(): void { + try { + const currentLine = this.generateCurrentVersionLine() + const lines = this.readLastVersionLines() + + // Add new record if this is the first run or version has changed + if (lines.length === 0) { + logger.info('First run detected, creating version log') + this.appendVersionLine(currentLine) + return + } + + const lastLine = lines[lines.length - 1] + const lastRecord = this.parseVersionLine(lastLine) + const currentVersion = app.getVersion() + + // Check if any meaningful field has changed (version, os, environment, packaged, mode) + const currentOS = this.getCurrentOS() + const currentEnvironment = this.getCurrentEnvironment() + const currentPackaged = this.getPackagedStatus() + const currentMode = this.getInstallMode() + + const hasMeaningfulChange = + !lastRecord || + lastRecord.version !== currentVersion || + lastRecord.os !== currentOS || + lastRecord.environment !== currentEnvironment || + lastRecord.packaged !== currentPackaged || + lastRecord.mode !== currentMode + + if (hasMeaningfulChange) { + logger.info(`Version information changed, recording new entry`) + this.appendVersionLine(currentLine) + } else { + logger.debug(`Version information not changed, skip recording`) + } + } catch (error) { + logger.error('Failed to record current version:', error as Error) + } + } + + /** + * Gets the previous version record (last record with different version than current) + * Reads from the last 1KB of version.log to find the most recent different version + * Useful for detecting version upgrades and running migrations + * @returns {VersionRecord | null} Previous version record or null if not available + */ + getPreviousVersion(): VersionRecord | null { + try { + const lines = this.readLastVersionLines() + if (lines.length === 0) { + return null + } + + const currentVersion = app.getVersion() + + // Read from the end backwards to find the first different version + for (let i = lines.length - 1; i >= 0; i--) { + const record = this.parseVersionLine(lines[i]) + if (record && record.version !== currentVersion) { + return record + } + } + + return null + } catch (error) { + logger.error('Failed to get previous version:', error as Error) + return null + } + } +} + +/** + * Singleton instance of VersionService + */ +export const versionService = new VersionService() From 5fea202a7d5cb33e9e1b8da41fb48003afafb737 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Tue, 4 Nov 2025 18:56:09 +0800 Subject: [PATCH 18/22] fix: add PowerMonitorService for system shutdown handling (#11115) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add PowerMonitorService for system shutdown handling - Add PowerMonitorService to monitor system shutdown events - Use @paymoapp/electron-shutdown-handler for Windows platform - Use Electron's powerMonitor for macOS and Linux platforms - Support registering multiple shutdown handlers via dependency injection - Register shutdown handlers in ipc.ts to disable auto-update and save data 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * format code --------- Co-authored-by: Claude --- package.json | 1 + src/main/index.ts | 2 + src/main/ipc.ts | 13 +++ src/main/services/PowerMonitorService.ts | 112 +++++++++++++++++++++++ yarn.lock | 68 ++++++++++++++ 5 files changed, 196 insertions(+) create mode 100644 src/main/services/PowerMonitorService.ts diff --git a/package.json b/package.json index f0c0050d2a..c7a3a66ba4 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "@libsql/client": "0.14.0", "@libsql/win32-x64-msvc": "^0.4.7", "@napi-rs/system-ocr": "patch:@napi-rs/system-ocr@npm%3A1.0.2#~/.yarn/patches/@napi-rs-system-ocr-npm-1.0.2-59e7a78e8b.patch", + "@paymoapp/electron-shutdown-handler": "^1.1.2", "@strongtz/win32-arm64-msvc": "^0.4.7", "express": "^5.1.0", "font-list": "^2.0.0", diff --git a/src/main/index.ts b/src/main/index.ts index bcec606f4b..025268b651 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -21,6 +21,7 @@ import { appMenuService } from './services/AppMenuService' import { configManager } from './services/ConfigManager' import mcpService from './services/MCPService' import { nodeTraceService } from './services/NodeTraceService' +import powerMonitorService from './services/PowerMonitorService' import { CHERRY_STUDIO_PROTOCOL, handleProtocolUrl, @@ -132,6 +133,7 @@ if (!app.requestSingleInstanceLock()) { appMenuService?.setupApplicationMenu() nodeTraceService.init() + powerMonitorService.init() app.on('activate', function () { const mainWindow = windowService.getMainWindow() diff --git a/src/main/ipc.ts b/src/main/ipc.ts index 936a0dd008..5bf5c73051 100644 --- a/src/main/ipc.ts +++ b/src/main/ipc.ts @@ -50,6 +50,7 @@ import * as NutstoreService from './services/NutstoreService' import ObsidianVaultService from './services/ObsidianVaultService' import { ocrService } from './services/ocr/OcrService' import OvmsManager from './services/OvmsManager' +import powerMonitorService from './services/PowerMonitorService' import { proxyManager } from './services/ProxyManager' import { pythonService } from './services/PythonService' import { FileServiceManager } from './services/remotefile/FileServiceManager' @@ -115,6 +116,18 @@ export function registerIpc(mainWindow: BrowserWindow, app: Electron.App) { const appUpdater = new AppUpdater() const notificationService = new NotificationService() + // Register shutdown handlers + powerMonitorService.registerShutdownHandler(() => { + appUpdater.setAutoUpdate(false) + }) + + powerMonitorService.registerShutdownHandler(() => { + const mw = windowService.getMainWindow() + if (mw && !mw.isDestroyed()) { + mw.webContents.send(IpcChannel.App_SaveData) + } + }) + const checkMainWindow = () => { if (!mainWindow || mainWindow.isDestroyed()) { throw new Error('Main window does not exist or has been destroyed') diff --git a/src/main/services/PowerMonitorService.ts b/src/main/services/PowerMonitorService.ts new file mode 100644 index 0000000000..aab3906c9e --- /dev/null +++ b/src/main/services/PowerMonitorService.ts @@ -0,0 +1,112 @@ +import { loggerService } from '@logger' +import { isLinux, isMac, isWin } from '@main/constant' +import ElectronShutdownHandler from '@paymoapp/electron-shutdown-handler' +import { BrowserWindow } from 'electron' +import { powerMonitor } from 'electron' + +const logger = loggerService.withContext('PowerMonitorService') + +type ShutdownHandler = () => void | Promise + +export class PowerMonitorService { + private static instance: PowerMonitorService + private initialized = false + private shutdownHandlers: ShutdownHandler[] = [] + + private constructor() { + // Private constructor to prevent direct instantiation + } + + public static getInstance(): PowerMonitorService { + if (!PowerMonitorService.instance) { + PowerMonitorService.instance = new PowerMonitorService() + } + return PowerMonitorService.instance + } + + /** + * Register a shutdown handler to be called when system shutdown is detected + * @param handler - The handler function to be called on shutdown + */ + public registerShutdownHandler(handler: ShutdownHandler): void { + this.shutdownHandlers.push(handler) + logger.info('Shutdown handler registered', { totalHandlers: this.shutdownHandlers.length }) + } + + /** + * Initialize power monitor to listen for shutdown events + */ + public init(): void { + if (this.initialized) { + logger.warn('PowerMonitorService already initialized') + return + } + + if (isWin) { + this.initWindowsShutdownHandler() + } else if (isMac || isLinux) { + this.initElectronPowerMonitor() + } + + this.initialized = true + logger.info('PowerMonitorService initialized', { platform: process.platform }) + } + + /** + * Execute all registered shutdown handlers + */ + private async executeShutdownHandlers(): Promise { + logger.info('Executing shutdown handlers', { count: this.shutdownHandlers.length }) + for (const handler of this.shutdownHandlers) { + try { + await handler() + } catch (error) { + logger.error('Error executing shutdown handler', error as Error) + } + } + } + + /** + * Initialize shutdown handler for Windows using @paymoapp/electron-shutdown-handler + */ + private initWindowsShutdownHandler(): void { + try { + const zeroMemoryWindow = new BrowserWindow({ show: false }) + // Set the window handle for the shutdown handler + ElectronShutdownHandler.setWindowHandle(zeroMemoryWindow.getNativeWindowHandle()) + + // Listen for shutdown event + ElectronShutdownHandler.on('shutdown', async () => { + logger.info('System shutdown event detected (Windows)') + // Execute all registered shutdown handlers + await this.executeShutdownHandlers() + // Release the shutdown block to allow the system to shut down + ElectronShutdownHandler.releaseShutdown() + }) + + logger.info('Windows shutdown handler registered') + } catch (error) { + logger.error('Failed to initialize Windows shutdown handler', error as Error) + } + } + + /** + * Initialize power monitor for macOS and Linux using Electron's powerMonitor + */ + private initElectronPowerMonitor(): void { + try { + powerMonitor.on('shutdown', async () => { + logger.info('System shutdown event detected', { platform: process.platform }) + // Execute all registered shutdown handlers + await this.executeShutdownHandlers() + }) + + logger.info('Electron powerMonitor shutdown listener registered') + } catch (error) { + logger.error('Failed to initialize Electron powerMonitor', error as Error) + } + } +} + +// Default export as singleton instance +export default PowerMonitorService.getInstance() diff --git a/yarn.lock b/yarn.lock index 73436f5108..9415540a0c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6787,6 +6787,17 @@ __metadata: languageName: node linkType: hard +"@paymoapp/electron-shutdown-handler@npm:^1.1.2": + version: 1.1.2 + resolution: "@paymoapp/electron-shutdown-handler@npm:1.1.2" + dependencies: + node-addon-api: "npm:^5.0.0" + node-gyp: "npm:latest" + prebuild-install: "npm:^7.1.2" + checksum: 10c0/c774ded900870cd0eae79f2281e971561328b9d2f555b8763a75773f12d953edfa3923067f257bbda5001f9c934343d55344f7a7aac5eff8739762c91e9f37a7 + languageName: node + linkType: hard + "@pdf-lib/standard-fonts@npm:^1.0.0": version: 1.0.0 resolution: "@pdf-lib/standard-fonts@npm:1.0.0" @@ -12816,6 +12827,7 @@ __metadata: "@opentelemetry/sdk-trace-node": "npm:^2.0.0" "@opentelemetry/sdk-trace-web": "npm:^2.0.0" "@opeoginni/github-copilot-openai-compatible": "npm:0.1.19" + "@paymoapp/electron-shutdown-handler": "npm:^1.1.2" "@playwright/test": "npm:^1.52.0" "@radix-ui/react-context-menu": "npm:^2.2.16" "@reduxjs/toolkit": "npm:^2.2.5" @@ -16036,6 +16048,13 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^2.0.0": + version: 2.1.2 + resolution: "detect-libc@npm:2.1.2" + checksum: 10c0/acc675c29a5649fa1fb6e255f993b8ee829e510b6b56b0910666949c80c364738833417d0edb5f90e4e46be17228b0f2b66a010513984e18b15deeeac49369c4 + languageName: node + linkType: hard + "detect-libc@npm:^2.0.1": version: 2.0.3 resolution: "detect-libc@npm:2.0.3" @@ -22425,6 +22444,13 @@ __metadata: languageName: node linkType: hard +"napi-build-utils@npm:^2.0.0": + version: 2.0.0 + resolution: "napi-build-utils@npm:2.0.0" + checksum: 10c0/5833aaeb5cc5c173da47a102efa4680a95842c13e0d9cc70428bd3ee8d96bb2172f8860d2811799b5daa5cbeda779933601492a2028a6a5351c6d0fcf6de83db + languageName: node + linkType: hard + "native-promise-only@npm:0.8.1": version: 0.8.1 resolution: "native-promise-only@npm:0.8.1" @@ -22508,6 +22534,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^5.0.0": + version: 5.1.0 + resolution: "node-addon-api@npm:5.1.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/0eb269786124ba6fad9df8007a149e03c199b3e5a3038125dfb3e747c2d5113d406a4e33f4de1ea600aa2339be1f137d55eba1a73ee34e5fff06c52a5c296d1d + languageName: node + linkType: hard + "node-addon-api@npm:^8.4.0": version: 8.4.0 resolution: "node-addon-api@npm:8.4.0" @@ -23722,6 +23757,28 @@ __metadata: languageName: node linkType: hard +"prebuild-install@npm:^7.1.2": + version: 7.1.3 + resolution: "prebuild-install@npm:7.1.3" + dependencies: + detect-libc: "npm:^2.0.0" + expand-template: "npm:^2.0.3" + github-from-package: "npm:0.0.0" + minimist: "npm:^1.2.3" + mkdirp-classic: "npm:^0.5.3" + napi-build-utils: "npm:^2.0.0" + node-abi: "npm:^3.3.0" + pump: "npm:^3.0.0" + rc: "npm:^1.2.7" + simple-get: "npm:^4.0.0" + tar-fs: "npm:^2.0.0" + tunnel-agent: "npm:^0.6.0" + bin: + prebuild-install: bin.js + checksum: 10c0/25919a42b52734606a4036ab492d37cfe8b601273d8dfb1fa3c84e141a0a475e7bad3ab848c741d2f810cef892fcf6059b8c7fe5b29f98d30e0c29ad009bedff + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -26301,6 +26358,17 @@ __metadata: languageName: node linkType: hard +"simple-get@npm:^4.0.0": + version: 4.0.1 + resolution: "simple-get@npm:4.0.1" + dependencies: + decompress-response: "npm:^6.0.0" + once: "npm:^1.3.1" + simple-concat: "npm:^1.0.0" + checksum: 10c0/b0649a581dbca741babb960423248899203165769747142033479a7dc5e77d7b0fced0253c731cd57cf21e31e4d77c9157c3069f4448d558ebc96cf9e1eebcf0 + languageName: node + linkType: hard + "simple-swizzle@npm:^0.2.2": version: 0.2.2 resolution: "simple-swizzle@npm:0.2.2" From 2546dfbe5d37c5b7bfdf148594e16ab61a76cacb Mon Sep 17 00:00:00 2001 From: fullex <0xfullex@gmail.com> Date: Wed, 5 Nov 2025 12:54:30 +0800 Subject: [PATCH 19/22] chore: update Node.js version to 22 and Yarn version to 4.9.1 across workflows and documentation --- .github/workflows/auto-i18n.yml | 2 +- .github/workflows/github-issue-tracker.yml | 6 +++--- .github/workflows/nightly-build.yml | 6 +++--- .github/workflows/pr-ci.yml | 4 ++-- .github/workflows/release.yml | 10 +++++----- docs/dev.md | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/auto-i18n.yml b/.github/workflows/auto-i18n.yml index c26f4b1adf..1a85b16757 100644 --- a/.github/workflows/auto-i18n.yml +++ b/.github/workflows/auto-i18n.yml @@ -29,7 +29,7 @@ jobs: - name: 📦 Setting Node.js uses: actions/setup-node@v6 with: - node-version: 20 + node-version: 22 package-manager-cache: false - name: 📦 Install dependencies in isolated directory diff --git a/.github/workflows/github-issue-tracker.yml b/.github/workflows/github-issue-tracker.yml index f585527ea2..32bd393145 100644 --- a/.github/workflows/github-issue-tracker.yml +++ b/.github/workflows/github-issue-tracker.yml @@ -5,7 +5,7 @@ on: types: [opened] schedule: # Run every day at 8:30 Beijing Time (00:30 UTC) - - cron: '30 0 * * *' + - cron: "30 0 * * *" workflow_dispatch: jobs: @@ -56,7 +56,7 @@ jobs: if: steps.check_time.outputs.should_delay == 'false' uses: actions/setup-node@v6 with: - node-version: '20' + node-version: 22 - name: Process issue with Claude if: steps.check_time.outputs.should_delay == 'false' @@ -123,7 +123,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v6 with: - node-version: '20' + node-version: 22 - name: Process pending issues with Claude uses: anthropics/claude-code-action@main diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 0698c3bab2..523a670064 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -3,7 +3,7 @@ name: Nightly Build on: workflow_dispatch: schedule: - - cron: '0 17 * * *' # 1:00 BJ Time + - cron: "0 17 * * *" # 1:00 BJ Time permissions: contents: write @@ -58,7 +58,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v6 with: - node-version: 20 + node-version: 22 - name: macos-latest dependencies fix if: matrix.os == 'macos-latest' @@ -66,7 +66,7 @@ jobs: brew install python-setuptools - name: Install corepack - run: corepack enable && corepack prepare yarn@4.6.0 --activate + run: corepack enable && corepack prepare yarn@4.9.1 --activate - name: Get yarn cache directory path id: yarn-cache-dir-path diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 44fc49ee6d..aa273cc56e 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -26,10 +26,10 @@ jobs: - name: Install Node.js uses: actions/setup-node@v6 with: - node-version: 20 + node-version: 22 - name: Install corepack - run: corepack enable && corepack prepare yarn@4.6.0 --activate + run: corepack enable && corepack prepare yarn@4.9.1 --activate - name: Get yarn cache directory path id: yarn-cache-dir-path diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2fa8aa5d4e..8bbb46ee67 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,9 +4,9 @@ on: workflow_dispatch: inputs: tag: - description: 'Release tag (e.g. v1.0.0)' + description: "Release tag (e.g. v1.0.0)" required: true - default: 'v1.0.0' + default: "v1.0.0" push: tags: - v*.*.* @@ -49,7 +49,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v6 with: - node-version: 20 + node-version: 22 - name: macos-latest dependencies fix if: matrix.os == 'macos-latest' @@ -57,7 +57,7 @@ jobs: brew install python-setuptools - name: Install corepack - run: corepack enable && corepack prepare yarn@4.6.0 --activate + run: corepack enable && corepack prepare yarn@4.9.1 --activate - name: Get yarn cache directory path id: yarn-cache-dir-path @@ -127,5 +127,5 @@ jobs: allowUpdates: true makeLatest: false tag: ${{ steps.get-tag.outputs.tag }} - artifacts: 'dist/*.exe,dist/*.zip,dist/*.dmg,dist/*.AppImage,dist/*.snap,dist/*.deb,dist/*.rpm,dist/*.tar.gz,dist/latest*.yml,dist/rc*.yml,dist/beta*.yml,dist/*.blockmap' + artifacts: "dist/*.exe,dist/*.zip,dist/*.dmg,dist/*.AppImage,dist/*.snap,dist/*.deb,dist/*.rpm,dist/*.tar.gz,dist/latest*.yml,dist/rc*.yml,dist/beta*.yml,dist/*.blockmap" token: ${{ secrets.GITHUB_TOKEN }} diff --git a/docs/dev.md b/docs/dev.md index 0fdff640ec..fe67742768 100644 --- a/docs/dev.md +++ b/docs/dev.md @@ -18,13 +18,13 @@ yarn ### Setup Node.js -Download and install [Node.js v20.x.x](https://nodejs.org/en/download) +Download and install [Node.js v22.x.x](https://nodejs.org/en/download) ### Setup Yarn ```bash corepack enable -corepack prepare yarn@4.6.0 --activate +corepack prepare yarn@4.9.1 --activate ``` ### Install Dependencies From caa59c4c50ed65ae360d508dd0fd6e0156db47b6 Mon Sep 17 00:00:00 2001 From: Phantom Date: Wed, 5 Nov 2025 14:14:40 +0800 Subject: [PATCH 20/22] refactor(Topics & Sessions): Style and code structure adjustments (#10868) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor(Tabs): extract shared styled components into separate file Move common styled components (ListItem, ListItemNameContainer, ListItemName, ListItemEditInput) from SessionItem.tsx and Topics.tsx into shared.tsx to improve code reuse and maintainability * refactor(components): extract ListContainer component for shared tab layouts Create reusable ListContainer component to standardize layout styling across tabs Replace manual div containers in Sessions and Topics components with new ListContainer * refactor(ListItem): convert styled component to Tailwind CSS function component - Convert ListItem from styled-components to Tailwind CSS function component - Maintain all original styling and hover/active states - Use HTMLDivElement props interface for proper TypeScript typing - Preserve CSS custom properties for theme variables 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * refactor(ListItemNameContainer): convert styled component to Tailwind CSS function component - Convert ListItemNameContainer from styled-components to Tailwind CSS function component - Simplify layout styles using Tailwind's utility classes - Use HTMLDivElement props interface for proper TypeScript typing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * refactor(ListItemName): convert styled component to Tailwind CSS function component - Convert ListItemName from styled-components to Tailwind CSS function component - Use inline styles for webkit-specific line clamping properties - Remove complex animations from component definition (can be added via CSS classes) - Use HTMLDivElement props interface for proper TypeScript typing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * refactor(ListItemEditInput): convert styled component to Tailwind CSS function component - Convert ListItemEditInput from styled-components to Tailwind CSS function component - Use proper InputHTMLAttributes type for input elements - Remove styled-components import as no longer needed - Maintain all original styling using Tailwind utility classes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * refactor(components): improve type safety and class ordering in shared components - Replace HTMLAttributes with more specific ComponentProps types - Reorder class names for better readability and consistency * refactor(components): update styling and class handling in list items - Replace deprecated classNames utility with cn from @heroui/react - Consolidate style properties into className using cn - Improve CSS selector syntax for better specificity - Standardize padding and border radius values * Revert "refactor(ListItemName): convert styled component to Tailwind CSS function component" This reverts commit 196136068db9fc27294ffebe8124dd0eeab64cf1. * style(shared): increase font size and remove redundant padding The font size was increased from 13px to 14px for better readability. Redundant padding in ListItemEditInput was removed to maintain consistent styling. * refactor(AddButton): simplify component by removing FC type and inline props Remove unnecessary FC type declaration and inline the Props interface with ButtonProps. Also clean up prop spreading by moving it to the end of the component. * style(Topics): remove redundant className and add overflow styles * refactor(components): extract MenuButton to shared components Move MenuButton implementation from individual components to shared module to reduce code duplication and improve maintainability * refactor(PendingIndicator): convert styled component to Tailwind CSS function component - Convert PendingIndicator from styled-components to Tailwind CSS function component - Use ComponentPropsWithoutRef<'div'> for consistent TypeScript typing - Replace styled-components attrs with Tailwind animate-pulse class - Use CSS custom properties for pulse-size variable - Remove styled-components import as no longer needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * refactor(components): replace styled indicators with shared StatusIndicator Consolidate PendingIndicator and FulfilledIndicator into a single StatusIndicator component with variant support * style(shared.tsx): adjust border styles for singlealone active state * refactor: use type-only imports for react props --------- Co-authored-by: Claude --- .../pages/home/Tabs/components/AddButton.tsx | 12 +- .../home/Tabs/components/SessionItem.tsx | 154 +------- .../pages/home/Tabs/components/Sessions.tsx | 5 +- .../src/pages/home/Tabs/components/Topics.tsx | 353 +++++------------- .../src/pages/home/Tabs/components/shared.tsx | 131 +++++++ 5 files changed, 258 insertions(+), 397 deletions(-) create mode 100644 src/renderer/src/pages/home/Tabs/components/shared.tsx diff --git a/src/renderer/src/pages/home/Tabs/components/AddButton.tsx b/src/renderer/src/pages/home/Tabs/components/AddButton.tsx index 62feecd226..2a5a93357c 100644 --- a/src/renderer/src/pages/home/Tabs/components/AddButton.tsx +++ b/src/renderer/src/pages/home/Tabs/components/AddButton.tsx @@ -1,22 +1,16 @@ import type { ButtonProps } from '@heroui/react' import { Button, cn } from '@heroui/react' import { PlusIcon } from 'lucide-react' -import type { FC } from 'react' -interface Props extends ButtonProps { - children: React.ReactNode -} - -const AddButton: FC = ({ children, className, ...props }) => { +const AddButton = ({ children, className, ...props }: ButtonProps) => { return ( ) diff --git a/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx b/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx index d4dcc4cb95..dd2ba50099 100644 --- a/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx +++ b/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx @@ -1,3 +1,4 @@ +import { cn } from '@heroui/react' import { DeleteIcon, EditIcon } from '@renderer/components/Icons' import { isMac } from '@renderer/config/constant' import { useUpdateSession } from '@renderer/hooks/agents/useUpdateSession' @@ -19,14 +20,14 @@ import { ContextMenuSubTrigger, ContextMenuTrigger } from '@renderer/ui/context-menu' -import { classNames } from '@renderer/utils' import { buildAgentSessionTopicId } from '@renderer/utils/agentSession' import { Tooltip } from 'antd' import { MenuIcon, XIcon } from 'lucide-react' import type { FC } from 'react' import React, { memo, startTransition, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' -import styled from 'styled-components' + +import { ListItem, ListItemEditInput, ListItemName, ListItemNameContainer, MenuButton, StatusIndicator } from './shared' // const logger = loggerService.withContext('AgentItem') @@ -67,7 +68,6 @@ const SessionItem: FC = ({ session, agentId, onDelete, onPress }> { e.stopPropagation() if (isConfirmingDeletion || e.ctrlKey || e.metaKey) { @@ -115,20 +115,21 @@ const SessionItem: FC = ({ session, agentId, onDelete, onPress <> - startEdit(session.name ?? '')} - title={session.name ?? session.id} - style={{ - borderRadius: 'var(--list-item-border-radius)', - cursor: isEditing ? 'default' : 'pointer' - }}> - {isPending && !isActive && } - {isFulfilled && !isActive && } - + title={session.name ?? session.id}> + {isPending && !isActive && } + {isFulfilled && !isActive && } + {isEditing ? ( - ) => handleValueChange(e.target.value)} @@ -138,14 +139,14 @@ const SessionItem: FC = ({ session, agentId, onDelete, onPress /> ) : ( <> - + - + )} - - + + = ({ session, agentId, onDelete, onPress ) } -const SessionListItem = styled.div` - padding: 7px 12px; - border-radius: var(--list-item-border-radius); - font-size: 13px; - display: flex; - flex-direction: column; - justify-content: space-between; - cursor: pointer; - width: calc(var(--assistants-width) - 20px); - margin-bottom: 8px; - - .menu { - opacity: 0; - color: var(--color-text-3); - } - - &:hover { - background-color: var(--color-list-item-hover); - transition: background-color 0.1s; - - .menu { - opacity: 1; - } - } - - &.active { - background-color: var(--color-list-item); - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); - .menu { - opacity: 1; - - &:hover { - color: var(--color-text-2); - } - } - } - - &.singlealone { - border-radius: 0 !important; - &:hover { - background-color: var(--color-background-soft); - } - &.active { - border-left: 2px solid var(--color-primary); - box-shadow: none; - } - } -` - -const SessionNameContainer = styled.div` - display: flex; - flex-direction: row; - align-items: center; - gap: 4px; - height: 20px; - justify-content: space-between; -` - -const SessionName = styled.div` - display: -webkit-box; - -webkit-line-clamp: 1; - -webkit-box-orient: vertical; - overflow: hidden; - font-size: 13px; - position: relative; -` - -const SessionEditInput = styled.input` - background: var(--color-background); - border: none; - color: var(--color-text-1); - font-size: 13px; - font-family: inherit; - padding: 2px 6px; - width: 100%; - outline: none; - padding: 0; -` - -const MenuButton = styled.div` - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - min-width: 20px; - min-height: 20px; - .anticon { - font-size: 12px; - } -` - -const PendingIndicator = styled.div.attrs({ - className: 'animation-pulse' -})` - --pulse-size: 5px; - width: 5px; - height: 5px; - position: absolute; - left: 3px; - top: 15px; - border-radius: 50%; - background-color: var(--color-status-warning); -` - -const FulfilledIndicator = styled.div.attrs({ - className: 'animation-pulse' -})` - --pulse-size: 5px; - width: 5px; - height: 5px; - position: absolute; - left: 3px; - top: 15px; - border-radius: 50%; - background-color: var(--color-status-success); -` - export default memo(SessionItem) diff --git a/src/renderer/src/pages/home/Tabs/components/Sessions.tsx b/src/renderer/src/pages/home/Tabs/components/Sessions.tsx index 5a36ce5d22..b56ef9f9c2 100644 --- a/src/renderer/src/pages/home/Tabs/components/Sessions.tsx +++ b/src/renderer/src/pages/home/Tabs/components/Sessions.tsx @@ -17,6 +17,7 @@ import { useTranslation } from 'react-i18next' import AddButton from './AddButton' import SessionItem from './SessionItem' +import { ListContainer } from './shared' // const logger = loggerService.withContext('SessionsTab') @@ -95,7 +96,7 @@ const Sessions: React.FC = ({ agentId }) => { if (error) return return ( -
+ {t('agent.session.add.title')} @@ -118,7 +119,7 @@ const Sessions: React.FC = ({ agentId }) => { /> )} -
+ ) } diff --git a/src/renderer/src/pages/home/Tabs/components/Topics.tsx b/src/renderer/src/pages/home/Tabs/components/Topics.tsx index 04e8bead7a..65bfdd8b3f 100644 --- a/src/renderer/src/pages/home/Tabs/components/Topics.tsx +++ b/src/renderer/src/pages/home/Tabs/components/Topics.tsx @@ -1,3 +1,4 @@ +import { cn } from '@heroui/react' import { DraggableVirtualList } from '@renderer/components/DraggableList' import { CopyIcon, DeleteIcon, EditIcon } from '@renderer/components/Icons' import ObsidianExportPopup from '@renderer/components/Popups/ObsidianExportPopup' @@ -17,7 +18,7 @@ import store from '@renderer/store' import { newMessagesActions } from '@renderer/store/newMessage' import { setGenerating } from '@renderer/store/runtime' import type { Assistant, Topic } from '@renderer/types' -import { classNames, removeSpecialCharactersForFileName } from '@renderer/utils' +import { removeSpecialCharactersForFileName } from '@renderer/utils' import { copyTopicAsMarkdown, copyTopicAsPlainText } from '@renderer/utils/copy' import { exportMarkdownToJoplin, @@ -53,6 +54,15 @@ import { useDispatch, useSelector } from 'react-redux' import styled from 'styled-components' import AddButton from './AddButton' +import { + ListContainer, + ListItem, + ListItemEditInput, + ListItemName, + ListItemNameContainer, + MenuButton, + StatusIndicator +} from './shared' interface Props { assistant: Assistant @@ -73,8 +83,6 @@ export const Topics: React.FC = ({ assistant: _assistant, activeTopic, se const topicFulfilledQuery = useSelector((state: RootState) => state.messages.fulfilledByTopic) const newlyRenamedTopics = useSelector((state: RootState) => state.runtime.chat.newlyRenamedTopics) - const borderRadius = showTopicTime ? 12 : 'var(--list-item-border-radius)' - const [deletingTopicId, setDeletingTopicId] = useState(null) const deleteTimerRef = useRef(null) const [editingTopicId, setEditingTopicId] = useState(null) @@ -489,252 +497,107 @@ export const Topics: React.FC = ({ assistant: _assistant, activeTopic, se const singlealone = topicPosition === 'right' && position === 'right' return ( - EventEmitter.emit(EVENT_NAMES.ADD_NEW_TOPIC)} className="mb-2"> - {t('chat.add.topic.title')} - - }> - {(topic) => { - const isActive = topic.id === activeTopic?.id - const topicName = topic.name.replace('`', '') - const topicPrompt = topic.prompt - const fullTopicPrompt = t('common.prompt') + ': ' + topicPrompt + + EventEmitter.emit(EVENT_NAMES.ADD_NEW_TOPIC)} className="mb-2"> + {t('chat.add.topic.title')} + + + {(topic) => { + const isActive = topic.id === activeTopic?.id + const topicName = topic.name.replace('`', '') + const topicPrompt = topic.prompt + const fullTopicPrompt = t('common.prompt') + ': ' + topicPrompt - const getTopicNameClassName = () => { - if (isRenaming(topic.id)) return 'shimmer' - if (isNewlyRenamed(topic.id)) return 'typing' - return '' - } + const getTopicNameClassName = () => { + if (isRenaming(topic.id)) return 'shimmer' + if (isNewlyRenamed(topic.id)) return 'typing' + return '' + } - return ( - - setTargetTopic(topic)} - className={classNames(isActive ? 'active' : '', singlealone ? 'singlealone' : '')} - onClick={editingTopicId === topic.id && topicEdit.isEditing ? undefined : () => onSwitchTopic(topic)} - style={{ - borderRadius, - cursor: editingTopicId === topic.id && topicEdit.isEditing ? 'default' : 'pointer' - }}> - {isPending(topic.id) && !isActive && } - {isFulfilled(topic.id) && !isActive && } - - {editingTopicId === topic.id && topicEdit.isEditing ? ( - e.stopPropagation()} - /> - ) : ( - { - setEditingTopicId(topic.id) - topicEdit.startEdit(topic.name) - }}> - {topicName} - + return ( + + setTargetTopic(topic)} + className={cn( + isActive ? 'active' : undefined, + singlealone ? 'singlealone' : undefined, + editingTopicId === topic.id && topicEdit.isEditing ? 'cursor-default' : 'cursor-pointer', + showTopicTime ? 'rounded-2xl' : 'rounded-[var(--list-item-border-radius)]' )} - {!topic.pinned && ( - - {t('chat.topics.delete.shortcut', { key: isMac ? '⌘' : 'Ctrl' })} - - }> - { - if (e.ctrlKey || e.metaKey) { - handleConfirmDelete(topic, e) - } else if (deletingTopicId === topic.id) { - handleConfirmDelete(topic, e) - } else { - handleDeleteClick(topic.id, e) - } + onClick={editingTopicId === topic.id && topicEdit.isEditing ? undefined : () => onSwitchTopic(topic)}> + {isPending(topic.id) && !isActive && } + {isFulfilled(topic.id) && !isActive && } + + {editingTopicId === topic.id && topicEdit.isEditing ? ( + e.stopPropagation()} + /> + ) : ( + { + setEditingTopicId(topic.id) + topicEdit.startEdit(topic.name) }}> - {deletingTopicId === topic.id ? ( - - ) : ( - - )} + {topicName} + + )} + {!topic.pinned && ( + + {t('chat.topics.delete.shortcut', { key: isMac ? '⌘' : 'Ctrl' })} + + }> + { + if (e.ctrlKey || e.metaKey) { + handleConfirmDelete(topic, e) + } else if (deletingTopicId === topic.id) { + handleConfirmDelete(topic, e) + } else { + handleDeleteClick(topic.id, e) + } + }}> + {deletingTopicId === topic.id ? ( + + ) : ( + + )} + + + )} + {topic.pinned && ( + + - + )} + + {topicPrompt && ( + + {fullTopicPrompt} + )} - {topic.pinned && ( - - - + {showTopicTime && ( + {dayjs(topic.createdAt).format('MM/DD HH:mm')} )} - - {topicPrompt && ( - - {fullTopicPrompt} - - )} - {showTopicTime && {dayjs(topic.createdAt).format('MM/DD HH:mm')}} - - - ) - }} - + + + ) + }} + + ) } -const TopicListItem = styled.div` - padding: 7px 12px; - border-radius: var(--list-item-border-radius); - font-size: 13px; - display: flex; - flex-direction: column; - justify-content: space-between; - cursor: pointer; - width: calc(var(--assistants-width) - 20px); - - .menu { - opacity: 0; - color: var(--color-text-3); - } - - &:hover { - background-color: var(--color-list-item-hover); - transition: background-color 0.1s; - - .menu { - opacity: 1; - } - } - - &.active { - background-color: var(--color-list-item); - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); - .menu { - opacity: 1; - - &:hover { - color: var(--color-text-2); - } - } - } - &.singlealone { - border-radius: 0 !important; - &:hover { - background-color: var(--color-background-soft); - } - &.active { - border-left: 2px solid var(--color-primary); - box-shadow: none; - } - } -` - -const TopicNameContainer = styled.div` - display: flex; - flex-direction: row; - align-items: center; - gap: 4px; - height: 20px; - justify-content: space-between; -` - -const TopicName = styled.div` - display: -webkit-box; - -webkit-line-clamp: 1; - -webkit-box-orient: vertical; - overflow: hidden; - font-size: 13px; - position: relative; - will-change: background-position, width; - - --color-shimmer-mid: var(--color-text-1); - --color-shimmer-end: color-mix(in srgb, var(--color-text-1) 25%, transparent); - - &.shimmer { - background: linear-gradient(to left, var(--color-shimmer-end), var(--color-shimmer-mid), var(--color-shimmer-end)); - background-size: 200% 100%; - background-clip: text; - color: transparent; - animation: shimmer 3s linear infinite; - } - - &.typing { - display: block; - -webkit-line-clamp: unset; - -webkit-box-orient: unset; - white-space: nowrap; - overflow: hidden; - animation: typewriter 0.5s steps(40, end); - } - - @keyframes shimmer { - 0% { - background-position: 200% 0; - } - 100% { - background-position: -200% 0; - } - } - - @keyframes typewriter { - from { - width: 0; - } - to { - width: 100%; - } - } -` - -const TopicEditInput = styled.input` - background: var(--color-background); - border: none; - color: var(--color-text-1); - font-size: 13px; - font-family: inherit; - padding: 2px 6px; - width: 100%; - outline: none; - padding: 0; -` - -const PendingIndicator = styled.div.attrs({ - className: 'animation-pulse' -})` - --pulse-size: 5px; - width: 5px; - height: 5px; - position: absolute; - left: 3px; - top: 15px; - border-radius: 50%; - background-color: var(--color-status-warning); -` - -const FulfilledIndicator = styled.div.attrs({ - className: 'animation-pulse' -})` - --pulse-size: 5px; - width: 5px; - height: 5px; - position: absolute; - left: 3px; - top: 15px; - border-radius: 50%; - background-color: var(--color-status-success); -` - const TopicPromptText = styled.div` color: var(--color-text-2); font-size: 12px; @@ -751,15 +614,3 @@ const TopicTime = styled.div` color: var(--color-text-3); font-size: 11px; ` - -const MenuButton = styled.div` - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - min-width: 20px; - min-height: 20px; - .anticon { - font-size: 12px; - } -` diff --git a/src/renderer/src/pages/home/Tabs/components/shared.tsx b/src/renderer/src/pages/home/Tabs/components/shared.tsx new file mode 100644 index 0000000000..2ef0278984 --- /dev/null +++ b/src/renderer/src/pages/home/Tabs/components/shared.tsx @@ -0,0 +1,131 @@ +import { cn } from '@heroui/react' +import type { ComponentPropsWithoutRef, ComponentPropsWithRef } from 'react' +import { useMemo } from 'react' +import styled from 'styled-components' + +export const ListItem = ({ children, className, ...props }: ComponentPropsWithoutRef<'div'>) => { + return ( +
+ {children} +
+ ) +} +export const ListItemNameContainer = ({ children, className, ...props }: ComponentPropsWithoutRef<'div'>) => { + return ( +
+ {children} +
+ ) +} + +// This component involves complex animations and will not be migrated for now. +export const ListItemName = styled.div` + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow: hidden; + font-size: 14px; + position: relative; + will-change: background-position, width; + + --color-shimmer-mid: var(--color-text-1); + --color-shimmer-end: color-mix(in srgb, var(--color-text-1) 25%, transparent); + + &.shimmer { + background: linear-gradient(to left, var(--color-shimmer-end), var(--color-shimmer-mid), var(--color-shimmer-end)); + background-size: 200% 100%; + background-clip: text; + color: transparent; + animation: shimmer 3s linear infinite; + } + + &.typing { + display: block; + -webkit-line-clamp: unset; + -webkit-box-orient: unset; + white-space: nowrap; + overflow: hidden; + animation: typewriter 0.5s steps(40, end); + } + + @keyframes shimmer { + 0% { + background-position: 200% 0; + } + 100% { + background-position: -200% 0; + } + } + + @keyframes typewriter { + from { + width: 0; + } + to { + width: 100%; + } + } +` + +export const ListItemEditInput = ({ className, ...props }: ComponentPropsWithRef<'input'>) => { + return ( + + ) +} + +export const ListContainer = ({ children, className, ...props }: ComponentPropsWithoutRef<'div'>) => { + return ( +
+ {children} +
+ ) +} + +export const MenuButton = ({ children, className, ...props }: ComponentPropsWithoutRef<'div'>) => { + return ( +
+ {children} +
+ ) +} + +export const StatusIndicator = ({ variant }: { variant: 'pending' | 'fulfilled' }) => { + const colors = useMemo(() => { + switch (variant) { + case 'pending': + return { + wave: 'bg-warning-400', + back: 'bg-warning-500' + } + case 'fulfilled': + return { + wave: 'bg-success-400', + back: 'bg-success-500' + } + } + }, [variant]) + return ( +
+ + +
+ ) +} From 56c7a7f06631fd10a9c590e1520037a016cf29c1 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Wed, 5 Nov 2025 14:19:14 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=F0=9F=90=9B=20fix:=20resolve=20TypeScrip?= =?UTF-8?q?t=20type=20conflicts=20and=20React=20hooks=20warnings=20(#11148?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 fix: resolve TypeScript type conflicts and React hooks warnings - Add @smithy/types@4.7.1 to resolutions to unify AWS SDK dependencies - Wrap updatePaintingState in useCallback to fix exhaustive-deps warning - Fix AWS Bedrock client type incompatibility issues 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * fix(i18n): Auto update translations for PR #11148 --------- Co-authored-by: Claude Co-authored-by: GitHub Action --- package.json | 1 + src/renderer/src/i18n/translate/de-de.json | 6 ++++++ src/renderer/src/i18n/translate/el-gr.json | 6 ++++++ src/renderer/src/i18n/translate/es-es.json | 6 ++++++ src/renderer/src/i18n/translate/fr-fr.json | 6 ++++++ src/renderer/src/i18n/translate/ja-jp.json | 6 ++++++ src/renderer/src/i18n/translate/pt-pt.json | 6 ++++++ src/renderer/src/i18n/translate/ru-ru.json | 6 ++++++ .../src/pages/paintings/NewApiPage.tsx | 13 +++++++----- yarn.lock | 20 +------------------ 10 files changed, 52 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index c7a3a66ba4..c4259a85a1 100644 --- a/package.json +++ b/package.json @@ -374,6 +374,7 @@ "zod": "^4.1.5" }, "resolutions": { + "@smithy/types": "4.7.1", "@codemirror/language": "6.11.3", "@codemirror/lint": "6.8.5", "@codemirror/view": "6.38.1", diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json index 9891df74ca..b90addff79 100644 --- a/src/renderer/src/i18n/translate/de-de.json +++ b/src/renderer/src/i18n/translate/de-de.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "AWS-Zugriffsschlüssel-ID", "access_key_id_help": "Ihre AWS-Zugriffsschlüssel-ID, um auf AWS Bedrock-Dienste zuzugreifen", + "api_key": "Bedrock-API-Schlüssel", + "api_key_help": "Ihr AWS Bedrock-API-Schlüssel für die Authentifizierung", + "auth_type": "Authentifizierungstyp", + "auth_type_api_key": "Bedrock-API-Schlüssel", + "auth_type_help": "Wählen Sie zwischen IAM-Anmeldeinformationen oder Bedrock-API-Schlüssel-Authentifizierung", + "auth_type_iam": "IAM-Anmeldeinformationen", "description": "AWS Bedrock ist ein vollständig verwalteter Basismodell-Dienst von Amazon, der eine Vielzahl moderner großer Sprachmodelle unterstützt", "region": "AWS-Region", "region_help": "Ihre AWS-Serviceregion, z.B. us-east-1", diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json index 9a51b4b1df..4c6a0b4b20 100644 --- a/src/renderer/src/i18n/translate/el-gr.json +++ b/src/renderer/src/i18n/translate/el-gr.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "Αναγνωριστικό κλειδιού πρόσβασης AWS", "access_key_id_help": "Το ID του κλειδιού πρόσβασης AWS που χρησιμοποιείται για την πρόσβαση στην υπηρεσία AWS Bedrock", + "api_key": "Κλειδί API Bedrock", + "api_key_help": "Το κλειδί API του AWS Bedrock για έλεγχο ταυτότητας", + "auth_type": "Τύπος Πιστοποίησης", + "auth_type_api_key": "Κλειδί API Bedrock", + "auth_type_help": "Επιλέξτε μεταξύ πιστοποιητικών IAM ή πιστοποίησης με κλειδί API Bedrock", + "auth_type_iam": "Διαπιστευτήρια IAM", "description": "Η AWS Bedrock είναι μια πλήρως διαχειριζόμενη υπηρεσία βασικών μοντέλων που παρέχεται από την Amazon και υποστηρίζει διάφορα προηγμένα μεγάλα γλωσσικά μοντέλα.", "region": "Περιοχές AWS", "region_help": "Η περιοχή υπηρεσίας AWS σας, για παράδειγμα us-east-1", diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json index 4382c402e1..cf1b029db3 100644 --- a/src/renderer/src/i18n/translate/es-es.json +++ b/src/renderer/src/i18n/translate/es-es.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "ID de clave de acceso de AWS", "access_key_id_help": "Su ID de clave de acceso de AWS, utilizado para acceder al servicio AWS Bedrock", + "api_key": "Clave de API de Bedrock", + "api_key_help": "Tu clave de API de AWS Bedrock para autenticación", + "auth_type": "Tipo de autenticación", + "auth_type_api_key": "Clave de API de Bedrock", + "auth_type_help": "Elige entre credenciales IAM o autenticación con clave API de Bedrock", + "auth_type_iam": "Credenciales de IAM", "description": "AWS Bedrock es un servicio de modelos fundamentales completamente gestionado proporcionado por Amazon, que admite diversos modelos avanzados de lenguaje de gran tamaño.", "region": "Región de AWS", "region_help": "Su región de servicio AWS, por ejemplo us-east-1", diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json index 4b35eab2fe..c1c699afaf 100644 --- a/src/renderer/src/i18n/translate/fr-fr.json +++ b/src/renderer/src/i18n/translate/fr-fr.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "Identifiant de clé d'accès AWS", "access_key_id_help": "Votre identifiant de clé d'accès AWS, utilisé pour accéder au service AWS Bedrock", + "api_key": "Clé API Bedrock", + "api_key_help": "Votre clé API AWS Bedrock pour l'authentification", + "auth_type": "Type d'authentification", + "auth_type_api_key": "Clé API Bedrock", + "auth_type_help": "Choisissez entre l'authentification par identifiants IAM ou par clé API Bedrock", + "auth_type_iam": "Identifiants IAM", "description": "AWS Bedrock est un service de modèles de base entièrement géré proposé par Amazon, prenant en charge divers grands modèles linguistiques avancés.", "region": "Région AWS", "region_help": "Votre région de service AWS, par exemple us-east-1", diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json index be3fbf90a6..b12587ecf4 100644 --- a/src/renderer/src/i18n/translate/ja-jp.json +++ b/src/renderer/src/i18n/translate/ja-jp.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "AWS アクセスキー ID", "access_key_id_help": "あなたの AWS アクセスキー ID は、AWS Bedrock サービスへのアクセスに使用されます", + "api_key": "Bedrock APIキー", + "api_key_help": "認証用のAWS Bedrock APIキー", + "auth_type": "認証タイプ", + "auth_type_api_key": "Bedrock APIキー", + "auth_type_help": "IAM認証情報とBedrock APIキー認証のどちらかを選択してください", + "auth_type_iam": "IAM認証情報", "description": "AWS Bedrock は、Amazon が提供する完全に管理されたベースモデルサービスで、さまざまな最先端の大言語モデルをサポートしています", "region": "AWS リージョン", "region_help": "あなたの AWS サービスリージョン、例:us-east-1", diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json index 85c6400d0b..7ad1184b15 100644 --- a/src/renderer/src/i18n/translate/pt-pt.json +++ b/src/renderer/src/i18n/translate/pt-pt.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "ID da chave de acesso da AWS", "access_key_id_help": "O seu ID da chave de acesso AWS, utilizado para aceder ao serviço AWS Bedrock", + "api_key": "Chave de API do Bedrock", + "api_key_help": "Sua Chave de API AWS Bedrock para autenticação", + "auth_type": "Tipo de Autenticação", + "auth_type_api_key": "Chave de API do Bedrock", + "auth_type_help": "Escolha entre credenciais IAM ou autenticação por chave de API do Bedrock", + "auth_type_iam": "Credenciais IAM", "description": "A AWS Bedrock é um serviço de modelos fundamentais totalmente gerido fornecido pela Amazon, que suporta diversos modelos avançados de linguagem.", "region": "Região da AWS", "region_help": "A sua região de serviço da AWS, por exemplo, us-east-1", diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json index 6f1797917d..ecdc0ecef0 100644 --- a/src/renderer/src/i18n/translate/ru-ru.json +++ b/src/renderer/src/i18n/translate/ru-ru.json @@ -4260,6 +4260,12 @@ "aws-bedrock": { "access_key_id": "AWS Ключ доступа ID", "access_key_id_help": "Ваш AWS Ключ доступа ID для доступа к AWS Bedrock", + "api_key": "Ключ API Bedrock", + "api_key_help": "Ваш ключ API AWS Bedrock для аутентификации", + "auth_type": "Тип аутентификации", + "auth_type_api_key": "Ключ API Bedrock", + "auth_type_help": "Выберите между аутентификацией с помощью учетных данных IAM или ключа API Bedrock", + "auth_type_iam": "Учетные данные IAM", "description": "AWS Bedrock — это полное управляемое сервисное предложение для моделей, поддерживающее различные современные модели языка", "region": "AWS регион", "region_help": "Ваш регион AWS, например us-east-1", diff --git a/src/renderer/src/pages/paintings/NewApiPage.tsx b/src/renderer/src/pages/paintings/NewApiPage.tsx index 86571f446e..a038a655f6 100644 --- a/src/renderer/src/pages/paintings/NewApiPage.tsx +++ b/src/renderer/src/pages/paintings/NewApiPage.tsx @@ -96,11 +96,14 @@ const NewApiPage: FC<{ Options: string[] }> = ({ Options }) => { return editImageFiles }, [editImageFiles]) - const updatePaintingState = (updates: Partial) => { - const updatedPainting = { ...painting, providerId: newApiProvider.id, ...updates } - setPainting(updatedPainting) - updatePainting(mode, updatedPainting) - } + const updatePaintingState = useCallback( + (updates: Partial) => { + const updatedPainting = { ...painting, providerId: newApiProvider.id, ...updates } + setPainting(updatedPainting) + updatePainting(mode, updatedPainting) + }, + [painting, newApiProvider.id, mode, updatePainting] + ) // ---------------- Model Related Configurations ---------------- // const modelOptions = MODELS.map((m) => ({ label: m.name, value: m.name })) diff --git a/yarn.lock b/yarn.lock index 9415540a0c..c1173958bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9684,25 +9684,7 @@ __metadata: languageName: node linkType: hard -"@smithy/types@npm:^4.3.1": - version: 4.3.1 - resolution: "@smithy/types@npm:4.3.1" - dependencies: - tslib: "npm:^2.6.2" - checksum: 10c0/8b350562b9ed4ff97465025b4ae77a34bb07b9d47fb6f9781755aac9401b0355a63c2fef307393e2dae3fa0277149dd7d83f5bc2a63d4ad3519ea32fd56b5cda - languageName: node - linkType: hard - -"@smithy/types@npm:^4.3.2": - version: 4.3.2 - resolution: "@smithy/types@npm:4.3.2" - dependencies: - tslib: "npm:^2.6.2" - checksum: 10c0/120c5d38f6362c86e6493cce3b9ca9902cd986dab773b39664ff6a95b787c45481f1b1d230f45a6f5ad0c045fb690dc96b51b9ca7b5e9487714a652ed98231f6 - languageName: node - linkType: hard - -"@smithy/types@npm:^4.7.1": +"@smithy/types@npm:4.7.1": version: 4.7.1 resolution: "@smithy/types@npm:4.7.1" dependencies: From 1103449a4f1d9b8b7ae242736336bc1998307552 Mon Sep 17 00:00:00 2001 From: Phantom Date: Wed, 5 Nov 2025 14:33:07 +0800 Subject: [PATCH 22/22] fix: wrong migration in #10727 (#11151) --- src/renderer/src/store/migrate.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index d4bebf6023..ba9bf21f45 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -2797,9 +2797,21 @@ const migrateConfig = { }, '171': (state: RootState) => { try { - addProvider(state, 'sophnet') - state.llm.providers = moveProvider(state.llm.providers, 'sophnet', 17) - state.settings.defaultPaintingProvider = 'cherryin' + // Ensure aws-bedrock provider exists + addProvider(state, 'aws-bedrock') + + // Ensure awsBedrock settings exist and have all required fields + if (!state.llm.settings.awsBedrock) { + state.llm.settings.awsBedrock = llmInitialState.settings.awsBedrock + } else { + // For users who have awsBedrock but missing new fields (authType and apiKey) + if (!state.llm.settings.awsBedrock.authType) { + state.llm.settings.awsBedrock.authType = 'iam' + } + if (state.llm.settings.awsBedrock.apiKey === undefined) { + state.llm.settings.awsBedrock.apiKey = '' + } + } return state } catch (error) { logger.error('migrate 171 error', error as Error)