diff --git a/.changeset/curvy-tables-work.md b/.changeset/curvy-tables-work.md new file mode 100644 index 00000000000..7bc2a2ed4c3 --- /dev/null +++ b/.changeset/curvy-tables-work.md @@ -0,0 +1,7 @@ +--- +"@aws-amplify/ui-react-ai": minor +--- + +AI streaming + +This update brings streaming responses to the `useAIConversation()` hook and `` component. No changes need to be made in your code to get streaming responses now. diff --git a/examples/next/pages/ui/components/ai/ai-conversation-response-components/[id].page.tsx b/examples/next/pages/ui/components/ai/ai-conversation-response-components/[id].page.tsx new file mode 100644 index 00000000000..c920b431021 --- /dev/null +++ b/examples/next/pages/ui/components/ai/ai-conversation-response-components/[id].page.tsx @@ -0,0 +1,113 @@ +import * as React from 'react'; +import { Amplify } from 'aws-amplify'; +import { createAIHooks, AIConversation } from '@aws-amplify/ui-react-ai'; +import { generateClient } from 'aws-amplify/api'; +import ReactMarkdown from 'react-markdown'; +import '@aws-amplify/ui-react/styles.css'; +import { GlobalStyle } from '@aws-amplify/ui-react/server'; + +import outputs from './amplify_outputs'; +import type { Schema } from '@environments/ai/gen2/amplify/data/resource'; +import { Authenticator, Button, Card } from '@aws-amplify/ui-react'; +import { useRouter } from 'next/router'; + +const client = generateClient({ authMode: 'userPool' }); +const { useAIConversation } = createAIHooks(client); + +Amplify.configure(outputs); + +const AIContext = React.createContext(undefined); + +const responseComponents = { + WeatherCard: { + description: 'Used to display the weather in a city', + component: ({ city }) => { + const aiContext = React.useContext(AIContext); + aiContext.setAIContext({ + temperature: 72, + city, + weather: 'sunny', + }); + return ( + +

Weather Card {city}

+
+ ); + }, + props: { + city: { + type: 'string', + description: 'The city to get the weather for', + }, + }, + }, +} as const; + +function Chat({ id }: { id?: string }) { + const aiContext = React.useContext(AIContext); + const [ + { + data: { messages }, + isLoading, + }, + sendMessage, + ] = useAIConversation('pirateChat', { + id, + }); + + console.log(aiContext); + + return ( + { + sendMessage({ + ...message, + aiContext: aiContext.aiContext, + }); + }} + messageRenderer={{ + text: ({ text }) => {text}, + }} + responseComponents={responseComponents} + /> + ); +} + +export default function Example() { + const router = useRouter(); + const [shown, setShown] = React.useState(true); + const [aiContext, setAIContext] = React.useState(undefined); + + return ( + + + + {shown ? ( + + + + ) : null} + + + + ); +} diff --git a/examples/next/pages/ui/components/ai/ai-conversation/[id].page.tsx b/examples/next/pages/ui/components/ai/ai-conversation/[id].page.tsx new file mode 100644 index 00000000000..ac51a7d251d --- /dev/null +++ b/examples/next/pages/ui/components/ai/ai-conversation/[id].page.tsx @@ -0,0 +1,64 @@ +import * as React from 'react'; +import { Amplify } from 'aws-amplify'; +import { createAIHooks, AIConversation } from '@aws-amplify/ui-react-ai'; +import { generateClient } from 'aws-amplify/api'; +import '@aws-amplify/ui-react/styles.css'; + +import outputs from './amplify_outputs'; +import type { Schema } from '@environments/ai/gen2/amplify/data/resource'; +import { Authenticator, Button, Card } from '@aws-amplify/ui-react'; +import { useRouter } from 'next/router'; + +const client = generateClient({ authMode: 'userPool' }); +const { useAIConversation } = createAIHooks(client); + +Amplify.configure(outputs); + +const onMessage = (message) => { + console.log('onmessage', message); +}; + +function Chat({ id }: { id?: string }) { + const [ + { + data: { messages }, + isLoading, + }, + sendMessage, + ] = useAIConversation('pirateChat', { + id, + onMessage, + }); + + return ( + + ); +} + +export default function Example() { + const router = useRouter(); + const [shown, setShown] = React.useState(true); + + if (router.query.id) { + return ( + + + {shown ? ( + + + + ) : null} + + ); + } +} diff --git a/examples/next/pages/ui/components/ai/ai-conversation/index.page.tsx b/examples/next/pages/ui/components/ai/ai-conversation/index.page.tsx index f38dc13f63a..6c030e3617f 100644 --- a/examples/next/pages/ui/components/ai/ai-conversation/index.page.tsx +++ b/examples/next/pages/ui/components/ai/ai-conversation/index.page.tsx @@ -1,3 +1,4 @@ +import * as React from 'react'; import { Amplify } from 'aws-amplify'; import { createAIHooks, AIConversation } from '@aws-amplify/ui-react-ai'; import { generateClient } from 'aws-amplify/api'; @@ -5,20 +6,21 @@ import '@aws-amplify/ui-react/styles.css'; import outputs from './amplify_outputs'; import type { Schema } from '@environments/ai/gen2/amplify/data/resource'; -import { Authenticator, Card } from '@aws-amplify/ui-react'; +import { + Authenticator, + Button, + Card, + Flex, + Heading, + View, +} from '@aws-amplify/ui-react'; +import { useRouter } from 'next/router'; const client = generateClient({ authMode: 'userPool' }); const { useAIConversation } = createAIHooks(client); Amplify.configure(outputs); -const formatDate = (date: Date): string => - `Argh the time be round ${date.toLocaleTimeString('en-US', { - hour: 'numeric', - minute: 'numeric', - hour12: true, - })}`; - function Chat() { const [ { @@ -26,38 +28,81 @@ function Chat() { isLoading, }, sendMessage, - ] = useAIConversation('pirateChat'); + ] = useAIConversation('pirateChat', { onMessage, onInitialize }); + + return ( + + ); +} + +const onInitialize = (conversation) => { + console.log(conversation); +}; + +const onMessage = (conversation) => { + console.log('on message'); + console.log(conversation); +}; + +function SyncedChats() { + const [ + { + data: { messages }, + isLoading, + }, + handleSendMessage, + ] = useAIConversation('pirateChat', { onInitialize, onMessage }); + + const props = { + isLoading, + handleSendMessage, + messages, + }; return ( - - - + + + + + + + + ); } export default function Example() { + const router = useRouter(); + const handleCreateChat = async () => { + const { data } = await client.conversations.pirateChat.create(); + if (data.id) { + router.push(`/ui/components/ai/ai-conversation/${data.id}`); + } + }; return ( - {({ user, signOut }) => { - return ; - }} + + + Separate chats + + + + + + + + + + + Synced chats + + + + ); } diff --git a/examples/next/pages/ui/components/ai/ai-conversation/new.page.tsx b/examples/next/pages/ui/components/ai/ai-conversation/new.page.tsx new file mode 100644 index 00000000000..1fd5b20301c --- /dev/null +++ b/examples/next/pages/ui/components/ai/ai-conversation/new.page.tsx @@ -0,0 +1,51 @@ +import * as React from 'react'; +import { Amplify } from 'aws-amplify'; +import { createAIHooks, AIConversation } from '@aws-amplify/ui-react-ai'; +import { generateClient } from 'aws-amplify/api'; +import '@aws-amplify/ui-react/styles.css'; + +import outputs from './amplify_outputs'; +import type { Schema } from '@environments/ai/gen2/amplify/data/resource'; +import { Authenticator, Card, Flex } from '@aws-amplify/ui-react'; +import { useRouter } from 'next/router'; + +const client = generateClient({ authMode: 'userPool' }); +const { useAIConversation } = createAIHooks(client); + +Amplify.configure(outputs); + +function Chat() { + const router = useRouter(); + + const [ + { + data: { messages }, + isLoading, + }, + sendMessage, + ] = useAIConversation('pirateChat', { + onInitialize(conversation) { + router.replace(`/ui/components/ai/ai-conversation/${conversation.id}`); + }, + }); + + return ( + + ); +} + +export default function Example() { + return ( + + + + + + + + ); +} diff --git a/examples/next/pages/ui/components/ai/use-ai-conversation/index.page.tsx b/examples/next/pages/ui/components/ai/use-ai-conversation/index.page.tsx index b95e850ad36..6abb4f5f580 100644 --- a/examples/next/pages/ui/components/ai/use-ai-conversation/index.page.tsx +++ b/examples/next/pages/ui/components/ai/use-ai-conversation/index.page.tsx @@ -1,8 +1,8 @@ +import React from 'react'; import { Amplify } from 'aws-amplify'; -import { Authenticator } from '@aws-amplify/ui-react'; import { generateClient } from 'aws-amplify/data'; -import React from 'react'; -import { AIContextProvider, createAIHooks } from '@aws-amplify/ui-react-ai'; +import { Authenticator } from '@aws-amplify/ui-react'; +import { createAIHooks } from '@aws-amplify/ui-react-ai'; import outputs from './amplify_outputs.js'; import type { Schema } from '@environments/ai/gen2/amplify/data/resource'; @@ -13,14 +13,6 @@ const { useAIConversation } = createAIHooks(client); Amplify.configure(outputs); export default function App() { - return ( - - - - ); -} - -export function MyConversation() { const [ { data: { messages }, diff --git a/package.json b/package.json index 267817ccbd4..3c1a4c9db4e 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "ws": "^8.17.1" }, "devDependencies": { - "@aws-amplify/backend": "^1.2.1", + "@aws-amplify/backend": "^1.7.0", "@aws-amplify/eslint-config-amplify-ui": "0.0.0", "@aws-amplify/typescript-config": "0.0.0", "@changesets/changelog-github": "0.4.1", diff --git a/packages/react-ai/jest.config.ts b/packages/react-ai/jest.config.ts index 2c3a8a93239..02ef2da2db1 100644 --- a/packages/react-ai/jest.config.ts +++ b/packages/react-ai/jest.config.ts @@ -14,8 +14,8 @@ const config: Config = { coverageThreshold: { global: { branches: 68, - functions: 79, - lines: 88, + functions: 78, + lines: 87, statements: 87, }, }, diff --git a/packages/react-ai/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/react-ai/src/__tests__/__snapshots__/exports.test.ts.snap index ff0757eb2b2..56dcb4b5558 100644 --- a/packages/react-ai/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/react-ai/src/__tests__/__snapshots__/exports.test.ts.snap @@ -2,7 +2,6 @@ exports[`@aws-amplify/ui-react-ai exports should match snapshot 1`] = ` [ - "AIContextProvider", "AIConversation", "createAIConversation", "createAIHooks", diff --git a/packages/react-ai/src/components/AIConversation/AIConversation.tsx b/packages/react-ai/src/components/AIConversation/AIConversation.tsx index 2efcad89a64..1637e143d29 100644 --- a/packages/react-ai/src/components/AIConversation/AIConversation.tsx +++ b/packages/react-ai/src/components/AIConversation/AIConversation.tsx @@ -41,11 +41,11 @@ function AIConversationBase({ const defaultAvatars: Avatars = { ai: { username: 'Assistant', - avatar: icons?.assistant ?? , + avatar: icons?.assistant ?? , }, user: { username: 'User', - avatar: icons?.user ?? , + avatar: icons?.user ?? , }, }; @@ -68,7 +68,10 @@ function AIConversationBase({ return ( - + diff --git a/packages/react-ai/src/components/AIConversation/AIConversationProvider.tsx b/packages/react-ai/src/components/AIConversation/AIConversationProvider.tsx index 9126634e061..49d2db93e73 100644 --- a/packages/react-ai/src/components/AIConversation/AIConversationProvider.tsx +++ b/packages/react-ai/src/components/AIConversation/AIConversationProvider.tsx @@ -39,12 +39,12 @@ export const AIConversationProvider = ({ handleSendMessage, isLoading, messages, + messageRenderer, responseComponents, suggestedPrompts, variant, welcomeMessage, FallbackResponseComponent, - messageRenderer, }: AIConversationProviderProps): React.JSX.Element => { const _displayText = { ...defaultAIConversationDisplayTextEn, diff --git a/packages/react-ai/src/components/AIConversation/__tests__/AIConversation.test.tsx b/packages/react-ai/src/components/AIConversation/__tests__/AIConversation.test.tsx new file mode 100644 index 00000000000..2816f9ef8fa --- /dev/null +++ b/packages/react-ai/src/components/AIConversation/__tests__/AIConversation.test.tsx @@ -0,0 +1,87 @@ +import * as React from 'react'; +import { render, screen } from '@testing-library/react'; +import { AIConversation } from '../AIConversation'; +import { AIConversationProps } from '../types'; + +Element.prototype.scrollTo = jest.fn(); + +describe('AIConversation', () => { + const defaultProps: AIConversationProps = { + handleSendMessage: jest.fn(), + messages: [ + { + role: 'user', + content: [{ text: 'hello' }], + conversationId: '123', + id: '123', + createdAt: new Date().toISOString(), + }, + { + role: 'assistant', + content: [{ text: 'hello' }], + conversationId: 'XXX', + id: '123', + createdAt: new Date().toISOString(), + }, + ], + }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('renders with default props', () => { + render(); + expect(screen.getByTestId('ai-conversation')).toBeInTheDocument(); + }); + + it('renders with custom avatars', () => { + const customAvatars = { + ai: { + username: 'Custom AI', + avatar:
AI
, + }, + user: { + username: 'Custom User', + avatar:
User
, + }, + }; + + render(); + + expect(screen.getByTestId('custom-ai-avatar')).toBeInTheDocument(); + expect(screen.getByTestId('custom-user-avatar')).toBeInTheDocument(); + }); + + it('renders with default avatars when not provided', () => { + render(); + + // Verify default icons are rendered + expect(screen.getByTestId('icon-assistant')).toBeInTheDocument(); + expect(screen.getByTestId('icon-user')).toBeInTheDocument(); + }); + + it('renders with custom controls', () => { + const CustomMessageList = () => ( +
Custom Messages
+ ); + const CustomForm = () =>
Custom Form
; + + const customControls = { + MessageList: CustomMessageList, + Form: CustomForm, + }; + + render(); + + expect(screen.getByTestId('custom-message-list')).toBeInTheDocument(); + expect(screen.getByTestId('custom-form')).toBeInTheDocument(); + }); + + it('exports required subcomponents', () => { + expect(AIConversation.Provider).toBeDefined(); + expect(AIConversation.DefaultMessage).toBeDefined(); + expect(AIConversation.Messages).toBeDefined(); + expect(AIConversation.Form).toBeDefined(); + }); +}); diff --git a/packages/react-ai/src/components/AIConversation/context/ResponseComponentsContext.tsx b/packages/react-ai/src/components/AIConversation/context/ResponseComponentsContext.tsx index 0038d310fa0..9df54c48555 100644 --- a/packages/react-ai/src/components/AIConversation/context/ResponseComponentsContext.tsx +++ b/packages/react-ai/src/components/AIConversation/context/ResponseComponentsContext.tsx @@ -1,6 +1,5 @@ import React from 'react'; -import { ResponseComponents } from '../types'; -import { ToolConfiguration } from '../../../types'; +import { ToolConfiguration, ResponseComponents } from '../../../types'; type ResponseComponentsContextProps = ResponseComponents | undefined; @@ -9,7 +8,9 @@ export const RESPONSE_COMPONENT_PREFIX = 'AMPLIFY_UI_'; export const ResponseComponentsContext = React.createContext(undefined); -const prependResponseComponents = (responseComponents?: ResponseComponents) => { +export const prependResponseComponents = ( + responseComponents?: ResponseComponents +): ResponseComponents | undefined => { if (!responseComponents) return responseComponents; return Object.keys(responseComponents).reduce( (prev, key) => ( diff --git a/packages/react-ai/src/components/AIConversation/index.ts b/packages/react-ai/src/components/AIConversation/index.ts index 5606f5e807b..67e4fe7786c 100644 --- a/packages/react-ai/src/components/AIConversation/index.ts +++ b/packages/react-ai/src/components/AIConversation/index.ts @@ -1,11 +1,8 @@ import { createAIConversation } from './createAIConversation'; import { AIConversation } from './AIConversation'; -import { - Avatars, - CustomAction, - ResponseComponent, - SuggestedPrompt, -} from './types'; +import { Avatars, CustomAction, SuggestedPrompt } from './types'; + +import { ResponseComponent } from '../../types'; export { createAIConversation, diff --git a/packages/react-ai/src/components/AIConversation/types.ts b/packages/react-ai/src/components/AIConversation/types.ts index 974ee57a429..be53364b81c 100644 --- a/packages/react-ai/src/components/AIConversation/types.ts +++ b/packages/react-ai/src/components/AIConversation/types.ts @@ -12,9 +12,10 @@ import { DisplayTextTemplate } from '@aws-amplify/ui'; import { AIConversationDisplayText } from './displayText'; import { ConversationMessage, - ImageContentBlock, SendMessage, + ResponseComponents, TextContentBlock, + ImageContentBlock, } from '../../types'; import { ControlsContextProps } from './context/ControlsContext'; import { AIConversationProviderProps } from './AIConversationProvider'; @@ -84,34 +85,3 @@ export interface SuggestedPrompt { component?: React.ReactNode; inputText: string; } - -type JSONType = - | 'string' - | 'number' - | 'integer' - | 'boolean' - | 'object' - | 'array' - | 'null' - | 'any'; - -interface ResponseComponentProp { - type: JSONType; - enum?: string[]; - description?: string; - required?: boolean; -} - -interface ResponseComponentPropMap { - [key: string]: ResponseComponentProp; -} - -export interface ResponseComponent { - component: React.ComponentType; - description?: string; - props: ResponseComponentPropMap; -} - -export interface ResponseComponents { - [key: string]: ResponseComponent; -} diff --git a/packages/react-ai/src/components/AIConversation/views/default/MessageList.tsx b/packages/react-ai/src/components/AIConversation/views/default/MessageList.tsx index c3e5257b6c8..6683fa0ba35 100644 --- a/packages/react-ai/src/components/AIConversation/views/default/MessageList.tsx +++ b/packages/react-ai/src/components/AIConversation/views/default/MessageList.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Avatar, Button, Text, View } from '@aws-amplify/ui-react'; +import { Avatar, Placeholder, Text, View, Button } from '@aws-amplify/ui-react'; import { MessageControl } from '../Controls/MessagesControl'; import { ActionsContext, @@ -18,6 +18,28 @@ import { } from '@aws-amplify/ui'; import { LoadingContext } from '../../context/LoadingContext'; +const PlaceholderMessage = ({ role }: { role: string }) => { + const variant = React.useContext(MessageVariantContext); + return ( + + + + + + + + + + + ); +}; + const MessageMeta = ({ message }: { message: ConversationMessage }) => { // need to pass this in as props in order for it to be overridable const avatars = React.useContext(AvatarsContext); @@ -37,35 +59,6 @@ const MessageMeta = ({ message }: { message: ConversationMessage }) => { ); }; -const LoadingMessage = () => { - const avatars = React.useContext(AvatarsContext); - const variant = React.useContext(MessageVariantContext); - const avatar = avatars?.ai; - - return ( - - - {avatar?.avatar} - - - - - {avatar?.username} - - - - - ); -}; - const MessageActions = ({ message }: { message: ConversationMessage }) => { const actions = React.useContext(ActionsContext); if (!actions) return null; @@ -92,6 +85,7 @@ const MessageActions = ({ message }: { message: ConversationMessage }) => { const Message = ({ message }: { message: ConversationMessage }) => { const avatars = React.useContext(AvatarsContext); const variant = React.useContext(MessageVariantContext); + const { isLoading } = message; const avatar = message.role === 'assistant' ? avatars?.ai : avatars?.user; return ( @@ -107,7 +101,7 @@ const Message = ({ message }: { message: ConversationMessage }) => { )} > - {avatar?.avatar} + {avatar?.avatar} @@ -139,10 +133,15 @@ export const MessageList: Required['MessageList'] = ({ return ( + {isLoading ? ( + <> + + + + ) : null} {messagesWithRenderableContent.map((message, i) => ( ))} - {isLoading ? : null} ); }; diff --git a/packages/react-ai/src/hooks/AIContextProvider.tsx b/packages/react-ai/src/hooks/AIContextProvider.tsx deleted file mode 100644 index f20b52d71ad..00000000000 --- a/packages/react-ai/src/hooks/AIContextProvider.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; -import { ConversationMessage } from '../types'; - -type ConversationToMessages = Record; - -export type RouteToConversations = Record; - -interface ContextType { - routeToConversationsMap: RouteToConversations; - setRouteToConversationsMap: React.Dispatch< - React.SetStateAction - >; -} - -export const AIContext = React.createContext( - undefined -); - -export const useAIContext = (): ContextType => { - const context = React.useContext(AIContext); - const [routeToConversationsMap, setRouteToConversationsMap] = - React.useState({}); - - if (context) { - return context; - } - - return { routeToConversationsMap, setRouteToConversationsMap }; -}; - -/** - * @experimental - */ -export const AIContextProvider = ({ - children, -}: { - children: React.ReactNode; -}): React.ReactNode => { - const context = useAIContext(); - return {children}; -}; diff --git a/packages/react-ai/src/hooks/__tests__/contentFromEvent.test.ts b/packages/react-ai/src/hooks/__tests__/contentFromEvent.test.ts new file mode 100644 index 00000000000..a60b7e78a84 --- /dev/null +++ b/packages/react-ai/src/hooks/__tests__/contentFromEvent.test.ts @@ -0,0 +1,137 @@ +import { contentFromEvents } from '../contentFromEvents'; +import { ConversationStreamEvent } from '../../types'; + +describe('contentFromEvents', () => { + it('should return empty array when contentBlocks is undefined', () => { + const result = contentFromEvents(undefined); + expect(result).toEqual([]); + }); + + it('should combine text events into a single text block', () => { + const events: ConversationStreamEvent[][] = [ + [ + { + text: 'Hello', + id: '123', + conversationId: '123', + contentBlockIndex: 0, + contentBlockDeltaIndex: 0, + associatedUserMessageId: '123', + }, + { + text: ' ', + id: '123', + conversationId: '123', + contentBlockIndex: 0, + contentBlockDeltaIndex: 1, + associatedUserMessageId: '123', + }, + { + text: 'world', + id: '123', + conversationId: '123', + contentBlockIndex: 0, + contentBlockDeltaIndex: 2, + associatedUserMessageId: '123', + }, + ], + ]; + + const result = contentFromEvents(events); + expect(result).toEqual([{ text: 'Hello world' }]); + }); + + it('should handle multiple text blocks', () => { + const events: ConversationStreamEvent[][] = [ + [ + { + text: 'First block', + id: '123', + conversationId: '123', + contentBlockIndex: 0, + contentBlockDeltaIndex: 0, + associatedUserMessageId: '123', + }, + ], + [ + { + text: 'Second block', + id: '123', + conversationId: '123', + contentBlockIndex: 1, + contentBlockDeltaIndex: 0, + associatedUserMessageId: '123', + }, + ], + ]; + + const result = contentFromEvents(events); + expect(result).toEqual([{ text: 'First block' }, { text: 'Second block' }]); + }); + + it('should handle toolUse events', () => { + const toolUseEvent = { name: 'testTool', input: 'test', toolUseId: '1234' }; + const events: ConversationStreamEvent[][] = [ + [ + { + toolUse: toolUseEvent, + id: '123', + conversationId: '123', + contentBlockIndex: 0, + associatedUserMessageId: '123', + }, + ], + ]; + + const result = contentFromEvents(events); + expect(result).toEqual([{ toolUse: toolUseEvent }]); + }); + + it('should handle mixed text and toolUse blocks', () => { + const toolUseEvent = { name: 'testTool', input: 'test', toolUseId: '123' }; + const events: ConversationStreamEvent[][] = [ + [ + { + text: 'Before tool', + id: '123', + conversationId: '123', + contentBlockIndex: 0, + contentBlockDeltaIndex: 0, + associatedUserMessageId: '123', + }, + ], + [ + { + toolUse: toolUseEvent, + id: '123', + conversationId: '123', + contentBlockIndex: 1, + associatedUserMessageId: '123', + }, + ], + [ + { + text: 'After tool', + id: '123', + conversationId: '123', + contentBlockIndex: 2, + contentBlockDeltaIndex: 0, + associatedUserMessageId: '123', + }, + ], + ]; + + const result = contentFromEvents(events); + expect(result).toEqual([ + { text: 'Before tool' }, + { toolUse: toolUseEvent }, + { text: 'After tool' }, + ]); + }); + + it('should handle empty content blocks array', () => { + const events: ConversationStreamEvent[][] = []; + const result = contentFromEvents(events); + expect(result).toEqual([]); + }); +}); diff --git a/packages/react-ai/src/hooks/__tests__/createAIHooks.test.tsx b/packages/react-ai/src/hooks/__tests__/createAIHooks.test.tsx index 9ff19fae396..e54bb2e1e94 100644 --- a/packages/react-ai/src/hooks/__tests__/createAIHooks.test.tsx +++ b/packages/react-ai/src/hooks/__tests__/createAIHooks.test.tsx @@ -4,6 +4,7 @@ import { createAIHooks } from '../createAIHooks'; const listMessageMock = jest.fn().mockResolvedValue({ data: [] }); const sendMessageMock = jest.fn().mockResolvedValue({ data: {} }); const onMessageMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() }); +const onStreamEventMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() }); const generateRecipeMock = jest.fn(); const id = 'foobar'; @@ -14,6 +15,7 @@ const mockGet = jest.fn().mockImplementation(() => { listMessages: listMessageMock, sendMessage: sendMessageMock, onMessage: onMessageMock, + onStreamEvent: onStreamEventMock, }, }; }); @@ -48,98 +50,6 @@ describe('createAIHooks', () => { expect(useAIGeneration).toBeDefined(); }); - describe('useAIConversation', () => { - it('returns some messages and a sendMessage function', async () => { - const client = new mockClient(); - const { useAIConversation } = createAIHooks(client); - - expect(useAIConversation).toBeDefined(); - - const { result, waitForNextUpdate } = renderHook(() => - useAIConversation('pirateChat') - ); - await waitForNextUpdate(); - const [ - { - data: { messages }, - }, - sendMessage, - ] = result.current; - expect(messages).toHaveLength(1); - expect(sendMessage).toBeDefined(); - }); - - it('hook can send a message which updates state', async () => { - const client = new mockClient(); - const { useAIConversation } = createAIHooks(client); - - expect(useAIConversation).toBeDefined(); - - const { result, waitForNextUpdate } = renderHook(() => - useAIConversation('pirateChat') - ); - await waitForNextUpdate(); - const [_data, sendMessage] = result.current; - - sendMessage({ content: ['foobar'] as unknown as any }); - await waitForNextUpdate(); - expect(result.current[0].data.messages).toHaveLength(2); - expect(sendMessageMock).toHaveBeenCalled(); - }); - - it('hook can receive new messages from the conversation subscription', async () => { - const client = new mockClient(); - const { useAIConversation } = createAIHooks(client); - - expect(useAIConversation).toBeDefined(); - - const { result, waitForNextUpdate } = renderHook(() => - useAIConversation('pirateChat') - ); - await waitForNextUpdate(); - const [_data, sendMessage] = result.current; - - sendMessage({ content: ['foobar'] as unknown as any }); - await waitForNextUpdate(); - expect(result.current[0].data.messages).toHaveLength(2); - - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - const onMessageHandler = onMessageMock.mock.calls[0][0]; - act(() => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call - onMessageHandler({ content: [{ text: 'Pirate responding' }] }); - }); - expect(result.current[0].data.messages).toHaveLength(3); - }); - - it('hook can receive new messages and calls a custom onResponse function', async () => { - const client = new mockClient(); - const { useAIConversation } = createAIHooks(client); - - expect(useAIConversation).toBeDefined(); - - const onResponse = jest.fn(); - const { result, waitForNextUpdate } = renderHook(() => - useAIConversation('pirateChat', { onResponse }) - ); - await waitForNextUpdate(); - const [_data, sendMessage] = result.current; - - sendMessage({ content: ['foobar'] as unknown as any }); - await waitForNextUpdate(); - expect(result.current[0].data.messages).toHaveLength(2); - - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - const onMessageHandler = onMessageMock.mock.calls[0][0]; - act(() => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call - onMessageHandler({ content: [{ text: 'Pirate responding' }] }); - }); - expect(result.current[0].data.messages).toHaveLength(3); - expect(onResponse).toHaveBeenCalled(); - }); - }); - describe('useAIGeneration', () => { it('returns a result', async () => { const client = new mockClient(); diff --git a/packages/react-ai/src/hooks/__tests__/exhaustivelyListMessages.test.ts b/packages/react-ai/src/hooks/__tests__/exhaustivelyListMessages.test.ts new file mode 100644 index 00000000000..ee40b28c0ee --- /dev/null +++ b/packages/react-ai/src/hooks/__tests__/exhaustivelyListMessages.test.ts @@ -0,0 +1,136 @@ +import { exhaustivelyListMessages } from '../exhaustivelyListMessages'; +import { Conversation, ConversationMessage } from '../../types'; + +const mockConversation = { + listMessages: jest.fn(), +}; + +describe('exhaustivelyListMessages', () => { + beforeEach(() => { + mockConversation.listMessages.mockClear(); + }); + + it('should return all messages when there is no pagination', async () => { + const mockMessages: ConversationMessage[] = [ + { + id: '1', + content: [{ text: 'Hello' }], + conversationId: '1', + createdAt: new Date().toISOString(), + role: 'user', + }, + { + id: '2', + content: [{ text: 'World' }], + conversationId: '1', + createdAt: new Date().toISOString(), + role: 'assistant', + }, + ]; + + mockConversation.listMessages.mockResolvedValueOnce({ + data: mockMessages, + nextToken: undefined, + }); + + const result = await exhaustivelyListMessages({ + conversation: mockConversation as unknown as Conversation, + }); + + expect(result.data).toEqual(mockMessages); + expect(mockConversation.listMessages).toHaveBeenCalledTimes(1); + expect(mockConversation.listMessages).toHaveBeenCalledWith({ + nextToken: undefined, + }); + }); + + it('should handle pagination and return all messages', async () => { + const mockMessages1: ConversationMessage[] = [ + { + id: '1', + content: [{ text: 'Hello' }], + conversationId: '1', + createdAt: new Date().toISOString(), + role: 'user', + }, + { + id: '2', + content: [{ text: 'World' }], + conversationId: '1', + createdAt: new Date().toISOString(), + role: 'assistant', + }, + ]; + const mockMessages2: ConversationMessage[] = [ + { + id: '3', + content: [{ text: 'Goodbye' }], + conversationId: '1', + createdAt: new Date().toISOString(), + role: 'user', + }, + { + id: '4', + content: [{ text: 'Moon' }], + conversationId: '1', + createdAt: new Date().toISOString(), + role: 'assistant', + }, + ]; + + mockConversation.listMessages + .mockResolvedValueOnce({ + data: mockMessages1, + nextToken: 'token1', + }) + .mockResolvedValueOnce({ + data: mockMessages2, + nextToken: undefined, + }); + + const result = await exhaustivelyListMessages({ + conversation: mockConversation as unknown as Conversation, + }); + + expect(result.data).toEqual([...mockMessages1, ...mockMessages2]); + expect(mockConversation.listMessages).toHaveBeenCalledTimes(2); + expect(mockConversation.listMessages).toHaveBeenNthCalledWith(1, { + nextToken: undefined, + }); + expect(mockConversation.listMessages).toHaveBeenNthCalledWith(2, { + nextToken: 'token1', + }); + }); + + it('should handle empty response', async () => { + mockConversation.listMessages.mockResolvedValueOnce({ + data: [], + nextToken: undefined, + }); + + const result = await exhaustivelyListMessages({ + conversation: mockConversation as unknown as Conversation, + }); + + expect(result.data).toEqual([]); + expect(mockConversation.listMessages).toHaveBeenCalledTimes(1); + expect(mockConversation.listMessages).toHaveBeenCalledWith({ + nextToken: undefined, + }); + }); + + it('should handle errors gracefully', async () => { + const mockError = new Error('API Error'); + mockConversation.listMessages.mockRejectedValueOnce(mockError); + + await expect( + exhaustivelyListMessages({ + conversation: mockConversation as unknown as Conversation, + }) + ).rejects.toThrow('API Error'); + expect(mockConversation.listMessages).toHaveBeenCalledTimes(1); + expect(mockConversation.listMessages).toHaveBeenCalledWith({ + nextToken: undefined, + }); + }); +}); diff --git a/packages/react-ai/src/hooks/__tests__/useAIConversation.test.ts b/packages/react-ai/src/hooks/__tests__/useAIConversation.test.ts new file mode 100644 index 00000000000..f218cd8511e --- /dev/null +++ b/packages/react-ai/src/hooks/__tests__/useAIConversation.test.ts @@ -0,0 +1,140 @@ +import { act, renderHook } from '@testing-library/react-hooks'; +import { createAIHooks } from '../createAIHooks'; +import { ConversationStreamEvent } from '../../types'; + +let _next: any; + +const listMessageMock = jest.fn().mockResolvedValue({ data: [] }); +const sendMessageMock = jest.fn().mockResolvedValue({ data: {} }); +const onMessageMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() }); +const onStreamEventMock = jest + .fn() + .mockImplementation( + ({ next }: { next: (message: ConversationStreamEvent) => void }) => { + _next = next; + return { unsubscribe: jest.fn() }; + } + ); +// .mockReturnValue({ unsubscribe: jest.fn() }); +const generateRecipeMock = jest.fn(); +const id = 'foobar'; + +const mockGet = jest.fn().mockImplementation(() => { + return { + data: { + id: id, + listMessages: listMessageMock, + sendMessage: sendMessageMock, + onMessage: onMessageMock, + onStreamEvent: onStreamEventMock, + }, + }; +}); +const mockCreate = mockGet; +const mockClient = jest.fn().mockImplementation(() => { + return { + conversations: { + pirateChat: { + get: mockGet, + create: mockCreate, + }, + }, + generations: { + generateRecipe: generateRecipeMock, + }, + }; +}); + +describe('useAIConverstion', () => { + beforeEach(() => { + listMessageMock.mockResolvedValue({ + data: [{ content: [{ text: 'asdf' }] }], + }); + onMessageMock.mockReset(); + }); + + it('returns some messages and a sendMessage function', async () => { + const client = new mockClient(); + const { useAIConversation } = createAIHooks(client); + + expect(useAIConversation).toBeDefined(); + + const { result, waitForNextUpdate } = renderHook(() => + useAIConversation('pirateChat') + ); + await waitForNextUpdate(); + const [ + { + data: { messages }, + }, + sendMessage, + ] = result.current; + expect(messages).toHaveLength(0); + expect(sendMessage).toBeDefined(); + }); + + it('hook can send a message which updates state', async () => { + const client = new mockClient(); + const { useAIConversation } = createAIHooks(client); + + expect(useAIConversation).toBeDefined(); + + const { result, waitForNextUpdate } = renderHook(() => + useAIConversation('pirateChat') + ); + + await waitForNextUpdate(); + + const [_data, sendMessage] = result.current; + + act(() => { + sendMessage({ content: [{ text: '' }] }); + }); + + expect(result.current[0].data.messages).toHaveLength(2); + expect(sendMessageMock).toHaveBeenCalled(); + }); + + it('can call onInitialize', () => { + const client = new mockClient(); + const { useAIConversation } = createAIHooks(client); + + expect(useAIConversation).toBeDefined(); + + const { waitForNextUpdate } = renderHook(() => + useAIConversation('pirateChat', { + onInitialize: (conversation) => { + expect(conversation).toBeDefined(); + }, + }) + ); + + waitForNextUpdate(); + }); + + it('should fire onMessage', async () => { + const client = new mockClient(); + const { useAIConversation } = createAIHooks(client); + const onMessage = jest.fn(); + const { result, waitForNextUpdate } = renderHook(() => + useAIConversation('pirateChat', { onMessage }) + ); + + await waitForNextUpdate(); + + const [_data] = result.current; + + act(() => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + _next({ + stopReason: 'end_turn', + conversationId: 'XXX', + id: '123', + contentBlockIndex: 0, + associatedUserMessageId: 'XXX', + }); + }); + + expect(onMessage).toHaveBeenCalled(); + }); +}); diff --git a/packages/react-ai/src/hooks/__tests__/useAIGeneration.test.tsx b/packages/react-ai/src/hooks/__tests__/useAIGeneration.test.tsx new file mode 100644 index 00000000000..5e29cff4907 --- /dev/null +++ b/packages/react-ai/src/hooks/__tests__/useAIGeneration.test.tsx @@ -0,0 +1,134 @@ +import { renderHook, act } from '@testing-library/react-hooks'; +import { createUseAIGeneration } from '../useAIGeneration'; +import { INITIAL_STATE, LOADING_STATE, ERROR_STATE } from '../shared'; + +describe('useAIGeneration', () => { + const mockClient = { + generations: { + testRoute: jest.fn(), + }, + conversations: {}, + }; + + const useAIGeneration = createUseAIGeneration(mockClient); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should return initial state', () => { + const { result } = renderHook(() => useAIGeneration('testRoute')); + + expect(result.current[0]).toEqual({ + ...INITIAL_STATE, + data: undefined, + }); + }); + + it('should handle successful generation', async () => { + const mockData = { text: 'generated content' }; + mockClient.generations.testRoute.mockResolvedValueOnce({ data: mockData }); + + const { result, waitForNextUpdate } = renderHook(() => + useAIGeneration('testRoute') + ); + + act(() => { + result.current[1]({ prompt: 'test prompt' }); + }); + + await waitForNextUpdate(); + + expect(mockClient.generations.testRoute).toHaveBeenCalledWith({ + prompt: 'test prompt', + }); + expect(result.current[0]).toEqual({ + ...INITIAL_STATE, + data: mockData, + }); + }); + + it('should handle loading state', () => { + const mockData = { text: 'generated content' }; + mockClient.generations.testRoute.mockImplementation( + () => + new Promise((resolve) => + setTimeout(() => resolve({ data: mockData }), 1000) + ) + ); + + const { result } = renderHook(() => useAIGeneration('testRoute')); + + act(() => { + result.current[1]({ prompt: 'test prompt' }); + }); + + expect(result.current[0]).toEqual({ + ...LOADING_STATE, + data: undefined, + }); + }); + + it('should handle error state', async () => { + const errors = ['Error message']; + mockClient.generations.testRoute.mockResolvedValueOnce({ + data: undefined, + errors, + }); + + const { result, waitForNextUpdate } = renderHook(() => + useAIGeneration('testRoute') + ); + + act(() => { + result.current[1]({ prompt: 'test prompt' }); + }); + + await waitForNextUpdate(); + + expect(mockClient.generations.testRoute).toHaveBeenCalledWith({ + prompt: 'test prompt', + }); + + expect(result.current[0]).toEqual({ + ...ERROR_STATE, + data: undefined, + messages: errors, + }); + }); + + it('should preserve previous data while loading', async () => { + const initialData = { text: 'initial content' }; + const newData = { text: 'new content' }; + + mockClient.generations.testRoute.mockResolvedValueOnce({ + data: initialData, + }); + + const { result, waitForNextUpdate } = renderHook(() => + useAIGeneration('testRoute') + ); + + act(() => { + result.current[1]({ prompt: 'first prompt' }); + }); + + await waitForNextUpdate(); + + mockClient.generations.testRoute.mockImplementation( + () => + new Promise((resolve) => + setTimeout(() => resolve({ data: newData }), 100) + ) + ); + + act(() => { + result.current[1]({ prompt: 'second prompt' }); + }); + + expect(result.current[0]).toEqual({ + ...LOADING_STATE, + data: initialData, + }); + }); +}); diff --git a/packages/react-ai/src/hooks/contentFromEvents.ts b/packages/react-ai/src/hooks/contentFromEvents.ts new file mode 100644 index 00000000000..b1b34c4862f --- /dev/null +++ b/packages/react-ai/src/hooks/contentFromEvents.ts @@ -0,0 +1,23 @@ +import { ConversationMessage, ConversationStreamEvent } from '../types'; + +export const contentFromEvents = ( + contentBlocks?: ConversationStreamEvent[][] +): ConversationMessage['content'] => { + if (!contentBlocks) return []; + return contentBlocks.map((contentBlock) => { + const isTextBlock = contentBlock.some((event) => event.text); + if (isTextBlock) { + return { + text: contentBlock + .map((event) => { + return event.text; + }) + .join(''), + }; + } + // tool use is never chunked + if (contentBlock[0].toolUse) { + return { toolUse: contentBlock[0].toolUse }; + } + }) as ConversationMessage['content']; +}; diff --git a/packages/react-ai/src/hooks/exhaustivelyListMessages.ts b/packages/react-ai/src/hooks/exhaustivelyListMessages.ts new file mode 100644 index 00000000000..7a28814faa8 --- /dev/null +++ b/packages/react-ai/src/hooks/exhaustivelyListMessages.ts @@ -0,0 +1,29 @@ +import { Conversation, ConversationMessage } from '../types'; + +interface ExhaustivelyListMessagesParams { + conversation: Conversation; + messages?: ConversationMessage[]; + nextToken?: string; +} + +export async function exhaustivelyListMessages({ + conversation, + messages = [], + nextToken, +}: ExhaustivelyListMessagesParams): ReturnType { + const result = await conversation.listMessages({ nextToken }); + if (result.data) { + messages?.push(...result.data); + } + if (result.nextToken) { + return exhaustivelyListMessages({ + conversation, + messages, + nextToken: result.nextToken, + }); + } + return { + ...result, + data: messages, + }; +} diff --git a/packages/react-ai/src/hooks/index.ts b/packages/react-ai/src/hooks/index.ts index 7ae8430b23e..be3b02c7e8b 100644 --- a/packages/react-ai/src/hooks/index.ts +++ b/packages/react-ai/src/hooks/index.ts @@ -1,3 +1,2 @@ -import { AIContextProvider, AIContext } from './AIContextProvider'; import { createAIHooks } from './createAIHooks'; -export { AIContextProvider, AIContext, createAIHooks }; +export { createAIHooks }; diff --git a/packages/react-ai/src/hooks/shared.ts b/packages/react-ai/src/hooks/shared.ts new file mode 100644 index 00000000000..9a42b5031f7 --- /dev/null +++ b/packages/react-ai/src/hooks/shared.ts @@ -0,0 +1,24 @@ +import { DataState } from '@aws-amplify/ui-react-core'; +import { GraphQLFormattedError } from '../types'; + +export type DataClientState = Omit, 'message'> & { + messages?: GraphQLFormattedError[]; +}; + +export type DataClientResponse = { + data: T | null; + errors?: GraphQLFormattedError[]; +}; + +// default state +export const INITIAL_STATE = { + hasError: false, + isLoading: false, + messages: undefined, +}; +export const LOADING_STATE = { + hasError: false, + isLoading: true, + messages: undefined, +}; +export const ERROR_STATE = { hasError: true, isLoading: false }; diff --git a/packages/react-ai/src/hooks/useAIConversation.tsx b/packages/react-ai/src/hooks/useAIConversation.tsx index b68329d7750..6c44723bb68 100644 --- a/packages/react-ai/src/hooks/useAIConversation.tsx +++ b/packages/react-ai/src/hooks/useAIConversation.tsx @@ -1,196 +1,336 @@ import React from 'react'; -import { DataState } from '@aws-amplify/ui-react-core'; -import { RouteToConversations, useAIContext } from './AIContextProvider'; import { Conversation, ConversationMessage, ConversationRoute, + ConversationStreamEvent, SendMesageParameters, SendMessage, } from '../types'; - -function createNewConversationMessageInRoute({ - previousValue, - routeName, - conversationId, - messages, -}: { - previousValue: RouteToConversations; - routeName: string; - conversationId: string; - messages: ConversationMessage[]; -}) { - return { - ...previousValue, - [routeName]: { - ...previousValue[routeName], - [conversationId]: messages, - }, - }; -} +import { + ERROR_STATE, + INITIAL_STATE, + LOADING_STATE, + DataClientState, +} from './shared'; +import { isFunction } from '@aws-amplify/ui'; +import { contentFromEvents } from './contentFromEvents'; +import { exhaustivelyListMessages } from './exhaustivelyListMessages'; interface UseAIConversationInput { id?: string; // should attempt to create a new session id if none is passed - onResponse?: (message: ConversationMessage) => void; + onMessage?: (message: ConversationMessage) => void; + // This will return the conversation instance after it has been + // either created or gotten (if id was provided). + // This is to allow users to do things like update the + // URL of the page with the conversation ID so if they + // refresh the page they can continue the conversation + onInitialize?: (conversation: Conversation) => void; } interface AIConversationState { messages: ConversationMessage[]; + conversation?: Conversation; } export type UseAIConversationHook = ( routeName: T, input?: UseAIConversationInput -) => [DataState, SendMessage]; +) => [DataClientState, SendMessage]; export function createUseAIConversation< T extends Record<'conversations', Record>, >(client: T): UseAIConversationHook> { + // This is a bit complicated so buckle up. + // The way the data client works is conversation.get() or conversation.create() + // is an async function because it makes a graphql call to appsync + // then it returns a conversation object, which is like a normal + // data client record, except that it also has functions on it, + // like sendMessage and onStreamEvent. onStreamEvent sets up a + // subscription using a websocket connection, which ideally we only want to + // do once per conversation. Because we can only subscribe AFTER the + // async call to get/create the conversation is made, the cleanup + // function in the effect will won't actually unsubscribe + const useAIConversation: UseAIConversationHook< Extract > = (routeName: keyof T['conversations'], input = {}) => { const clientRoute = (client.conversations as T['conversations'])[routeName]; - const { routeToConversationsMap, setRouteToConversationsMap } = - useAIContext(); - const messagesFromAIContext = input.id - ? routeToConversationsMap[routeName as string]?.[input.id] - : undefined; - const [localMessages, setLocalMessages] = React.useState< - ConversationMessage[] - >(messagesFromAIContext ?? []); - const [conversation, setConversation] = React.useState< - Conversation | undefined - >(undefined); - const [waitingForAIResponse, setWaitingForAIResponse] = - React.useState(false); - const [errorMessage, setErrorMessage] = React.useState< - string | undefined - >(); - const [hasError, setHasError] = React.useState(false); - - // On hook initialization get conversation and load all messages + // We need to keep track of the stream events as the come in + // for an assistant message, but don't need to keep them in state + const contentBlocksRef = React.useRef(); + // Using this hook without an existing conversation id means + // it will create a new conversation when it is executed + // we don't want to create 2 conversations + const initRef = React.useRef(false); + + const [dataState, setDataState] = React.useState< + DataClientState + >(() => ({ + ...INITIAL_STATE, + data: { messages: [], conversation: undefined }, + })); + + const { conversation } = dataState.data; + const { id, onInitialize, onMessage } = input; + React.useEffect(() => { + // We don't want to run the effect multiple times + // because that could create multiple conversation records + if (initRef.current) return; + initRef.current = true; async function initialize() { - const { data: conversation } = input.id - ? await clientRoute.get({ id: input.id }) - : await clientRoute.create(); + // no client route would mean that the user + // is not using TypeScript and entered the + // route name wrong, or there is a mismatch + // between the gen2 schema definition and + // whats in amplify_outputs + if (!clientRoute) { + setDataState({ + ...ERROR_STATE, + data: { messages: [] }, + messages: [ + { + message: 'Conversation route does not exist', + errorInfo: null, + errorType: '', + }, + ], + }); + return; + } - if (!conversation) { - const errorString = 'No conversation found'; - setHasError(true); - setErrorMessage(errorString); - throw new Error(errorString); + // Only show component loading state if we are + // actually loading messages + if (id) { + setDataState({ + ...LOADING_STATE, + data: { messages: [], conversation: undefined }, + }); } - const { data: messages } = await conversation.listMessages(); + const { data: conversation, errors } = id + ? await clientRoute.get({ id }) + : await clientRoute.create(); - setLocalMessages(messages); - setConversation(conversation); - setRouteToConversationsMap((previousValue) => { - return createNewConversationMessageInRoute({ - previousValue, - routeName: routeName as string, - conversationId: conversation.id, - messages, + if (errors ?? !conversation) { + setDataState({ + ...ERROR_STATE, + data: { messages: [] }, + messages: errors, }); - }); + } else { + if (id) { + const { data: messages } = await exhaustivelyListMessages({ + conversation, + }); + setDataState({ + ...INITIAL_STATE, + data: { messages, conversation }, + }); + } else { + setDataState({ + ...INITIAL_STATE, + data: { conversation, messages: [] }, + }); + } + } } initialize(); - }, [clientRoute, input.id, routeName, setRouteToConversationsMap]); - // Update messages to match what is in AIContext if they aren't equal + return () => { + contentBlocksRef.current = undefined; + setDataState({ + ...INITIAL_STATE, + data: { messages: [], conversation: undefined }, + }); + }; + }, [clientRoute, id, setDataState]); + + // Run a separate effect that is triggered by the conversation state + // so that we know we have a conversation object to set up the subscription + // and also unsubscribe on cleanup React.useEffect(() => { - if (!!messagesFromAIContext && messagesFromAIContext !== localMessages) - setLocalMessages(messagesFromAIContext); - }, [messagesFromAIContext, localMessages]); + if (!conversation) return; - const sendMessage = React.useCallback( - (input: SendMesageParameters) => { - const { content, aiContext, toolConfiguration } = input; - conversation - ?.sendMessage({ content, aiContext, toolConfiguration }) - .then((value) => { - const { data: sentMessage } = value; - - if (sentMessage) { - setWaitingForAIResponse(true); - setLocalMessages((previousLocalMessages) => [ - ...previousLocalMessages, - sentMessage, - ]); - setRouteToConversationsMap((previousValue) => { - return createNewConversationMessageInRoute({ - previousValue, - routeName: routeName as string, - conversationId: conversation.id, - messages: [ - ...previousValue[routeName as string][conversation.id], - sentMessage, - ], - }); - }); - } - }) - .catch((reason) => { - setHasError(true); - setErrorMessage(`error sending message ${reason}`); - }); - }, - [conversation, routeName, setRouteToConversationsMap] - ); + const subscription = conversation.onStreamEvent({ + next: (event) => { + const { + // messages have a content block array, + // this is the index of the content block that was updated + contentBlockIndex, + // this is the index of the content chunk, ensure these are in order! + contentBlockDeltaIndex, + // this is sent after the last content chunk, verify this matches the + // previous contentBlockDeltaIndex + contentBlockDoneAtIndex, + // this is the text of the content block + text, + // this is a toolUse block, will always come in a single event + // toolUse, + // this is the final event of the conversation turn + stopReason, + conversationId, + // associatedUserMessageId, + id, + } = event; + + // return early for content blocks being done + // or conversation turn being over + if (contentBlockDoneAtIndex) { + return; + } - const subscribe = React.useCallback( - (handleStoreChange: () => void) => { - const subscription = - conversation && - conversation.onMessage((message) => { - if (input.onResponse) input.onResponse(message); - setWaitingForAIResponse(false); - setLocalMessages((previousLocalMessages) => [ - ...previousLocalMessages, - message, - ]); - setRouteToConversationsMap((previousValue) => { - return createNewConversationMessageInRoute({ - previousValue, - routeName: routeName as string, - conversationId: conversation.id, - messages: [ - ...previousValue[routeName as string][conversation.id], - message, - ], - }); + // stop reason will signify end of conversation turn + if (stopReason) { + // remove loading state from streamed message + setDataState((prev) => { + return { + ...prev, + data: { + ...prev.data, + messages: prev.data.messages.map((message) => ({ + ...message, + isLoading: false, + })), + }, + }; + }); + onMessage?.({ + id, + conversationId, + content: contentFromEvents(contentBlocksRef.current), + createdAt: new Date().toISOString(), + role: 'assistant', + isLoading: true, }); - handleStoreChange(); // should cause a re-render + // clear out the stream cache + contentBlocksRef.current = undefined; + return; + } + + // no ref means its the first event for the message stream + if (!contentBlocksRef.current) { + contentBlocksRef.current = [[event]]; + + setDataState((prev) => { + const message: ConversationMessage = { + id, + conversationId, + // TODO: use better logic here + content: [{ text: text ?? '' }], + createdAt: new Date().toISOString(), + role: 'assistant', + isLoading: true, + }; + return { + ...prev, + data: { + ...prev.data, + messages: [...prev.data.messages.slice(0, -1), message], + }, + }; + }); + return; + } + + // place the incoming event in the right content block + // and order. message content is an array so a single message + // can have multiple content blocks, and each content block + // can have multiple events/chunks + const currentBlock = contentBlocksRef.current[contentBlockIndex]; + if (!currentBlock) { + contentBlocksRef.current[contentBlockIndex] = [event]; + } else { + contentBlocksRef.current[contentBlockIndex] = [ + ...currentBlock.slice(0, contentBlockDeltaIndex), + event, + ...currentBlock.slice(contentBlockDeltaIndex), + ]; + } + + setDataState((prev) => { + const message: ConversationMessage = { + id, + conversationId, + content: contentFromEvents(contentBlocksRef.current), + createdAt: new Date().toISOString(), + role: 'assistant', + isLoading: true, + }; + return { + ...prev, + data: { + ...prev.data, + // TODO: we are assuming we only update the last + // message, but maybe we should match it by message ID? + messages: [...prev.data.messages.slice(0, -1), message], + }, + }; }); - return () => { - subscription?.unsubscribe(); - }; - }, - [conversation, routeName, setRouteToConversationsMap, input] - ); + }, + error: (error) => { + error.errors.map((e) => { + return e.message; + }); + setDataState((prev) => { + return { + ...prev, + ...ERROR_STATE, + messages: error.errors, + }; + }); + }, + }); + + if (isFunction(onInitialize)) { + onInitialize(conversation); + } - const getSnapshot = React.useCallback(() => localMessages, [localMessages]); + return () => { + contentBlocksRef.current = undefined; + subscription.unsubscribe(); + }; + }, [conversation, onInitialize, onMessage, setDataState]); - // Using useSyncExternalStore to subscribe to external data updates - // Have to provide third optional argument in next - https://github.com/vercel/next.js/issues/54685 - const messagesFromStore = React.useSyncExternalStore( - subscribe, - getSnapshot, - getSnapshot + const handleSendMessage = React.useCallback( + (input: SendMesageParameters) => { + const { content } = input; + if (conversation) { + setDataState((prevState) => ({ + ...prevState, + data: { + ...prevState.data, + // optimistically add user and assistant messages + messages: [ + ...prevState.data.messages, + { + content, + role: 'user', + createdAt: new Date().toISOString(), + id: 'temp-id', + conversationId: conversation.id ?? '', + }, + { + content: [{ text: ' ' }], + role: 'assistant', + createdAt: new Date().toISOString(), + id: 'temp-id-2', + conversationId: conversation.id ?? '', + isLoading: true, + }, + ], + }, + })); + conversation.sendMessage(input); + } + }, + [conversation] ); - return [ - { - data: { messages: messagesFromStore }, - isLoading: waitingForAIResponse, - message: errorMessage, - hasError, - }, - sendMessage, - ]; + return [dataState, handleSendMessage]; }; return useAIConversation; diff --git a/packages/react-ai/src/hooks/useAIGeneration.tsx b/packages/react-ai/src/hooks/useAIGeneration.tsx index e5c5981ce88..db9b9cde38a 100644 --- a/packages/react-ai/src/hooks/useAIGeneration.tsx +++ b/packages/react-ai/src/hooks/useAIGeneration.tsx @@ -1,7 +1,13 @@ import * as React from 'react'; -import { DataState } from '@aws-amplify/ui-react-core'; import { V6Client } from '@aws-amplify/api-graphql'; import { getSchema } from '../types'; +import { + DataClientResponse, + DataClientState, + ERROR_STATE, + INITIAL_STATE, + LOADING_STATE, +} from './shared'; export interface UseAIGenerationHookWrapper< Key extends keyof AIGenerationClient['generations'], @@ -10,7 +16,7 @@ export interface UseAIGenerationHookWrapper< useAIGeneration: ( routeName: U ) => [ - Awaited>, + Awaited>, (input: Schema[U]['args']) => void, ]; } @@ -21,7 +27,7 @@ export type UseAIGenerationHook< > = ( routeName: Key ) => [ - Awaited>, + Awaited>, (input: Schema[Key]['args']) => void, ]; @@ -30,32 +36,6 @@ type AIGenerationClient> = Pick< 'generations' >; -interface GraphQLFormattedError { - readonly message: string; - readonly errorType: string; - readonly errorInfo: null | { - [key: string]: unknown; - }; -} - -type SingularReturnValue = { - data: T | null; - errors?: GraphQLFormattedError[]; -}; - -type GenerationState = Omit, 'message'> & { - messages?: GraphQLFormattedError[]; -}; - -// default state -const INITIAL_STATE = { - hasError: false, - isLoading: false, - messages: undefined, -}; -const LOADING_STATE = { hasError: false, isLoading: true, messages: undefined }; -const ERROR_STATE = { hasError: true, isLoading: false }; - export function createUseAIGeneration< Client extends Record<'generations' | 'conversations', Record>, Schema extends getSchema, @@ -65,11 +45,11 @@ export function createUseAIGeneration< >( routeName: Key ): [ - state: GenerationState, - handleAction: (input: Schema[Key]['args']) => void, + state: DataClientState, + handleAction: (input: Schema[Key]['args']) => Promise, ] => { const [dataState, setDataState] = React.useState< - GenerationState + DataClientState >(() => ({ ...INITIAL_STATE, data: undefined, @@ -83,7 +63,7 @@ export function createUseAIGeneration< client.generations as AIGenerationClient['generations'] )[routeName](input); - const { data, errors } = result as SingularReturnValue< + const { data, errors } = result as DataClientResponse< Schema[Key]['returnType'] >; diff --git a/packages/react-ai/src/index.ts b/packages/react-ai/src/index.ts index 291ba68846f..2edd9c9ae48 100644 --- a/packages/react-ai/src/index.ts +++ b/packages/react-ai/src/index.ts @@ -6,7 +6,7 @@ export { ResponseComponent, SuggestedPrompt, } from './components'; -export { createAIHooks, AIContextProvider } from './hooks'; +export { createAIHooks } from './hooks'; export { ConversationMessage, ConversationMessageContent, diff --git a/packages/react-ai/src/types.ts b/packages/react-ai/src/types.ts index 8a887c5020e..c81937ff910 100644 --- a/packages/react-ai/src/types.ts +++ b/packages/react-ai/src/types.ts @@ -5,9 +5,19 @@ export type Conversation = NonNullable< Awaited>['data'] >; +export type ConversationStreamEvent = Parameters< + Parameters[0]['next'] +>[0]; + export type ConversationMessage = NonNullable< Awaited>['data'] ->; +> & { + // adding isLoading on a per-message basis + // because with streaming a message can be loading + // but also the whole conversation can be loading + // if the user is resuming a conversation + isLoading?: boolean; +}; export type ConversationMessageContent = ConversationMessage['content'][number]; @@ -17,6 +27,12 @@ export type ImageContentBlock = NonNullable< ConversationMessageContent['image'] >; +export type ToolUseContent = NonNullable; + +export type ToolResultContent = NonNullable< + ConversationMessageContent['toolResult'] +>; + // Note: the conversation sendMessage function is an overload // that accepts a string OR an object export type InputContent = Exclude< @@ -54,3 +70,42 @@ type AIClient> = Pick< 'generations' | 'conversations' >; export type getSchema = T extends AIClient ? Schema : never; + +export interface GraphQLFormattedError { + readonly message: string; + readonly errorType: string; + readonly errorInfo?: null | { + [key: string]: unknown; + }; +} + +type JSONType = + | 'string' + | 'number' + | 'integer' + | 'boolean' + | 'object' + | 'array' + | 'null' + | 'any'; + +interface ResponseComponentProp { + type: JSONType; + enum?: string[]; + description?: string; + required?: boolean; +} + +interface ResponseComponentPropMap { + [key: string]: ResponseComponentProp; +} + +export interface ResponseComponent { + component: React.ComponentType; + description?: string; + props: ResponseComponentPropMap; +} + +export interface ResponseComponents { + [key: string]: ResponseComponent; +} diff --git a/packages/ui/src/theme/css/component/AIConversation/aiConversation.scss b/packages/ui/src/theme/css/component/AIConversation/aiConversation.scss index e5a144c9341..d36b842ec74 100644 --- a/packages/ui/src/theme/css/component/AIConversation/aiConversation.scss +++ b/packages/ui/src/theme/css/component/AIConversation/aiConversation.scss @@ -67,6 +67,7 @@ &__body { display: flex; + flex: 1; flex-direction: column; align-items: var(--internal-body-align-items); gap: var(--amplify-components-ai-conversation-message-body-gap); diff --git a/yarn.lock b/yarn.lock index dd3579a6b43..6777ebc1035 100644 --- a/yarn.lock +++ b/yarn.lock @@ -473,14 +473,17 @@ resolved "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz#70e45678f06c72fa2e350e8553ec4a4d72b92e06" integrity sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg== -"@aws-amplify/ai-constructs@^0.1.2": - version "0.1.4" - resolved "https://registry.npmjs.org/@aws-amplify/ai-constructs/-/ai-constructs-0.1.4.tgz#043ca7793cb4a97ad7864797bd70dbfa323329f4" - integrity sha512-BGLBFs/pt6JrNgUo+QD0Szt/ssHMa6EyEE45yLoHemwPHRuJPpnFmxIbbxgxaqJP0mWK6QMs9Wh3IsdJ/6XhDA== +"@aws-amplify/ai-constructs@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/ai-constructs/-/ai-constructs-0.8.0.tgz#c84e6c608684649ec9fb670af4c65921385b2f25" + integrity sha512-DP+M73Iy8Dbm/Rp8QosQlCDLuR9U2fOWg+q6uPAksuaVuCdnqNvTHsQ0XEQMmslEx32vEdvn0ttiMbzD++ukSw== dependencies: - "@aws-amplify/plugin-types" "^1.0.1" + "@aws-amplify/backend-output-schemas" "^1.4.0" + "@aws-amplify/platform-core" "^1.1.0" + "@aws-amplify/plugin-types" "^1.3.1" "@aws-sdk/client-bedrock-runtime" "^3.622.0" "@smithy/types" "^3.3.0" + json-schema-to-ts "^3.1.1" "@aws-amplify/analytics@7.0.52": version "7.0.52" @@ -523,12 +526,12 @@ "@aws-amplify/api-rest" "4.0.52" tslib "^2.5.0" -"@aws-amplify/appsync-modelgen-plugin@2.13.0": - version "2.13.0" - resolved "https://registry.npmjs.org/@aws-amplify/appsync-modelgen-plugin/-/appsync-modelgen-plugin-2.13.0.tgz#ac0a0657ba9b73e7a33435846085e807f34ed130" - integrity sha512-j74lEO53Sf5u9o6ZqmH6JqiUBD8VjqYSp4Rb4G+RNdLX8zt6eaEUKlO4wTQ9ejSrKgCDxzbb+2YldZWCMsWUFQ== +"@aws-amplify/appsync-modelgen-plugin@2.15.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/appsync-modelgen-plugin/-/appsync-modelgen-plugin-2.15.0.tgz#d2a43d795d7ec19ef4e5a3bcfb5aa4de1360783f" + integrity sha512-k3hU3ZPXcxQgUB1I8mQ7+5zCTU2KCL43U4R/LbNAdGlXzDy0T2tppWJxobxRE+9K3+wtiYBeivtGzc7EmrveWw== dependencies: - "@graphql-codegen/plugin-helpers" "^1.18.8" + "@graphql-codegen/plugin-helpers" "^3.1.1" "@graphql-codegen/visitor-plugin-common" "^1.22.0" "@graphql-tools/utils" "^6.0.18" chalk "^3.0.0" @@ -539,14 +542,14 @@ strip-indent "^3.0.0" ts-dedent "^1.1.0" -"@aws-amplify/auth-construct@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@aws-amplify/auth-construct/-/auth-construct-1.3.0.tgz#5f9776a59d545ce707e65bcc571f5db6b4483b6d" - integrity sha512-scOk6Q5VhMwrSDSTF4V/HKKUGyOVni0a3MERkre4n2IYZXCrt0b4iFmOEHul7is6aNDPp3TVs0sJ70j6HwVu8g== +"@aws-amplify/auth-construct@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/auth-construct/-/auth-construct-1.5.0.tgz#b1390f49315c0742fe46a4535c3f15a9e6068054" + integrity sha512-Hjm42uQBq12lpX8vGdwomOmMShofo+MEWkjbge7X0q+Y9mGId+RrteAcST18i/8d6ERg7kZ33Udg+HgsztyHhg== dependencies: - "@aws-amplify/backend-output-schemas" "^1.1.0" - "@aws-amplify/backend-output-storage" "^1.1.1" - "@aws-amplify/plugin-types" "^1.2.1" + "@aws-amplify/backend-output-schemas" "^1.4.0" + "@aws-amplify/backend-output-storage" "^1.1.3" + "@aws-amplify/plugin-types" "^1.4.0" "@aws-sdk/util-arn-parser" "^3.568.0" "@aws-amplify/auth@6.5.2": @@ -556,113 +559,103 @@ dependencies: tslib "^2.5.0" -"@aws-amplify/backend-auth@^1.1.2": - version "1.1.4" - resolved "https://registry.npmjs.org/@aws-amplify/backend-auth/-/backend-auth-1.1.4.tgz#fbc0f9d93b080a845d1171a10538ca79a393910d" - integrity sha512-4tk9888PHUBvJ5Ihn/ggzvSL10GCYZP0CY4fx/92JCAEE9STrHDvRQ0vwp9uz6Dsz4jMCi4hNMhUIXzxr4/xNw== +"@aws-amplify/backend-auth@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend-auth/-/backend-auth-1.4.0.tgz#317d49d8e302c5a9fbba72fd02b448643e833ab4" + integrity sha512-V8ptUC2YphltDvoSHJeczEa9rUaGwVE3VkxK6xrSpA2EQooF9fE9FMpNzVX0NX1+HtMbxvtdPASzRqnkxmQCwg== dependencies: - "@aws-amplify/auth-construct" "^1.3.0" - "@aws-amplify/backend-output-storage" "^1.1.1" - "@aws-amplify/plugin-types" "^1.2.1" + "@aws-amplify/auth-construct" "^1.5.0" + "@aws-amplify/backend-output-schemas" "^1.4.0" + "@aws-amplify/backend-output-storage" "^1.1.3" + "@aws-amplify/plugin-types" "^1.4.0" -"@aws-amplify/backend-data@^1.1.3": - version "1.1.3" - resolved "https://registry.npmjs.org/@aws-amplify/backend-data/-/backend-data-1.1.3.tgz#1b5c47476786c954f187c38f411418cc9cb06599" - integrity sha512-ajwhNw13a6IDhUw8HbAi8gOU7oAJS1ila6jhU34x4Bz/MPanblI+v3Ux5l0ceynhET7oRFCERCrY1VY6BDlPhg== +"@aws-amplify/backend-data@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend-data/-/backend-data-1.2.0.tgz#ca61c12f6a14350b50de4a1a94b7b61ea46c7ee9" + integrity sha512-bmWP8vkP54lK2oi/q9VTUOUTyzBuhdz7kPYxMQ/Gbry7W8bRw5up6zZin2/ihA1Y3UIAoikOk3+GX/NLMM4GLA== dependencies: - "@aws-amplify/backend-output-schemas" "^1.1.0" - "@aws-amplify/backend-output-storage" "^1.1.1" - "@aws-amplify/data-construct" "^1.9.6" - "@aws-amplify/data-schema-types" "^1.1.1" - "@aws-amplify/plugin-types" "^1.2.1" + "@aws-amplify/backend-output-schemas" "^1.4.0" + "@aws-amplify/backend-output-storage" "^1.1.3" + "@aws-amplify/data-construct" "^1.10.1" + "@aws-amplify/data-schema-types" "^1.2.0" + "@aws-amplify/plugin-types" "^1.4.0" -"@aws-amplify/backend-function@^1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/@aws-amplify/backend-function/-/backend-function-1.4.0.tgz#bf8b890fb5902d05c9413a459585b1969e47b106" - integrity sha512-O7DGRAxzOexK37etlKrkfc9J9CRDLaTaFYIAJUymIGTc11o97fmV9DGMnMAMQghaHuTsTxOooz+y28ZHlPlJBA== +"@aws-amplify/backend-function@^1.7.5": + version "1.7.5" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend-function/-/backend-function-1.7.5.tgz#f6348c1a26366c2f489620a4e48dc110ba67d657" + integrity sha512-LFii2xgkP7JWH+HZSs/PHvk4a1yfzNVhSfAHZAfP9IMU58ukjL7KlrV7BjgAvyejoV2n0KwvMdd4Q7CU+bIfxA== dependencies: - "@aws-amplify/backend-output-schemas" "^1.1.0" - "@aws-amplify/backend-output-storage" "^1.1.1" - "@aws-amplify/plugin-types" "^1.2.1" + "@aws-amplify/backend-output-schemas" "^1.4.0" + "@aws-amplify/backend-output-storage" "^1.1.3" + "@aws-amplify/plugin-types" "^1.4.0" execa "^8.0.1" -"@aws-amplify/backend-output-schemas@^0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-0.4.0.tgz#835af830e1642d07c8f19bb3d96a76571606bf9a" - integrity sha512-/gxeCtjvbKW+OYP1CUv1dZy2tW3dxagNRGBJWrzaZgqqmQ6zTmyboOxgFdC2KO1WKLddsv+z/gciZNs46m3gBQ== - -"@aws-amplify/backend-output-schemas@^0.5.2": - version "0.5.2" - resolved "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-0.5.2.tgz#00d6c0d241195b0ed7fd99d1efd66b3af6e73a66" - integrity sha512-F9i33hvykFVda8W7FD/A+DlmJbvEzDyZ4+mY379RQyDD/aqG3pEKvzgFu0cZWDgj8ioXcgL5ARldlAvd6vUVDA== +"@aws-amplify/backend-output-schemas@^1.0.0", "@aws-amplify/backend-output-schemas@^1.2.1", "@aws-amplify/backend-output-schemas@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend-output-schemas/-/backend-output-schemas-1.4.0.tgz#8abed00fe0ff67c2f3282c8e517db2df28c8fa0a" + integrity sha512-/p2t/wWV1CTObJnewmLKlx48AYGhhRKp2Ne51DNZ1gV4CAwZx9Jmtyjv65h3zQ6Gk6WTTcjeNORncgEa1Gq5CA== "@aws-amplify/backend-output-schemas@^1.1.0", "@aws-amplify/backend-output-schemas@^1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-1.2.0.tgz#3894e558c3866b90003e4020014e61f4589a97a1" integrity sha512-UMQfPlfzyvYsV9A/MyoFm8T87MxsLZBzABSkmD5Y/sh8XTIJlqRHibzKStoN7xuK5S1Iz1okRVoxhFxSy0alrg== -"@aws-amplify/backend-output-storage@^0.2.2": - version "0.2.11" - resolved "https://registry.npmjs.org/@aws-amplify/backend-output-storage/-/backend-output-storage-0.2.11.tgz#a61cada821a26edd867f63741ac4bf83c1fc9b39" - integrity sha512-+Hb/fluc2E1AGqzi+PH6JJEG0WGY0amZd4dIAbPPR4rsUWPZAPxlBTd2vR8gltuVyeemKGXMK2wqEWw2CLLP7w== - dependencies: - "@aws-amplify/backend-output-schemas" "^0.5.2" - "@aws-amplify/platform-core" "^0.4.3" - -"@aws-amplify/backend-output-storage@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@aws-amplify/backend-output-storage/-/backend-output-storage-1.1.1.tgz#17db84d9e01e04f1fbfb7f1d9477c6e328b6ec50" - integrity sha512-eXMz0HyM3kt52uexbYoURa57OFlRqcvQK1NqfJrHVBJfboFTY6hvBLmCLePcLcz/qeNUUP8ueYvRsI+rtxFCcw== +"@aws-amplify/backend-output-storage@^1.0.0", "@aws-amplify/backend-output-storage@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend-output-storage/-/backend-output-storage-1.1.3.tgz#c03f4f50e629140ac28efe5b07db0c62239f1166" + integrity sha512-2dHDQ/7fcOEotFvMup4rS6rM+suBWZNMnLC0QNSaegTZ/KPAIAtK2pG0PIBKKfJSimJRuplG+jxvA+oZ7D5Y1Q== dependencies: "@aws-amplify/backend-output-schemas" "^1.2.0" "@aws-amplify/platform-core" "^1.0.6" + "@aws-amplify/plugin-types" "^1.3.1" -"@aws-amplify/backend-secret@^1.0.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@aws-amplify/backend-secret/-/backend-secret-1.1.1.tgz#3155011be4fcec258836d32f95c897a2f4e895e2" - integrity sha512-9qCf9j7kfcY6kAh9pLYVN7r3nvPscOY9fbR3GVqzLps5mYLrLyuxdZbPN+1jprmww15MDHAjJMGC5E4O6TaQCg== +"@aws-amplify/backend-secret@^1.1.4": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend-secret/-/backend-secret-1.1.5.tgz#4b08ae06a493b705b68150397da062fa0c3f37d9" + integrity sha512-xn9WAUhEpJQ2qKYRL398PL+XLmixYGAvQryFxjU+HReMNRoGG7INBbE58xHciOIvMu9zLQFEfT/emS573hE1fA== dependencies: "@aws-amplify/platform-core" "^1.0.5" - "@aws-amplify/plugin-types" "^1.1.1" + "@aws-amplify/plugin-types" "^1.2.2" "@aws-sdk/client-ssm" "^3.624.0" -"@aws-amplify/backend-storage@^1.1.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@aws-amplify/backend-storage/-/backend-storage-1.1.2.tgz#3cfe9195a6573830b97c7df2ce5cbc81c8558ffe" - integrity sha512-a0S5kjnT93ebsdnc6SwmH1ujYgdwNSy3chjJ2TM9yJnyA38je5pf2ZprMABAONSona5uGzJO4o9wkvfSQdRO5g== - dependencies: - "@aws-amplify/backend-output-schemas" "^1.2.0" - "@aws-amplify/backend-output-storage" "^1.1.1" - "@aws-amplify/plugin-types" "^1.2.1" - -"@aws-amplify/backend@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@aws-amplify/backend/-/backend-1.2.1.tgz#48cf6d8e20acbc17b96bd5264d0cbe059960ca5a" - integrity sha512-DJVkIJ0V59wpsEAIQ0A/GyD4UENmB6Djb8RJYdES7p8b/D9DeH4TMqxSMqgjPDwzJoyvoS0prHvz2ROiGjiTVA== - dependencies: - "@aws-amplify/backend-auth" "^1.1.2" - "@aws-amplify/backend-data" "^1.1.3" - "@aws-amplify/backend-function" "^1.4.0" - "@aws-amplify/backend-output-schemas" "^1.2.0" - "@aws-amplify/backend-output-storage" "^1.1.1" - "@aws-amplify/backend-secret" "^1.0.1" - "@aws-amplify/backend-storage" "^1.1.1" - "@aws-amplify/client-config" "^1.3.0" +"@aws-amplify/backend-storage@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend-storage/-/backend-storage-1.2.2.tgz#46238a5ea857156bbc3c9018ba0a0ea288aafc1d" + integrity sha512-y6+JCV9LkS5cn0FBl3hQrgj6OW3pdB8D4MzrNjhtE3ZdFGMpA1YCBPedqRiLEd7h9ppDvZbE/806TKSfktfSlw== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.2.1" + "@aws-amplify/backend-output-storage" "^1.1.3" + "@aws-amplify/plugin-types" "^1.3.1" + +"@aws-amplify/backend@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/backend/-/backend-1.7.0.tgz#bf0c15f50288352b1e225eff906096d9f9349cef" + integrity sha512-IG6CLkhgO23eGhwAGSXSP1QP/Yik6krTSVownvJiyN3bc7S19rBnf0oGSd8XyYztQhs5brT7LaI+dAreHw/HpA== + dependencies: + "@aws-amplify/backend-auth" "^1.4.0" + "@aws-amplify/backend-data" "^1.2.0" + "@aws-amplify/backend-function" "^1.7.5" + "@aws-amplify/backend-output-schemas" "^1.4.0" + "@aws-amplify/backend-output-storage" "^1.1.3" + "@aws-amplify/backend-secret" "^1.1.4" + "@aws-amplify/backend-storage" "^1.2.2" + "@aws-amplify/client-config" "^1.5.2" "@aws-amplify/data-schema" "^1.0.0" - "@aws-amplify/platform-core" "^1.1.0" - "@aws-amplify/plugin-types" "^1.2.1" + "@aws-amplify/platform-core" "^1.2.0" + "@aws-amplify/plugin-types" "^1.4.0" "@aws-sdk/client-amplify" "^3.624.0" lodash.snakecase "^4.1.1" -"@aws-amplify/client-config@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@aws-amplify/client-config/-/client-config-1.3.0.tgz#4e4f6132bf054ddaf28dab7aa6c8186e5b7814f0" - integrity sha512-A6t2WcXG1nnPupOzf4gulRp2838k0RGnNTmVo9CDAXiUAETZZsNf3TQO2oLnkM2+8A4b9j+0G2eiW82zq+qNTQ== +"@aws-amplify/client-config@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@aws-amplify/client-config/-/client-config-1.5.2.tgz#fcda69e6952977517d7aa0f8d3ac2ea66df81b19" + integrity sha512-TaCcMNB0Q5H1ZY/0qKay13cuSdUVXj3q25aFvdHIc7QAYCrni/sCtrNhlYRKxMH5BPJIKiD1lwaZwcAbu+/3fQ== dependencies: - "@aws-amplify/backend-output-schemas" "^1.2.0" - "@aws-amplify/deployed-backend-client" "^1.4.0" - "@aws-amplify/model-generator" "^1.0.5" + "@aws-amplify/backend-output-schemas" "^1.4.0" + "@aws-amplify/deployed-backend-client" "^1.4.1" + "@aws-amplify/model-generator" "^1.0.7" "@aws-amplify/platform-core" "^1.0.7" + "@aws-amplify/plugin-types" "^1.3.1" zod "^3.22.2" "@aws-amplify/core@6.4.5": @@ -679,77 +672,155 @@ tslib "^2.5.0" uuid "^9.0.0" -"@aws-amplify/data-construct@^1.9.6": - version "1.10.0" - resolved "https://registry.npmjs.org/@aws-amplify/data-construct/-/data-construct-1.10.0.tgz#ed799009ea3e4314f97aac34073abcff69832b37" - integrity sha512-2w/SSsaqj0DeHJYKo1rQbNX+lvS9ja7wqqoYvRCJ/VKbSPVrNrYZORjBCQ4WIB9x3ElDVCogMboI7mgmfWeE7w== - dependencies: - "@aws-amplify/ai-constructs" "^0.1.2" - "@aws-amplify/backend-output-schemas" "^0.4.0" - "@aws-amplify/backend-output-storage" "^0.2.2" - "@aws-amplify/graphql-api-construct" "1.12.0" - "@aws-amplify/graphql-auth-transformer" "4.1.0" - "@aws-amplify/graphql-conversation-transformer" "0.2.0" - "@aws-amplify/graphql-default-value-transformer" "3.0.2" - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-function-transformer" "3.0.2" - "@aws-amplify/graphql-generation-transformer" "0.2.0" - "@aws-amplify/graphql-http-transformer" "3.0.2" - "@aws-amplify/graphql-index-transformer" "3.0.2" - "@aws-amplify/graphql-maps-to-transformer" "4.0.2" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-predictions-transformer" "3.0.2" - "@aws-amplify/graphql-relational-transformer" "3.0.2" - "@aws-amplify/graphql-searchable-transformer" "3.0.2" - "@aws-amplify/graphql-sql-transformer" "0.4.2" - "@aws-amplify/graphql-transformer" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" - "@aws-amplify/platform-core" "^0.2.0" - "@aws-amplify/plugin-types" "^0.4.1" +"@aws-amplify/data-construct@^1.10.1": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/data-construct/-/data-construct-1.13.0.tgz#51f795ed2b0af502abd2b25941c448d0a8a97723" + integrity sha512-zv7wIZW93PgmMKj6uQ5cK/wbsCBrOEn/vk7QxtelxnrMI9IRX+u1y0/B7ooJi7NO3G40mNXV1z37vR+dvCN+Dg== + dependencies: + "@aws-amplify/ai-constructs" "0.8.0" + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/graphql-api-construct" "1.17.0" + "@aws-amplify/graphql-auth-transformer" "4.1.6" + "@aws-amplify/graphql-conversation-transformer" "0.6.0" + "@aws-amplify/graphql-default-value-transformer" "3.1.3" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-function-transformer" "3.1.5" + "@aws-amplify/graphql-generation-transformer" "0.2.6" + "@aws-amplify/graphql-http-transformer" "3.0.8" + "@aws-amplify/graphql-index-transformer" "3.0.8" + "@aws-amplify/graphql-maps-to-transformer" "4.0.8" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-predictions-transformer" "3.0.8" + "@aws-amplify/graphql-relational-transformer" "3.1.0" + "@aws-amplify/graphql-searchable-transformer" "3.0.8" + "@aws-amplify/graphql-sql-transformer" "0.4.8" + "@aws-amplify/graphql-transformer" "2.1.6" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" + "@aws-amplify/platform-core" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/client-bedrock-runtime" "^3.622.0" + "@aws-sdk/client-sso" "3.637.0" + "@aws-sdk/client-sso-oidc" "3.637.0" + "@aws-sdk/client-sts" "^3.624.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.635.0" + "@aws-sdk/credential-provider-ini" "3.637.0" + "@aws-sdk/credential-provider-node" "3.637.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.637.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/token-providers" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/abort-controller" "^3.1.1" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/eventstream-codec" "^3.1.2" + "@smithy/eventstream-serde-browser" "^3.0.6" + "@smithy/eventstream-serde-config-resolver" "^3.0.3" + "@smithy/eventstream-serde-node" "^3.0.5" + "@smithy/eventstream-serde-universal" "^3.0.5" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/querystring-builder" "^3.0.3" + "@smithy/querystring-parser" "^3.0.3" + "@smithy/service-error-classification" "^3.0.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/signature-v4" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-stream" "^3.1.3" + "@smithy/util-uri-escape" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + bowser "^2.11.0" charenc "^0.0.2" + ci-info "^3.2.0" crypt "^0.0.2" + fast-xml-parser "4.4.1" fs-extra "^8.1.0" - graceful-fs "^4.2.11" + graceful-fs "^4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" hjson "^3.2.2" immer "^9.0.12" - is-buffer "^2.0.5" - jsonfile "^6.1.0" + is-buffer "~1.1.6" + is-ci "^3.0.1" + jsonfile "^4.0.0" libphonenumber-js "1.9.47" lodash "^4.17.21" - md5 "^2.3.0" + lodash.mergewith "^4.6.2" + md5 "^2.2.1" object-hash "^3.0.0" - pluralize "^8.0.0" + pluralize "8.0.0" + semver "^7.6.3" + strnum "^1.0.5" ts-dedent "^2.0.0" - universalify "^2.0.0" - zod "^3.22.3" + tslib "^2.6.2" + universalify "^0.1.0" + uuid "^9.0.1" + zod "^3.22.2" -"@aws-amplify/data-schema-types@*", "@aws-amplify/data-schema-types@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@aws-amplify/data-schema-types/-/data-schema-types-1.1.1.tgz#5b0331626321a9407d0438e4a29c715f6f4f4afe" - integrity sha512-WhWEEsztpSSxIY0lJ3Ge5iA4g3PBm66SQmy1fBH1FBq0T+cxUBijifOU8MNwf+tf6lGpArMX0RS54HRVF5fUSA== +"@aws-amplify/data-schema-types@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/data-schema-types/-/data-schema-types-1.2.0.tgz#fd4ed507adf0786f4ea005121726c72c739d4db0" + integrity sha512-1hy2r7jl3hQ5J/CGjhmPhFPcdGSakfme1ZLjlTMJZILfYifZLSlGRKNCelMb3J5N9203hyeT5XDi5yR47JL1TQ== dependencies: graphql "15.8.0" rxjs "^7.8.1" -"@aws-amplify/data-schema@^1.0.0": - version "1.6.2" - resolved "https://registry.yarnpkg.com/@aws-amplify/data-schema/-/data-schema-1.6.2.tgz#6d6537b163c723b7e138aaded2d32b2f94ed9bc3" - integrity sha512-GCntMHsm2VPBAdfpsRSv35K1csSVJ/sCBbOHcPwb3it3hea5Z88B13fK+B4ktpvUJSjy4n/m9/m6tK9h9Yky8Q== +"@aws-amplify/data-schema-types@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/data-schema-types/-/data-schema-types-1.2.0.tgz#fd4ed507adf0786f4ea005121726c72c739d4db0" + integrity sha512-1hy2r7jl3hQ5J/CGjhmPhFPcdGSakfme1ZLjlTMJZILfYifZLSlGRKNCelMb3J5N9203hyeT5XDi5yR47JL1TQ== dependencies: - "@aws-amplify/data-schema-types" "*" - "@smithy/util-base64" "^3.0.0" - "@types/aws-lambda" "^8.10.134" - "@types/json-schema" "^7.0.15" + graphql "15.8.0" rxjs "^7.8.1" -"@aws-amplify/data-schema@^1.7.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@aws-amplify/data-schema/-/data-schema-1.10.0.tgz#016fe8e9e1f40d268d26867c1bd925d71e902a12" - integrity sha512-tp1dtpNmc5X8B9M3yg1TmkXvnMH10UicPrnfpNCVfsuCQZk7r/hNkzLaLlAyD8/f5/sXatpYl91zo7owbIuPPw== +"@aws-amplify/data-schema@^1.0.0", "@aws-amplify/data-schema@^1.7.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/data-schema/-/data-schema-1.13.0.tgz#09bf2e3dfebe18e1239343fda8fcdfacbfda03c4" + integrity sha512-lFFQa5mxlSa1hkJwbnqj6OViw1W5kSlWWKNDVYDQGsHtAA7earTwFfW7bvj8kX5OHX4w/HH2pdXbYV1ctIsltQ== dependencies: "@aws-amplify/data-schema-types" "*" "@smithy/util-base64" "^3.0.0" @@ -769,13 +840,14 @@ rxjs "^7.8.1" ulid "^2.3.0" -"@aws-amplify/deployed-backend-client@^1.3.0", "@aws-amplify/deployed-backend-client@^1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/@aws-amplify/deployed-backend-client/-/deployed-backend-client-1.4.0.tgz#4fe509769e21b4679d646e58e4bf255e4f3c333f" - integrity sha512-jlmWuJtgDSNG1N/whDOpmbJiZeltcU4UedbQDodSJuXkBgaxsAuRRnJG5YTE5IRwcp/bpsb0py4QsvBUtXkJEg== +"@aws-amplify/deployed-backend-client@^1.4.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@aws-amplify/deployed-backend-client/-/deployed-backend-client-1.4.2.tgz#427575b0ad616e6f09e0ce622b55f5bd8997709b" + integrity sha512-wfiWWyeJGcHEPu5FxFXJ3ADcePPHnkbqmoG/1tEzzJocI5LBShrSQ/wC/zeQrfZ0GP974BVKDg6CXoOwBNlJMQ== dependencies: "@aws-amplify/backend-output-schemas" "^1.2.0" "@aws-amplify/platform-core" "^1.0.5" + "@aws-amplify/plugin-types" "^1.2.2" zod "^3.22.2" "@aws-amplify/geo@^3.0.40": @@ -788,103 +860,185 @@ camelcase-keys "6.2.2" tslib "^2.5.0" -"@aws-amplify/graphql-api-construct@1.12.0": - version "1.12.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-api-construct/-/graphql-api-construct-1.12.0.tgz#e5cac85290097efa0373ce5b52f719add395dcbd" - integrity sha512-h/FWriGl39zise+EofwHh2FmHmmEINefN/DEdXgQLT0/Cw5WUKCMKaIS/30Nk27N8V0anFWBVVbVUDMOjARLTQ== - dependencies: - "@aws-amplify/ai-constructs" "^0.1.2" - "@aws-amplify/backend-output-schemas" "^0.4.0" - "@aws-amplify/backend-output-storage" "^0.2.2" - "@aws-amplify/graphql-auth-transformer" "4.1.0" - "@aws-amplify/graphql-conversation-transformer" "0.2.0" - "@aws-amplify/graphql-default-value-transformer" "3.0.2" - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-function-transformer" "3.0.2" - "@aws-amplify/graphql-generation-transformer" "0.2.0" - "@aws-amplify/graphql-http-transformer" "3.0.2" - "@aws-amplify/graphql-index-transformer" "3.0.2" - "@aws-amplify/graphql-maps-to-transformer" "4.0.2" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-predictions-transformer" "3.0.2" - "@aws-amplify/graphql-relational-transformer" "3.0.2" - "@aws-amplify/graphql-searchable-transformer" "3.0.2" - "@aws-amplify/graphql-sql-transformer" "0.4.2" - "@aws-amplify/graphql-transformer" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" - "@aws-amplify/platform-core" "^0.2.0" - "@aws-amplify/plugin-types" "^0.4.1" +"@aws-amplify/graphql-api-construct@1.17.0": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-api-construct/-/graphql-api-construct-1.17.0.tgz#f86c089c474fa3d82f365c458535e955b92d1372" + integrity sha512-sOSuz3k/PIpadr0In7TU7UQXERChMXMQCHnUgGKk+Dp0oCITzODB8hT0ddbvA8N+cD4EZgSZSHnLWj+q8VOPtQ== + dependencies: + "@aws-amplify/ai-constructs" "0.8.0" + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/graphql-auth-transformer" "4.1.6" + "@aws-amplify/graphql-conversation-transformer" "0.6.0" + "@aws-amplify/graphql-default-value-transformer" "3.1.3" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-function-transformer" "3.1.5" + "@aws-amplify/graphql-generation-transformer" "0.2.6" + "@aws-amplify/graphql-http-transformer" "3.0.8" + "@aws-amplify/graphql-index-transformer" "3.0.8" + "@aws-amplify/graphql-maps-to-transformer" "4.0.8" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-predictions-transformer" "3.0.8" + "@aws-amplify/graphql-relational-transformer" "3.1.0" + "@aws-amplify/graphql-searchable-transformer" "3.0.8" + "@aws-amplify/graphql-sql-transformer" "0.4.8" + "@aws-amplify/graphql-transformer" "2.1.6" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" + "@aws-amplify/platform-core" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/client-bedrock-runtime" "^3.622.0" + "@aws-sdk/client-sso" "3.637.0" + "@aws-sdk/client-sso-oidc" "3.637.0" + "@aws-sdk/client-sts" "^3.624.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.635.0" + "@aws-sdk/credential-provider-ini" "3.637.0" + "@aws-sdk/credential-provider-node" "3.637.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.637.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/token-providers" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/abort-controller" "^3.1.1" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/eventstream-codec" "^3.1.2" + "@smithy/eventstream-serde-browser" "^3.0.6" + "@smithy/eventstream-serde-config-resolver" "^3.0.3" + "@smithy/eventstream-serde-node" "^3.0.5" + "@smithy/eventstream-serde-universal" "^3.0.5" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/querystring-builder" "^3.0.3" + "@smithy/querystring-parser" "^3.0.3" + "@smithy/service-error-classification" "^3.0.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/signature-v4" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-stream" "^3.1.3" + "@smithy/util-uri-escape" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + bowser "^2.11.0" charenc "^0.0.2" + ci-info "^3.2.0" crypt "^0.0.2" + fast-xml-parser "4.4.1" fs-extra "^8.1.0" - graceful-fs "^4.2.11" + graceful-fs "^4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" hjson "^3.2.2" immer "^9.0.12" - is-buffer "^2.0.5" - jsonfile "^6.1.0" + is-buffer "~1.1.6" + is-ci "^3.0.1" + jsonfile "^4.0.0" libphonenumber-js "1.9.47" lodash "^4.17.21" - md5 "^2.3.0" + lodash.mergewith "^4.6.2" + md5 "^2.2.1" object-hash "^3.0.0" - pluralize "^8.0.0" + pluralize "8.0.0" + semver "^7.6.3" + strnum "^1.0.5" ts-dedent "^2.0.0" - universalify "^2.0.0" - zod "^3.22.3" + tslib "^2.6.2" + universalify "^0.1.0" + uuid "^9.0.1" + zod "^3.22.2" -"@aws-amplify/graphql-auth-transformer@4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-auth-transformer/-/graphql-auth-transformer-4.1.0.tgz#3d71dfa526c346545c7179dfc82d81612c5ebfc8" - integrity sha512-e3nP62BmqnycsigIp7fTPFTStfy0jDUY9CCRY8TN+NavjM9PCFJlPrRkpRrtj9AhdQiA5zKKj+TjC6+bU9o9pg== - dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-relational-transformer" "3.0.2" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" +"@aws-amplify/graphql-auth-transformer@4.1.6": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-auth-transformer/-/graphql-auth-transformer-4.1.6.tgz#4ca78bb31e74fdeddf972e6bf5a028694e7f1d1f" + integrity sha512-p/440CBmF3/LnuT2jqXEKcrwERsz3i+ISy2hWiDGrMH1dROun06wCI8sGYcnpLKs/TH4PxcM6tB3PWK4IhCpDw== + dependencies: + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-relational-transformer" "3.1.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" lodash "^4.17.21" md5 "^2.3.0" -"@aws-amplify/graphql-conversation-transformer@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-conversation-transformer/-/graphql-conversation-transformer-0.2.0.tgz#3ed88592a0d07b2e5addeab7fec1cbe1f8149d81" - integrity sha512-ED4QWwNmFOF33fn6Xx3ZMxYut5PfiOvzzWCY7pITxROvFRRUpPt5InFA1n4knm6LEpA+P3hq2MT79EbxdsdbBg== - dependencies: - "@aws-amplify/ai-constructs" "^0.1.2" - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-index-transformer" "3.0.2" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-relational-transformer" "3.0.2" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" +"@aws-amplify/graphql-conversation-transformer@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-conversation-transformer/-/graphql-conversation-transformer-0.6.0.tgz#dfdbc8567444cb998c600ab350bb6c154e52df95" + integrity sha512-b5AVe20oucHzR2siN9Nw7wsw2Rs/2CFs7uJuVgaA9cJoy21c/YsNhejiSwctd1ytMDmr4EWIrKZvFdPc8M15uQ== + dependencies: + "@aws-amplify/ai-constructs" "0.8.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-index-transformer" "3.0.8" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-relational-transformer" "3.1.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" immer "^9.0.12" + semver "^7.6.3" -"@aws-amplify/graphql-default-value-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-default-value-transformer/-/graphql-default-value-transformer-3.0.2.tgz#39608c3ac3a84df4fb1f965eeba2e5778667d1f1" - integrity sha512-S4cDeojND9EjJZ2kms5vuSurtWnulMgCXiqfCFYxdZAPSgrKk9afcjTcXRclYkwfgrbqddR5kiM8GyWz3KlD3w== +"@aws-amplify/graphql-default-value-transformer@3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-default-value-transformer/-/graphql-default-value-transformer-3.1.3.tgz#e47339c7dec6d05244383a5aa3d0d77b535b4553" + integrity sha512-z9nNBqUnacY4d0oftxIhJiHunZuVkHbamEOZT3ANEtoWIq9K3tQ7QtXxu+QcIQLTeESFav/oSoei9Ms61d4Jeg== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" libphonenumber-js "1.9.47" -"@aws-amplify/graphql-directives@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-directives/-/graphql-directives-2.1.0.tgz#d4c4f62d1d2d298c383ec044da5cabfa16c1700f" - integrity sha512-LjkXZIwV9Hy4HnV6TrnB3rZczWcmkUlPLoqaW0W8AQYOBkmRFV9MV2UJadb9Waday33qwjZPbxxdOjXPhYNUiA== +"@aws-amplify/graphql-directives@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-directives/-/graphql-directives-2.5.0.tgz#bfd6894c86de1d8a4eba139fbdf5452d15d20ffb" + integrity sha512-wi37NzCKH0s/CdE1MlJ+47cxGxQM9TEc3mfXM8OxfIcVYOaRQxS8NcwhGzWHXpj/6cj3tmzlAnpWm80oSG+DjQ== "@aws-amplify/graphql-directives@^1.0.1": version "1.1.0" @@ -900,190 +1054,193 @@ handlebars "4.7.7" yargs "^15.1.0" -"@aws-amplify/graphql-function-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-function-transformer/-/graphql-function-transformer-3.0.2.tgz#cfce574ad739ad60f74c1c4c3ce07d51061c6a87" - integrity sha512-Q8bw6udoVV5vQPYkvZNTK7KHK6aBGir5wxAAj8tiVo9pSzpxugDcPWNfNcvyNiP1wY6R3Uu+ls7DB1z9IcYCpw== +"@aws-amplify/graphql-function-transformer@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-function-transformer/-/graphql-function-transformer-3.1.5.tgz#ce3c5349548ce890791235a94ab575bfab956824" + integrity sha512-+FzUbRNauZXb59y6Fm3BooZaC4t686zSdy7h2TJ04ZQyeimlXXs9pTdU0zDGuH0SE0sfHU7+49jZmSoQJyTwzw== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-generation-transformer@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-generation-transformer/-/graphql-generation-transformer-0.2.0.tgz#c4ff30a2d3afe226f143f92eee9c0c93244522d6" - integrity sha512-a0lNaZQ7unyUk3A290F96HyXn3MidjcqTAaUQNWJyBWAfipZYfnC6LrHEF/qyqZWKZWz8qtghN63llPqalgB9g== +"@aws-amplify/graphql-generation-transformer@0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-generation-transformer/-/graphql-generation-transformer-0.2.6.tgz#23ce9736530937090fda62d845656820423f3920" + integrity sha512-6UjfuUon4d16WQF5+wvuFZYHst2+vFYQxkxkWHoiORtUCtDImb8sA5P8nYOPamIJOVtuEV+YCfMWlmLmTTWlLQ== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" immer "^9.0.12" -"@aws-amplify/graphql-generator@^0.4.0": - version "0.4.5" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-generator/-/graphql-generator-0.4.5.tgz#5e370d87030aa1617670ac8747bff32660daabfb" - integrity sha512-yxAxb9KJjUEtgW32nBy2ZzR4bFVe1Em8oR+w63WSnoEmpsW3D0SAa7H2oDocaePPZCVVYC6AsqH5Ne6Q3i608Q== +"@aws-amplify/graphql-generator@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-generator/-/graphql-generator-0.5.1.tgz#52d01d558bdd72033c3efb7d27c428e9013d0e33" + integrity sha512-30t/1QvK6klDHL30IJ8/S6nGkfZNC4s534U0y6rbYGhMSpKtmWy63HozxAwxz5HBUzkom+HmWIMHdLW+UVgQeA== dependencies: - "@aws-amplify/appsync-modelgen-plugin" "2.13.0" + "@aws-amplify/appsync-modelgen-plugin" "2.15.0" "@aws-amplify/graphql-directives" "^1.0.1" "@aws-amplify/graphql-docs-generator" "4.2.1" "@aws-amplify/graphql-types-generator" "3.6.0" "@graphql-codegen/core" "^2.6.6" + "@graphql-codegen/plugin-helpers" "^3.1.1" "@graphql-tools/apollo-engine-loader" "^8.0.0" + "@graphql-tools/schema" "^9.0.0" + "@graphql-tools/utils" "^9.2.1" graphql "^15.5.0" prettier "^1.19.1" -"@aws-amplify/graphql-http-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-http-transformer/-/graphql-http-transformer-3.0.2.tgz#a81fdbb445204293fc2e1a8b5beca84eff6ecd80" - integrity sha512-Q+7v45L63TbOdirRXebubBFxGVXBCWCZ2b8YLW2ERQMBkvCnyWBZagOc1yYAKi1Mm84sh4iwrfn4rJ8NBeoIlA== +"@aws-amplify/graphql-http-transformer@3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-http-transformer/-/graphql-http-transformer-3.0.8.tgz#225ed91a70ca886eb0c372b7b2e11020ec960c8f" + integrity sha512-N1UxZKGmzHlGJqkTIUkAv7yCC5nZnskhiSHv5v4OVh83zNq3VzlZXwQP3DYiINQG/fGKNbKXP/akNK+QRJav3Q== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-index-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-index-transformer/-/graphql-index-transformer-3.0.2.tgz#d4705163c8225a3b7226fbc72163c541920eb42c" - integrity sha512-+1cz3imonmmabJ4i6aSrGMV06ZoVRWsJ0CM0X/6LpwhyqQTshKn3NBpRhDzFDoUQE84Zq4KzoDDCm/yEGSJD4A== +"@aws-amplify/graphql-index-transformer@3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-index-transformer/-/graphql-index-transformer-3.0.8.tgz#f05cd82fae031bcdf027ecc650313b8ccbd4c47f" + integrity sha512-Pg9SoMhjyzFt/53G36OKL31MerungXHVLJczcG8kI9R946/KpOGEe5Tv4nIozO7SPn8pe8OMzFDRhefT7W/IiA== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-maps-to-transformer@4.0.2": - version "4.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-maps-to-transformer/-/graphql-maps-to-transformer-4.0.2.tgz#c0bc52e8e3e48472b8d72a1be88a6c1afae9f2cb" - integrity sha512-g+HHB1wxoyd2/UDtAoxEKgL8vL2coHKx1rPbI7g1pi1DD9EYtwOyyT5ZtQ5WPKLY0qEeyCqAcThIEQe9NmKIxQ== +"@aws-amplify/graphql-maps-to-transformer@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-maps-to-transformer/-/graphql-maps-to-transformer-4.0.8.tgz#758897468a3aa6f52cbdfc7ded293e61efb469e4" + integrity sha512-NaBG1OGVi9e3QRY3xfBKZOs4lopzNokKFVNEEP+MbYJijo7bgFpGWZ6ugLzify/Bd9vnatEW+5m9qnT1lHxxRQ== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-model-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-model-transformer/-/graphql-model-transformer-3.0.2.tgz#004ad4dc782f50a19dfe46d2613b865f5301e85e" - integrity sha512-ytN/cEJ3u4rdhSy45MaUhYvE4Yf7862fNQDAcWeQXzU4i+JK/sO/VPEn949wzxAjYjFMqkpHngW4ajp+BFFmCg== +"@aws-amplify/graphql-model-transformer@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-model-transformer/-/graphql-model-transformer-3.1.0.tgz#c91269d7473a2473cfb6aba496e0c46a0eb78acb" + integrity sha512-wk08X96kuQnLx5NwRZdLxJuQOmz5exId8YcGWVsXC7Hnboc/rGAoiRz3iuFPrTFf7tLGs1XtSP4+nCJbYExzzA== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-predictions-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-predictions-transformer/-/graphql-predictions-transformer-3.0.2.tgz#bf6a71bbad1ff9f0f10282a97d95d3efa63d2238" - integrity sha512-TQub4h0rPa5775Sd6CfnGYUrVzORiD+nnlXDLvO03Mz0oFupdV1b8ZFz2Ujd8ZAzZG6FPVHxh4EyeNgvE4SgcQ== +"@aws-amplify/graphql-predictions-transformer@3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-predictions-transformer/-/graphql-predictions-transformer-3.0.8.tgz#9cb14fb74c97eecc0af56e78c080434fe940d273" + integrity sha512-ruCi7fbFcmqm1tQl6Fv/V6ZpDNuZua5T3N8owZKKBA4IdktiDJsuX3S7ZpeEyrbCF+WVeYW/1jUN00NU1+PJDw== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-relational-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-relational-transformer/-/graphql-relational-transformer-3.0.2.tgz#e82b9d23b8c5fd370012c7d4d519b819d74fc094" - integrity sha512-G24/RSn88bKr8aTZ25QxM+5gDrMGbjyffrFpncBdMjvt4MmQ63rLEExWXaC/SYKU2+9wEcfF5tMrLTn1gUJhpg== - dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-index-transformer" "3.0.2" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" +"@aws-amplify/graphql-relational-transformer@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-relational-transformer/-/graphql-relational-transformer-3.1.0.tgz#7810f53f7a84e1efb91718c39174ce0c9b59f73c" + integrity sha512-H83+wYnu6G7dHVPivy2A/1pyRgMXlmk7aV0dRsSSBFWUcrHzvC12ekLsiZp3HJaWbu9yUeq7UBy4+XLeyxTBUA== + dependencies: + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-index-transformer" "3.0.8" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" immer "^9.0.12" -"@aws-amplify/graphql-searchable-transformer@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-searchable-transformer/-/graphql-searchable-transformer-3.0.2.tgz#cbdfd17db27d61c4d25092f5022da408681fbd20" - integrity sha512-tM3VDzhPmwK24bIWMvi96aYxlTIOtfllq1eg7sjG+FuvewfKIsdGZ6Z/MJUoKLG9MAXvclZbxIaO02A5HqEzXA== +"@aws-amplify/graphql-searchable-transformer@3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-searchable-transformer/-/graphql-searchable-transformer-3.0.8.tgz#c8324263523b739b094414ead6e869af2507c69c" + integrity sha512-OcyOaF6eLAPqFP1+QlC0B0B5Wwff3gFFerqJ8JpwrgJdboTfBPj1lQAUznUwOrOeg02ded2XCqwgGROUm+7vdw== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-sql-transformer@0.4.2": - version "0.4.2" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-sql-transformer/-/graphql-sql-transformer-0.4.2.tgz#62e0c17fa769b243042270580f872d2f85aa034c" - integrity sha512-vh9Jnd/2vSfZB9ANmuwF+1Ih2VdnZPivCFjkCdPTug2Yg/IsBXotbLcS1nTIuFgVG5awMrcHrR6WTFCAridmiw== +"@aws-amplify/graphql-sql-transformer@0.4.8": + version "0.4.8" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-sql-transformer/-/graphql-sql-transformer-0.4.8.tgz#de065f5a5f100afa9b16d74fc845d96dd6348e57" + integrity sha512-ASKqWcBVYJQwmE90yLw19jXtU/bKLY3kEB0VSkVDVKHm7HRAIUtug4ZlDsuDKT3B/n4H5R2MeUDFuL8Mb1NJkQ== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" -"@aws-amplify/graphql-transformer-core@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-core/-/graphql-transformer-core-3.1.0.tgz#246a17952a291ddec6dadfdae1219d6268f4bf14" - integrity sha512-PTYNh5iV7nU/uR8pu4HvqOI0PCCBX327zEsfWE1GbWzGMVrewkcoY0uh8v10mhaWAayoJgKFDAGlsXXByZai7w== +"@aws-amplify/graphql-transformer-core@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-transformer-core/-/graphql-transformer-core-3.3.0.tgz#b52b1a270ba53cc8a0d89bb90e817837919318a4" + integrity sha512-7CZCZIpuaSUQJwk3/uZwi/cdvHTDfVR2eNoAnB5piHdC4bWpaUg/lHPsL2J38Enb33VFX8UR599Tea1/W42/fg== dependencies: - "@aws-amplify/graphql-directives" "2.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" + "@aws-amplify/graphql-directives" "2.5.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" fs-extra "^8.1.0" graphql "^15.5.0" graphql-mapping-template "5.0.1" - graphql-transformer-common "5.0.1" + graphql-transformer-common "5.1.1" hjson "^3.2.2" lodash "^4.17.21" md5 "^2.3.0" object-hash "^3.0.0" ts-dedent "^2.0.0" -"@aws-amplify/graphql-transformer-interfaces@4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-4.1.0.tgz#9a913e43bfe8d849520fad0eea227a72edeb7c18" - integrity sha512-BgBUqTmTYyAWAWds4uXTPjv72iNAw2C3KKfrMt2aawlh1Lh5iXuGZMe2QKLmCxp+tG5OHMMVr0NXQfLWsC/ZKg== +"@aws-amplify/graphql-transformer-interfaces@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-4.2.0.tgz#50b6740d0ed3af8b4c22399837953c499cf2eaf7" + integrity sha512-8Ej1mCOIAKnDhAO6KdU7K6rWE0+XaHBLU6r1NsxSNFhBCJw3n+8xj2p2QxBRG+nBUsPL7oPDvIerIuAeoiQEsw== dependencies: graphql "^15.5.0" -"@aws-amplify/graphql-transformer@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer/-/graphql-transformer-2.1.0.tgz#c47b5e7fa8d1f020be00e7d9c1c947336933203a" - integrity sha512-HmOwzmHR+btlvHhaizEsYfYdYUNpEPWRMf5xyLZhGUSJwMob7E9RA9jzHrEyQI2ulkewhE/YiwI/muHlmcy7OQ== - dependencies: - "@aws-amplify/graphql-auth-transformer" "4.1.0" - "@aws-amplify/graphql-conversation-transformer" "0.2.0" - "@aws-amplify/graphql-default-value-transformer" "3.0.2" - "@aws-amplify/graphql-function-transformer" "3.0.2" - "@aws-amplify/graphql-generation-transformer" "0.2.0" - "@aws-amplify/graphql-http-transformer" "3.0.2" - "@aws-amplify/graphql-index-transformer" "3.0.2" - "@aws-amplify/graphql-maps-to-transformer" "4.0.2" - "@aws-amplify/graphql-model-transformer" "3.0.2" - "@aws-amplify/graphql-predictions-transformer" "3.0.2" - "@aws-amplify/graphql-relational-transformer" "3.0.2" - "@aws-amplify/graphql-searchable-transformer" "3.0.2" - "@aws-amplify/graphql-sql-transformer" "0.4.2" - "@aws-amplify/graphql-transformer-core" "3.1.0" - "@aws-amplify/graphql-transformer-interfaces" "4.1.0" +"@aws-amplify/graphql-transformer@2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-transformer/-/graphql-transformer-2.1.6.tgz#7d60136e15531991209216fe8a1e62bfeb332aee" + integrity sha512-qp0oXxJaP8HN+sZ3/2aLpZdzE3EafaQgKIYoTvTmF4nCdC+ie3+YvMw66rDWX7CT+MG24ln+1fo/hbr0DLFixQ== + dependencies: + "@aws-amplify/graphql-auth-transformer" "4.1.6" + "@aws-amplify/graphql-conversation-transformer" "0.6.0" + "@aws-amplify/graphql-default-value-transformer" "3.1.3" + "@aws-amplify/graphql-function-transformer" "3.1.5" + "@aws-amplify/graphql-generation-transformer" "0.2.6" + "@aws-amplify/graphql-http-transformer" "3.0.8" + "@aws-amplify/graphql-index-transformer" "3.0.8" + "@aws-amplify/graphql-maps-to-transformer" "4.0.8" + "@aws-amplify/graphql-model-transformer" "3.1.0" + "@aws-amplify/graphql-predictions-transformer" "3.0.8" + "@aws-amplify/graphql-relational-transformer" "3.1.0" + "@aws-amplify/graphql-searchable-transformer" "3.0.8" + "@aws-amplify/graphql-sql-transformer" "0.4.8" + "@aws-amplify/graphql-transformer-core" "3.3.0" + "@aws-amplify/graphql-transformer-interfaces" "4.2.0" "@aws-amplify/graphql-types-generator@3.6.0", "@aws-amplify/graphql-types-generator@^3.6.0": version "3.6.0" @@ -1106,16 +1263,17 @@ source-map-support "^0.5.16" yargs "^15.1.0" -"@aws-amplify/model-generator@^1.0.5": - version "1.0.6" - resolved "https://registry.npmjs.org/@aws-amplify/model-generator/-/model-generator-1.0.6.tgz#852abb99af92f0ff0ace49d212c7d4f08a31e370" - integrity sha512-rFKjvEL+k48e0F8iAVvblAFv4GKkg/xNgat34mH4B06V47ekgP4pLEOUkSA1jPMIEpABxP07ayCiLbdqoYglzg== +"@aws-amplify/model-generator@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@aws-amplify/model-generator/-/model-generator-1.0.9.tgz#492b9aebcc4fe9ed9229f977d2a0318761ce6777" + integrity sha512-ko8I/5gymhk2/p7HgsoFzETsuHw73BQ9uu2QQGQ2fx3exlgfvlBZIR0KqVz1918dGvLdSk+BchjHMzWDW7H0Fw== dependencies: "@aws-amplify/backend-output-schemas" "^1.1.0" - "@aws-amplify/deployed-backend-client" "^1.3.0" - "@aws-amplify/graphql-generator" "^0.4.0" + "@aws-amplify/deployed-backend-client" "^1.4.1" + "@aws-amplify/graphql-generator" "^0.5.1" "@aws-amplify/graphql-types-generator" "^3.6.0" "@aws-amplify/platform-core" "^1.0.5" + "@aws-amplify/plugin-types" "^1.4.0" "@aws-sdk/client-appsync" "^3.624.0" "@aws-sdk/client-s3" "^3.624.0" "@aws-sdk/credential-providers" "^3.624.0" @@ -1130,26 +1288,16 @@ lodash "^4.17.21" tslib "^2.5.0" -"@aws-amplify/platform-core@^0.2.0": - version "0.2.2" - resolved "https://registry.npmjs.org/@aws-amplify/platform-core/-/platform-core-0.2.2.tgz#d4e5d0c9680956d768a77fc690e95c94399e170b" - integrity sha512-STqVi20FJAJoii7H3LGM/KDMuesPrDTI1sO7aj+MmUNzIWLaE9SSDkFpuFKHt7zDdMvX33xW6qB4rcRUOAUxCw== - dependencies: - "@aws-amplify/plugin-types" "^0.4.0" - "@aws-sdk/client-sts" "3.445.0" - is-ci "^3.0.1" - uuid "9.0.1" - zod "^3.21.4" - -"@aws-amplify/platform-core@^0.4.3": - version "0.4.4" - resolved "https://registry.npmjs.org/@aws-amplify/platform-core/-/platform-core-0.4.4.tgz#dcd1063e926aa76d5019b6d087913c2cd5882cf0" - integrity sha512-FQb4nScw+30e2G44Fl1SMqe3yGWMtds02Drnpkh+egM3Ofd0//bDRD2uKqDPckVPulyX+g4pAuAq4Z30hwjQCQ== +"@aws-amplify/platform-core@^1.0.0", "@aws-amplify/platform-core@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/platform-core/-/platform-core-1.2.0.tgz#329c7a0fd87b04c9cbfd8dc489ba4516508eea42" + integrity sha512-/bRCU8NxcsSH0BlY/iDFFdmhqdZcPmHg0LCek/swL4XczNmwOMXYqP3wqqA+75PqamRmDSTC5Dj67iZUjw68bw== dependencies: - "@aws-amplify/plugin-types" "^0.8.0" - "@aws-sdk/client-sts" "3.445.0" + "@aws-amplify/plugin-types" "^1.2.1" + "@aws-sdk/client-sts" "^3.624.0" is-ci "^3.0.1" lodash.mergewith "^4.6.2" + semver "^7.6.3" uuid "^9.0.1" zod "^3.22.2" @@ -1166,17 +1314,12 @@ uuid "^9.0.1" zod "^3.22.2" -"@aws-amplify/plugin-types@^0.4.0", "@aws-amplify/plugin-types@^0.4.1": - version "0.4.2" - resolved "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-0.4.2.tgz#b7bc3dd066bfb8635b97cf8e93a3e9192d11556b" - integrity sha512-zJPNzo/hLZ3qnFwOrPk0sQoyIkPlYf0yTvBFvQGsPrramQhFkEsSjcDtr+Pvxp4LYThFCDqZ9ynAdXa/FJkVgg== - -"@aws-amplify/plugin-types@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-0.8.0.tgz#7ab3ca9af4dd51cd489c9a172bc7325db3bf4478" - integrity sha512-38w0dV2dS40uZB4gYa7sc+YnoLtRKdfhHDKpCqSx5ml/rq1PvzEcExiSfrPddC7/ZBLr0IUZH74evVCHzOcPDg== +"@aws-amplify/plugin-types@^1.0.0", "@aws-amplify/plugin-types@^1.2.2", "@aws-amplify/plugin-types@^1.3.1", "@aws-amplify/plugin-types@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@aws-amplify/plugin-types/-/plugin-types-1.4.0.tgz#8cbe0b307989c20f4d38be73cf6dcfd81ce923a6" + integrity sha512-S3ygJcTOAhfZIwYFCM0yazC+0jjv45ynR3OTifgpHt0PminA8l+LcYNQ2fCbsfPXrYGHidLtjzHg4hrB/PBLmA== -"@aws-amplify/plugin-types@^1.0.1", "@aws-amplify/plugin-types@^1.1.1", "@aws-amplify/plugin-types@^1.2.1": +"@aws-amplify/plugin-types@^1.2.1": version "1.2.1" resolved "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-1.2.1.tgz#049fcf424c2c7e65fd5490c4ce7dc740748a2509" integrity sha512-rqsc9F05hO58oVCcdvbkE3zUaS4iKdhm4C3eReWd6NNLfBmfQuoy46CeyHw2GrbKtdxmCckAOU0k6L71sa8nNA== @@ -1242,13 +1385,6 @@ "@aws-sdk/types" "^3.222.0" tslib "^2.6.2" -"@aws-crypto/ie11-detection@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" - integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== - dependencies: - tslib "^1.11.1" - "@aws-crypto/sha1-browser@5.2.0": version "5.2.0" resolved "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" @@ -1261,20 +1397,6 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-crypto/sha256-browser@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" - integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== - dependencies: - "@aws-crypto/ie11-detection" "^3.0.0" - "@aws-crypto/sha256-js" "^3.0.0" - "@aws-crypto/supports-web-crypto" "^3.0.0" - "@aws-crypto/util" "^3.0.0" - "@aws-sdk/types" "^3.222.0" - "@aws-sdk/util-locate-window" "^3.0.0" - "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" - "@aws-crypto/sha256-browser@5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" @@ -1288,15 +1410,6 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" - integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== - dependencies: - "@aws-crypto/util" "^3.0.0" - "@aws-sdk/types" "^3.222.0" - tslib "^1.11.1" - "@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" @@ -1306,13 +1419,6 @@ "@aws-sdk/types" "^3.222.0" tslib "^2.6.2" -"@aws-crypto/supports-web-crypto@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" - integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== - dependencies: - tslib "^1.11.1" - "@aws-crypto/supports-web-crypto@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" @@ -1982,6 +2088,51 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" +"@aws-sdk/client-sso-oidc@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.637.0.tgz#d7e22ce6627c3285bf311e6c9e64c22b99bbd76a" + integrity sha512-27bHALN6Qb6m6KZmPvRieJ/QRlj1lyac/GT2Rn5kJpre8Mpp+yxrtvp3h9PjNBty4lCeFEENfY4dGNSozBuBcw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/credential-provider-node" "3.637.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/client-sso-oidc@3.650.0": version "3.650.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.650.0.tgz#7516b8a2f00ba3b1bdd59aafbbda0ddb66d0ab3f" @@ -2027,48 +2178,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.445.0": - version "3.445.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.445.0.tgz#6ab3aeeb75046c94646a0f242d0e0676bd7f6cce" - integrity sha512-me4LvqNnu6kxi+sW7t0AgMv1Yi64ikas0x2+5jv23o6Csg32w0S0xOjCTKQYahOA5CMFunWvlkFIfxbqs+Uo7w== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.445.0" - "@aws-sdk/middleware-host-header" "3.433.0" - "@aws-sdk/middleware-logger" "3.433.0" - "@aws-sdk/middleware-recursion-detection" "3.433.0" - "@aws-sdk/middleware-user-agent" "3.438.0" - "@aws-sdk/region-config-resolver" "3.433.0" - "@aws-sdk/types" "3.433.0" - "@aws-sdk/util-endpoints" "3.438.0" - "@aws-sdk/util-user-agent-browser" "3.433.0" - "@aws-sdk/util-user-agent-node" "3.437.0" - "@smithy/config-resolver" "^2.0.16" - "@smithy/fetch-http-handler" "^2.2.4" - "@smithy/hash-node" "^2.0.12" - "@smithy/invalid-dependency" "^2.0.12" - "@smithy/middleware-content-length" "^2.0.14" - "@smithy/middleware-endpoint" "^2.1.3" - "@smithy/middleware-retry" "^2.0.18" - "@smithy/middleware-serde" "^2.0.12" - "@smithy/middleware-stack" "^2.0.6" - "@smithy/node-config-provider" "^2.1.3" - "@smithy/node-http-handler" "^2.1.8" - "@smithy/protocol-http" "^3.0.8" - "@smithy/smithy-client" "^2.1.12" - "@smithy/types" "^2.4.0" - "@smithy/url-parser" "^2.0.12" - "@smithy/util-base64" "^2.0.0" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.16" - "@smithy/util-defaults-mode-node" "^2.0.21" - "@smithy/util-endpoints" "^1.0.2" - "@smithy/util-retry" "^2.0.5" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.5.0" - "@aws-sdk/client-sso@3.621.0": version "3.621.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.621.0.tgz#c0eefeb9adcbc6bb7c91c32070404c8c91846825" @@ -2113,6 +2222,50 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" +"@aws-sdk/client-sso@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.637.0.tgz#ae152759a5e1e576e1df6b8f4edaf59796e1758e" + integrity sha512-+KjLvgX5yJYROWo3TQuwBJlHCY0zz9PsLuEolmXQn0BVK1L/m9GteZHtd+rEdAoDGBpE0Xqjy1oz5+SmtsaRUw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/client-sso@3.650.0": version "3.650.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.650.0.tgz#03a02256bef9fa79ebd2791eb24cf950d7d268ea" @@ -2157,52 +2310,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.445.0": - version "3.445.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.445.0.tgz#1286ba3702997ae00cb28eca890116c63a451526" - integrity sha512-ogbdqrS8x9O5BTot826iLnTQ6i4/F5BSi/74gycneCxYmAnYnyUBNOWVnynv6XZiEWyDJQCU2UtMd52aNGW1GA== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.445.0" - "@aws-sdk/credential-provider-node" "3.445.0" - "@aws-sdk/middleware-host-header" "3.433.0" - "@aws-sdk/middleware-logger" "3.433.0" - "@aws-sdk/middleware-recursion-detection" "3.433.0" - "@aws-sdk/middleware-sdk-sts" "3.433.0" - "@aws-sdk/middleware-signing" "3.433.0" - "@aws-sdk/middleware-user-agent" "3.438.0" - "@aws-sdk/region-config-resolver" "3.433.0" - "@aws-sdk/types" "3.433.0" - "@aws-sdk/util-endpoints" "3.438.0" - "@aws-sdk/util-user-agent-browser" "3.433.0" - "@aws-sdk/util-user-agent-node" "3.437.0" - "@smithy/config-resolver" "^2.0.16" - "@smithy/fetch-http-handler" "^2.2.4" - "@smithy/hash-node" "^2.0.12" - "@smithy/invalid-dependency" "^2.0.12" - "@smithy/middleware-content-length" "^2.0.14" - "@smithy/middleware-endpoint" "^2.1.3" - "@smithy/middleware-retry" "^2.0.18" - "@smithy/middleware-serde" "^2.0.12" - "@smithy/middleware-stack" "^2.0.6" - "@smithy/node-config-provider" "^2.1.3" - "@smithy/node-http-handler" "^2.1.8" - "@smithy/protocol-http" "^3.0.8" - "@smithy/smithy-client" "^2.1.12" - "@smithy/types" "^2.4.0" - "@smithy/url-parser" "^2.0.12" - "@smithy/util-base64" "^2.0.0" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.16" - "@smithy/util-defaults-mode-node" "^2.0.21" - "@smithy/util-endpoints" "^1.0.2" - "@smithy/util-retry" "^2.0.5" - "@smithy/util-utf8" "^2.0.0" - fast-xml-parser "4.2.5" - tslib "^2.5.0" - "@aws-sdk/client-sts@3.621.0": version "3.621.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.621.0.tgz#2994f601790893901704c5df56c837e89f279952" @@ -2295,14 +2402,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/core@3.445.0": - version "3.445.0" - resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.445.0.tgz#1df472d976a02533784b6fe606f1cc4d524cbb29" - integrity sha512-6GYLElUG1QTOdmXG8zXa+Ull9IUeSeItKDYHKzHYfIkbsagMfYlf7wm9XIYlatjtgodNfZ3gPHAJfRyPmwKrsg== - dependencies: - "@smithy/smithy-client" "^2.1.12" - tslib "^2.5.0" - "@aws-sdk/core@3.621.0": version "3.621.0" resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.621.0.tgz#e38c56c3ce0c819ca1185eaabcb98412429aaca3" @@ -2318,6 +2417,22 @@ fast-xml-parser "4.4.1" tslib "^2.6.2" +"@aws-sdk/core@3.635.0": + version "3.635.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.635.0.tgz#74b7d0d7fa3aa39f87ea5cf4e6c97d4d84f4ef14" + integrity sha512-i1x/E/sgA+liUE1XJ7rj1dhyXpAKO1UKFUcTTHXok2ARjWTvszHnSXMOsB77aPbmn0fUp1JTx2kHUAZ1LVt5Bg== + dependencies: + "@smithy/core" "^2.4.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/signature-v4" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-middleware" "^3.0.3" + fast-xml-parser "4.4.1" + tslib "^2.6.2" + "@aws-sdk/core@3.649.0": version "3.649.0" resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.649.0.tgz#8c2a375e3c2e937e2f699f38cbbe031882ce99de" @@ -2356,16 +2471,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.433.0.tgz#7cceca1002ba2e79e10a9dfb119442bea7b88e7c" - integrity sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/credential-provider-env@3.620.1": version "3.620.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" @@ -2401,6 +2506,21 @@ "@smithy/util-stream" "^3.1.3" tslib "^2.6.2" +"@aws-sdk/credential-provider-http@3.635.0": + version "3.635.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.635.0.tgz#083439af1336693049958e4b61695e4712b30fd4" + integrity sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-stream" "^3.1.3" + tslib "^2.6.2" + "@aws-sdk/credential-provider-http@3.649.0": version "3.649.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.649.0.tgz#5c7f8556ea79f23435b0b637a96acf7367df9469" @@ -2416,22 +2536,6 @@ "@smithy/util-stream" "^3.1.4" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.445.0": - version "3.445.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.445.0.tgz#103f4ac144b0b93fc42827093a2654cdd179b925" - integrity sha512-R7IYSGjNZ5KKJwQJ2HNPemjpAMWvdce91i8w+/aHfqeGfTXrmYJu99PeGRyyBTKEumBaojyjTRvmO8HzS+/l7g== - dependencies: - "@aws-sdk/credential-provider-env" "3.433.0" - "@aws-sdk/credential-provider-process" "3.433.0" - "@aws-sdk/credential-provider-sso" "3.445.0" - "@aws-sdk/credential-provider-web-identity" "3.433.0" - "@aws-sdk/types" "3.433.0" - "@smithy/credential-provider-imds" "^2.0.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/credential-provider-ini@3.621.0": version "3.621.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.621.0.tgz#bda2365f88fee40e3ae067b08bf484106c339222" @@ -2449,6 +2553,23 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-ini@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.637.0.tgz#dae0d8b05c8b9480da5a92beb4dd244985ecbd70" + integrity sha512-h+PFCWfZ0Q3Dx84SppET/TFpcQHmxFW8/oV9ArEvMilw4EBN+IlxgbL0CnHwjHW64szcmrM0mbebjEfHf4FXmw== + dependencies: + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.635.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.637.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/types" "3.609.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-ini@3.650.0": version "3.650.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.650.0.tgz#4fc98d0caf9c8427a3e6691344cdbe90db0b8fd2" @@ -2466,23 +2587,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.445.0": - version "3.445.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.445.0.tgz#570d0a66c175c2719c417a75fdca4939b7123a4a" - integrity sha512-zI4k4foSjQRKNEsouculRcz7IbLfuqdFxypDLYwn+qPNMqJwWJ7VxOOeBSPUpHFcd7CLSfbHN2JAhQ7M02gPTA== - dependencies: - "@aws-sdk/credential-provider-env" "3.433.0" - "@aws-sdk/credential-provider-ini" "3.445.0" - "@aws-sdk/credential-provider-process" "3.433.0" - "@aws-sdk/credential-provider-sso" "3.445.0" - "@aws-sdk/credential-provider-web-identity" "3.433.0" - "@aws-sdk/types" "3.433.0" - "@smithy/credential-provider-imds" "^2.0.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/credential-provider-node@3.621.0": version "3.621.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.621.0.tgz#9cc5052760a9f9d70d70f12ddbdbf0d59bf13a47" @@ -2501,6 +2605,24 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-node@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.637.0.tgz#0ac6678ab31783adf5b1cf03add5d1da101ea946" + integrity sha512-yoEhoxJJfs7sPVQ6Is939BDQJZpZCoUgKr/ySse4YKOZ24t4VqgHA6+wV7rYh+7IW24Rd91UTvEzSuHYTlxlNA== + dependencies: + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.635.0" + "@aws-sdk/credential-provider-ini" "3.637.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.637.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/types" "3.609.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-node@3.650.0": version "3.650.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.650.0.tgz#6a4d0793997976b9892600f130770913ae089cf0" @@ -2519,17 +2641,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.433.0.tgz#dd51c92480ed620e4c3f989852ee408ab1209d59" - integrity sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/credential-provider-process@3.620.1": version "3.620.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" @@ -2552,19 +2663,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.445.0": - version "3.445.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.445.0.tgz#1ca6a0ec43b766039d78e5ac91e80fad226b5288" - integrity sha512-gJz7kAiDecdhtApgXnxfZsXKsww8BnifDF9MAx9Dr4X6no47qYsCCS3XPuEyRiF9VebXvHOH0H260Zp3bVyniQ== - dependencies: - "@aws-sdk/client-sso" "3.445.0" - "@aws-sdk/token-providers" "3.438.0" - "@aws-sdk/types" "3.433.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/credential-provider-sso@3.621.0": version "3.621.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.621.0.tgz#710f413708cb372f9f94e8eb9726cf263ffd83e3" @@ -2578,6 +2676,19 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-sso@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.637.0.tgz#13acf77579df026e89ced33501489defd06a0518" + integrity sha512-Mvz+h+e62/tl+dVikLafhv+qkZJ9RUb8l2YN/LeKMWkxQylPT83CPk9aimVhCV89zth1zpREArl97+3xsfgQvA== + dependencies: + "@aws-sdk/client-sso" "3.637.0" + "@aws-sdk/token-providers" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-sso@3.650.0": version "3.650.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.650.0.tgz#fc0d727730c44e481f66a32eb0492d04dc0dcac9" @@ -2591,16 +2702,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.433.0.tgz#32403ba9cc47d3c46500f3c8e5e0041d20e4dbe8" - integrity sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/credential-provider-web-identity@3.621.0": version "3.621.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" @@ -2722,16 +2823,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.433.0.tgz#3b6687ee4021c2b56c96cff61b45a33fb762b1c7" - integrity sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/protocol-http" "^3.0.8" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/middleware-host-header@3.620.0": version "3.620.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" @@ -2761,15 +2852,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.433.0.tgz#fcd4e31a8f134861cd519477b959c218a3600186" - integrity sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/middleware-logger@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" @@ -2788,16 +2870,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.433.0.tgz#5b4b7878ea46c70f507c9ea7c30ad0e5ee4ae6bf" - integrity sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/protocol-http" "^3.0.8" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/middleware-recursion-detection@3.620.0": version "3.620.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" @@ -2838,29 +2910,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-sts@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.433.0.tgz#9b30f17a922ecc5fd46b93f1edcd20d7146b814f" - integrity sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA== - dependencies: - "@aws-sdk/middleware-signing" "3.433.0" - "@aws-sdk/types" "3.433.0" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-signing@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.433.0.tgz#670557ace5b97729dbabb6a991815e44eb0ef03b" - integrity sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/protocol-http" "^3.0.8" - "@smithy/signature-v4" "^2.0.0" - "@smithy/types" "^2.4.0" - "@smithy/util-middleware" "^2.0.5" - tslib "^2.5.0" - "@aws-sdk/middleware-signing@3.620.0": version "3.620.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.620.0.tgz#8aface959d610732b0a5ede6f2c48119b33c4f3f" @@ -2883,17 +2932,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.438.0": - version "3.438.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.438.0.tgz#a1165134d5b95e1fbeb841740084b3a43dead18a" - integrity sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw== - dependencies: - "@aws-sdk/types" "3.433.0" - "@aws-sdk/util-endpoints" "3.438.0" - "@smithy/protocol-http" "^3.0.8" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/middleware-user-agent@3.620.0": version "3.620.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.620.0.tgz#1fe3104f04f576a942cf0469bfbd73c38eef3d9e" @@ -2905,6 +2943,17 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@aws-sdk/middleware-user-agent@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.637.0.tgz#2b00de72b00953a477bcc02a68d8cbb5e9670c44" + integrity sha512-EYo0NE9/da/OY8STDsK2LvM4kNa79DBsf4YVtaG4P5pZ615IeFsD8xOHZeuJmUrSMlVQ8ywPRX7WMucUybsKug== + dependencies: + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + "@aws-sdk/middleware-user-agent@3.649.0": version "3.649.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.649.0.tgz#16be52850fd754797aeb0633232b41fd1504dd89" @@ -2933,17 +2982,6 @@ "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.433.0.tgz#37eb5f40db8af7ba9361aeb28c62b45421e780f0" - integrity sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg== - dependencies: - "@smithy/node-config-provider" "^2.1.3" - "@smithy/types" "^2.4.0" - "@smithy/util-config-provider" "^2.0.0" - "@smithy/util-middleware" "^2.0.5" - tslib "^2.5.0" - "@aws-sdk/region-config-resolver@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" @@ -2980,49 +3018,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.438.0": - version "3.438.0" - resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.438.0.tgz#e91baa37c9c78cb5b21cae96a12e7e1705c931d3" - integrity sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/middleware-host-header" "3.433.0" - "@aws-sdk/middleware-logger" "3.433.0" - "@aws-sdk/middleware-recursion-detection" "3.433.0" - "@aws-sdk/middleware-user-agent" "3.438.0" - "@aws-sdk/region-config-resolver" "3.433.0" - "@aws-sdk/types" "3.433.0" - "@aws-sdk/util-endpoints" "3.438.0" - "@aws-sdk/util-user-agent-browser" "3.433.0" - "@aws-sdk/util-user-agent-node" "3.437.0" - "@smithy/config-resolver" "^2.0.16" - "@smithy/fetch-http-handler" "^2.2.4" - "@smithy/hash-node" "^2.0.12" - "@smithy/invalid-dependency" "^2.0.12" - "@smithy/middleware-content-length" "^2.0.14" - "@smithy/middleware-endpoint" "^2.1.3" - "@smithy/middleware-retry" "^2.0.18" - "@smithy/middleware-serde" "^2.0.12" - "@smithy/middleware-stack" "^2.0.6" - "@smithy/node-config-provider" "^2.1.3" - "@smithy/node-http-handler" "^2.1.8" - "@smithy/property-provider" "^2.0.0" - "@smithy/protocol-http" "^3.0.8" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/smithy-client" "^2.1.12" - "@smithy/types" "^2.4.0" - "@smithy/url-parser" "^2.0.12" - "@smithy/util-base64" "^2.0.0" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.16" - "@smithy/util-defaults-mode-node" "^2.0.21" - "@smithy/util-endpoints" "^1.0.2" - "@smithy/util-retry" "^2.0.5" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.5.0" - "@aws-sdk/token-providers@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" @@ -3061,14 +3056,6 @@ "@smithy/types" "^2.2.2" tslib "^2.5.0" -"@aws-sdk/types@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.433.0.tgz#0f94eae2a4a3525ca872c9ab04e143c01806d755" - integrity sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA== - dependencies: - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/types@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" @@ -3099,15 +3086,6 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.438.0": - version "3.438.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.438.0.tgz#fe79a0ad87fc201c8ecb422f6f040bd300c98df9" - integrity sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/util-endpoints" "^1.0.2" - tslib "^2.5.0" - "@aws-sdk/util-endpoints@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.614.0.tgz#6564b0ffd7dc3728221e9f9821f5aab1cc58468e" @@ -3118,6 +3096,16 @@ "@smithy/util-endpoints" "^2.0.5" tslib "^2.6.2" +"@aws-sdk/util-endpoints@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.637.0.tgz#e20bcb69028039fdbc06e98a3028c7f8d8e8adaa" + integrity sha512-pAqOKUHeVWHEXXDIp/qoMk/6jyxIb6GGjnK1/f8dKHtKIEs4tKsnnL563gceEvdad53OPXIt86uoevCcCzmBnw== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + "@smithy/util-endpoints" "^2.0.5" + tslib "^2.6.2" + "@aws-sdk/util-endpoints@3.649.0": version "3.649.0" resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.649.0.tgz#0f359a87ddbe8a4dbce11a8f7f9e295a3b9e6612" @@ -3145,16 +3133,6 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-user-agent-browser@3.433.0": - version "3.433.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.433.0.tgz#b5ed0c0cca0db34a2c1c2ffc1b65e7cdd8dc88ff" - integrity sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/types" "^2.4.0" - bowser "^2.11.0" - tslib "^2.5.0" - "@aws-sdk/util-user-agent-browser@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" @@ -3175,16 +3153,6 @@ bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.437.0": - version "3.437.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.437.0.tgz#f77729854ddf049ccaba8bae3d8fa279812b4716" - integrity sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA== - dependencies: - "@aws-sdk/types" "3.433.0" - "@smithy/node-config-provider" "^2.1.3" - "@smithy/types" "^2.4.0" - tslib "^2.5.0" - "@aws-sdk/util-user-agent-node@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" @@ -5598,6 +5566,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.18.3": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.20.0": version "7.23.2" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" @@ -8441,16 +8416,8 @@ resolved "https://registry.npmjs.org/@size-limit/webpack/-/webpack-11.1.5.tgz#02615fa6d5bb48cf5bbe2725dec7db260f906945" integrity sha512-h4uJINq5/Y8qJ2oiATg4SGDgszn07b4TFWWT/w58OGt2+avrLSWgUfVM+ghkhplzKWLJK/UtvcqTg6ym2XnU9w== dependencies: - nanoid "^5.0.7" - webpack "^5.94.0" - -"@smithy/abort-controller@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35" - integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw== - dependencies: - "@smithy/types" "^2.12.0" - tslib "^2.6.2" + nanoid "^5.0.7" + webpack "^5.94.0" "@smithy/abort-controller@^3.1.1": version "3.1.1" @@ -8468,6 +8435,14 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" +"@smithy/abort-controller@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.6.tgz#d9de97b85ca277df6ffb9ee7cd83d5da793ee6de" + integrity sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ== + dependencies: + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader-native@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" @@ -8483,15 +8458,15 @@ dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^2.0.16", "@smithy/config-resolver@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757" - integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA== +"@smithy/config-resolver@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.10.tgz#d9529d9893e5fae1f14cb1ffd55517feb6d7e50f" + integrity sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw== dependencies: - "@smithy/node-config-provider" "^2.3.0" - "@smithy/types" "^2.12.0" - "@smithy/util-config-provider" "^2.3.0" - "@smithy/util-middleware" "^2.2.0" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/types" "^3.6.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.8" tslib "^2.6.2" "@smithy/config-resolver@^3.0.5": @@ -8530,6 +8505,20 @@ "@smithy/util-middleware" "^3.0.3" tslib "^2.6.2" +"@smithy/core@^2.4.0", "@smithy/core@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.5.1.tgz#7f635b76778afca845bcb401d36f22fa37712f15" + integrity sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg== + dependencies: + "@smithy/middleware-serde" "^3.0.8" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-middleware" "^3.0.8" + "@smithy/util-stream" "^3.2.1" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@smithy/core@^2.4.1": version "2.4.1" resolved "https://registry.npmjs.org/@smithy/core/-/core-2.4.1.tgz#6694d79ba6e4a185a0baa731ba6584420291521e" @@ -8546,28 +8535,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^2.0.0": - version "2.0.5" - resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.5.tgz#59e6f8d30beed9e966d418f47108bb4da371bbae" - integrity sha512-KFcf/e0meFkQNyteJ65f1G19sgUEY1e5zL7hyAEUPz2SEfBmC9B37WyRq87G3MEEsvmAWwCRu7nFFYUKtR3svQ== - dependencies: - "@smithy/node-config-provider" "^2.0.5" - "@smithy/property-provider" "^2.0.5" - "@smithy/types" "^2.2.2" - "@smithy/url-parser" "^2.0.5" - tslib "^2.5.0" - -"@smithy/credential-provider-imds@^2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166" - integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w== - dependencies: - "@smithy/node-config-provider" "^2.3.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - tslib "^2.6.2" - "@smithy/credential-provider-imds@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" @@ -8590,6 +8557,17 @@ "@smithy/url-parser" "^3.0.4" tslib "^2.6.2" +"@smithy/credential-provider-imds@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.5.tgz#dbfd849a4a7ebd68519cd9fc35f78d091e126d0a" + integrity sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg== + dependencies: + "@smithy/node-config-provider" "^3.1.9" + "@smithy/property-provider" "^3.1.8" + "@smithy/types" "^3.6.0" + "@smithy/url-parser" "^3.0.8" + tslib "^2.6.2" + "@smithy/eventstream-codec@^2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.5.tgz#771f50657f1958db3e19b9f2726d62e2e0672546" @@ -8630,6 +8608,16 @@ "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" +"@smithy/eventstream-codec@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.7.tgz#5bfaffbc83ae374ffd85a755a8200ba3c7aed016" + integrity sha512-kVSXScIiRN7q+s1x7BrQtZ1Aa9hvvP9FeCqCdBxv37GimIHgBCOnZ5Ip80HLt0DhnAKpiobFdGqTFgbaJNrazA== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^3.6.0" + "@smithy/util-hex-encoding" "^3.0.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-browser@^2.0.4": version "2.0.5" resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.5.tgz#5f4d3d78a9fcb0a5a6f5b20f69141c8cc6b0ef6b" @@ -8648,6 +8636,15 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/eventstream-serde-browser@^3.0.6": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.11.tgz#019f3d1016d893b65ef6efec8c5e2fa925d0ac3d" + integrity sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.10" + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-browser@^3.0.7": version "3.0.7" resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.7.tgz#0448ada47cf7e99abdfefe980090ea2b8abbff8d" @@ -8682,6 +8679,15 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/eventstream-serde-node@^3.0.5": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.10.tgz#da40b872001390bb47807186855faba8172b3b5b" + integrity sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.10" + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-node@^3.0.6": version "3.0.6" resolved "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.6.tgz#d04c31f8fe4aab29f2edbff8ea6519fe50405e43" @@ -8700,6 +8706,15 @@ "@smithy/types" "^2.2.2" tslib "^2.5.0" +"@smithy/eventstream-serde-universal@^3.0.10", "@smithy/eventstream-serde-universal@^3.0.5": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.10.tgz#b24e66fec9ec003eb0a1d6733fa22ded43129281" + integrity sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww== + dependencies: + "@smithy/eventstream-codec" "^3.1.7" + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-universal@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.4.tgz#6754de5b94bdc286d8ef1d6bcf22d80f6ab68f30" @@ -8729,17 +8744,6 @@ "@smithy/util-base64" "^2.0.0" tslib "^2.5.0" -"@smithy/fetch-http-handler@^2.2.4", "@smithy/fetch-http-handler@^2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac" - integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw== - dependencies: - "@smithy/protocol-http" "^3.3.0" - "@smithy/querystring-builder" "^2.2.0" - "@smithy/types" "^2.12.0" - "@smithy/util-base64" "^2.3.0" - tslib "^2.6.2" - "@smithy/fetch-http-handler@^3.2.4": version "3.2.4" resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" @@ -8762,6 +8766,17 @@ "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" +"@smithy/fetch-http-handler@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-4.0.0.tgz#3763cb5178745ed630ed5bc3beb6328abdc31f36" + integrity sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g== + dependencies: + "@smithy/protocol-http" "^4.1.5" + "@smithy/querystring-builder" "^3.0.8" + "@smithy/types" "^3.6.0" + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + "@smithy/hash-blob-browser@^3.1.3": version "3.1.3" resolved "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.3.tgz#6649bf55590fc0489e0d91d310017b8359c0d7ae" @@ -8772,16 +8787,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/hash-node@^2.0.12": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc" - integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g== - dependencies: - "@smithy/types" "^2.12.0" - "@smithy/util-buffer-from" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" - tslib "^2.6.2" - "@smithy/hash-node@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" @@ -8811,14 +8816,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^2.0.12": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0" - integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q== - dependencies: - "@smithy/types" "^2.12.0" - tslib "^2.6.2" - "@smithy/invalid-dependency@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" @@ -8849,13 +8846,6 @@ dependencies: tslib "^2.5.0" -"@smithy/is-array-buffer@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" - integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== - dependencies: - tslib "^2.6.2" - "@smithy/is-array-buffer@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a" @@ -8881,15 +8871,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^2.0.14": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a" - integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ== - dependencies: - "@smithy/protocol-http" "^3.3.0" - "@smithy/types" "^2.12.0" - tslib "^2.6.2" - "@smithy/middleware-content-length@^3.0.5": version "3.0.5" resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" @@ -8908,19 +8889,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^2.1.3", "@smithy/middleware-endpoint@^2.5.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz#1333c58304aff4d843e8ef4b85c8cb88975dd5ad" - integrity sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ== - dependencies: - "@smithy/middleware-serde" "^2.3.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-middleware" "^2.2.0" - tslib "^2.6.2" - "@smithy/middleware-endpoint@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" @@ -8947,20 +8915,19 @@ "@smithy/util-middleware" "^3.0.4" tslib "^2.6.2" -"@smithy/middleware-retry@^2.0.18": - version "2.3.1" - resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz#d6fdce94f2f826642c01b4448e97a509c4556ede" - integrity sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA== - dependencies: - "@smithy/node-config-provider" "^2.3.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/service-error-classification" "^2.1.5" - "@smithy/smithy-client" "^2.5.1" - "@smithy/types" "^2.12.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" +"@smithy/middleware-endpoint@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.1.tgz#b9ee42d29d8f3a266883d293c4d6a586f7b60979" + integrity sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA== + dependencies: + "@smithy/core" "^2.5.1" + "@smithy/middleware-serde" "^3.0.8" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/shared-ini-file-loader" "^3.1.9" + "@smithy/types" "^3.6.0" + "@smithy/url-parser" "^3.0.8" + "@smithy/util-middleware" "^3.0.8" tslib "^2.6.2" - uuid "^9.0.1" "@smithy/middleware-retry@^3.0.13": version "3.0.13" @@ -8977,6 +8944,21 @@ tslib "^2.6.2" uuid "^9.0.1" +"@smithy/middleware-retry@^3.0.15": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.25.tgz#a6b1081fc1a0991ffe1d15e567e76198af01f37c" + integrity sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg== + dependencies: + "@smithy/node-config-provider" "^3.1.9" + "@smithy/protocol-http" "^4.1.5" + "@smithy/service-error-classification" "^3.0.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" + "@smithy/util-middleware" "^3.0.8" + "@smithy/util-retry" "^3.0.8" + tslib "^2.6.2" + uuid "^9.0.1" + "@smithy/middleware-retry@^3.0.16": version "3.0.16" resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.16.tgz#aca6099a2e73c9be0c7a49eccbca5d1d73eaadf3" @@ -8992,14 +8974,6 @@ tslib "^2.6.2" uuid "^9.0.1" -"@smithy/middleware-serde@^2.0.12", "@smithy/middleware-serde@^2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13" - integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q== - dependencies: - "@smithy/types" "^2.12.0" - tslib "^2.6.2" - "@smithy/middleware-serde@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" @@ -9016,12 +8990,12 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/middleware-stack@^2.0.6", "@smithy/middleware-stack@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f" - integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA== +"@smithy/middleware-serde@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.8.tgz#a46d10dba3c395be0d28610d55c89ff8c07c0cd3" + integrity sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA== dependencies: - "@smithy/types" "^2.12.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/middleware-stack@^3.0.3": @@ -9040,24 +9014,12 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/node-config-provider@^2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.0.5.tgz#239a6281e1d0bc2a0dd8fdab7826bacd25dfbf00" - integrity sha512-LRtjV9WkhONe2lVy+ipB/l1GX60ybzBmFyeRUoLUXWKdnZ3o81jsnbKzMK8hKq8eFSWPk+Lmyx6ZzCQabGeLxg== - dependencies: - "@smithy/property-provider" "^2.0.5" - "@smithy/shared-ini-file-loader" "^2.0.5" - "@smithy/types" "^2.2.2" - tslib "^2.5.0" - -"@smithy/node-config-provider@^2.1.3", "@smithy/node-config-provider@^2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922" - integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg== +"@smithy/middleware-stack@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.8.tgz#f1c7d9c7fe8280c6081141c88f4a76875da1fc43" + integrity sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA== dependencies: - "@smithy/property-provider" "^2.2.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/node-config-provider@^3.1.4": @@ -9080,15 +9042,14 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/node-http-handler@^2.1.8", "@smithy/node-http-handler@^2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de" - integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA== +"@smithy/node-config-provider@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz#d27ba8e4753f1941c24ed0af824dbc6c492f510a" + integrity sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew== dependencies: - "@smithy/abort-controller" "^2.2.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/querystring-builder" "^2.2.0" - "@smithy/types" "^2.12.0" + "@smithy/property-provider" "^3.1.8" + "@smithy/shared-ini-file-loader" "^3.1.9" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/node-http-handler@^3.1.4": @@ -9113,20 +9074,15 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/property-provider@^2.0.0", "@smithy/property-provider@^2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.5.tgz#7cc88bc56706a4758076754a71c6a9ebf5daa8a7" - integrity sha512-cAFSUhX6aiHcmpWfrCLKvwBtgN1F6A0N8qY/8yeSi0LRLmhGqsY1/YTxFE185MCVzYbqBGXVr9TBv4RUcIV4rA== - dependencies: - "@smithy/types" "^2.2.2" - tslib "^2.5.0" - -"@smithy/property-provider@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0" - integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg== +"@smithy/node-http-handler@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.2.5.tgz#ad9d9ba1528bf0d4a655135e978ecc14b3df26a2" + integrity sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w== dependencies: - "@smithy/types" "^2.12.0" + "@smithy/abort-controller" "^3.1.6" + "@smithy/protocol-http" "^4.1.5" + "@smithy/querystring-builder" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/property-provider@^3.1.3": @@ -9145,6 +9101,14 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" +"@smithy/property-provider@^3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.8.tgz#b1c5a3949effbb9772785ad7ddc5b4b235b10fbe" + integrity sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA== + dependencies: + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/protocol-http@^3.0.3", "@smithy/protocol-http@^3.0.5": version "3.0.5" resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.0.5.tgz#a143bf54382c6f7c8cdf2c67d3be101a9b7b486c" @@ -9153,14 +9117,6 @@ "@smithy/types" "^2.3.3" tslib "^2.5.0" -"@smithy/protocol-http@^3.0.8", "@smithy/protocol-http@^3.3.0": - version "3.3.0" - resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090" - integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ== - dependencies: - "@smithy/types" "^2.12.0" - tslib "^2.6.2" - "@smithy/protocol-http@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" @@ -9177,6 +9133,14 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" +"@smithy/protocol-http@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.5.tgz#a1f397440f299b6a5abeed6866957fecb1bf5013" + integrity sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg== + dependencies: + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/querystring-builder@^2.0.9": version "2.0.9" resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.0.9.tgz#97e3731b6e6fef533ab0b063b0007f6a545c0291" @@ -9186,15 +9150,6 @@ "@smithy/util-uri-escape" "^2.0.0" tslib "^2.5.0" -"@smithy/querystring-builder@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef" - integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A== - dependencies: - "@smithy/types" "^2.12.0" - "@smithy/util-uri-escape" "^2.2.0" - tslib "^2.6.2" - "@smithy/querystring-builder@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" @@ -9213,20 +9168,13 @@ "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" -"@smithy/querystring-parser@^2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.5.tgz#aec6733ed4497402634978e7026d0d00661594d6" - integrity sha512-C2stCULH0r54KBksv3AWcN8CLS3u9+WsEW8nBrvctrJ5rQTNa1waHkffpVaiKvcW2nP0aIMBPCobD/kYf/q9mA== - dependencies: - "@smithy/types" "^2.2.2" - tslib "^2.5.0" - -"@smithy/querystring-parser@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79" - integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA== +"@smithy/querystring-builder@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.8.tgz#0d845be53aa624771c518d1412881236ce12ed4f" + integrity sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA== dependencies: - "@smithy/types" "^2.12.0" + "@smithy/types" "^3.6.0" + "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" "@smithy/querystring-parser@^3.0.3": @@ -9245,12 +9193,13 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/service-error-classification@^2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005" - integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ== +"@smithy/querystring-parser@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.8.tgz#057a8e2d301eea8eac7071923100ba38a824d7df" + integrity sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg== dependencies: - "@smithy/types" "^2.12.0" + "@smithy/types" "^3.6.0" + tslib "^2.6.2" "@smithy/service-error-classification@^3.0.3": version "3.0.3" @@ -9266,21 +9215,12 @@ dependencies: "@smithy/types" "^3.4.0" -"@smithy/shared-ini-file-loader@^2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.0.5.tgz#c2b28b499f2b9928e892a80fcdeb259b2938475c" - integrity sha512-Mvtk6FwMtfbKRC4YuSsIqRYp9WTxsSUJVVo2djgyhcacKGMqicHDWSAmgy3sDrKv+G/G6xTZCPwm6pJARtdxVg== - dependencies: - "@smithy/types" "^2.2.2" - tslib "^2.5.0" - -"@smithy/shared-ini-file-loader@^2.0.6", "@smithy/shared-ini-file-loader@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947" - integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA== +"@smithy/service-error-classification@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.8.tgz#265ad2573b972f6c7bdd1ad6c5155a88aeeea1c4" + integrity sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g== dependencies: - "@smithy/types" "^2.12.0" - tslib "^2.6.2" + "@smithy/types" "^3.6.0" "@smithy/shared-ini-file-loader@^3.1.4": version "3.1.4" @@ -9298,6 +9238,14 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" +"@smithy/shared-ini-file-loader@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz#1b77852b5bb176445e1d80333fa3f739313a4928" + integrity sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA== + dependencies: + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/signature-v4@2.1.4": version "2.1.4" resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.1.4.tgz#e83b426ab4138cbb06c755c14a152ed514e1d052" @@ -9312,20 +9260,6 @@ "@smithy/util-utf8" "^2.2.0" tslib "^2.5.0" -"@smithy/signature-v4@^2.0.0": - version "2.0.5" - resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.5.tgz#48fbc1a25f2f44bbd9217927518c8fe439419f4d" - integrity sha512-ABIzXmUDXK4n2c9cXjQLELgH2RdtABpYKT+U131e2I6RbCypFZmxIHmIBufJzU2kdMCQ3+thBGDWorAITFW04A== - dependencies: - "@smithy/eventstream-codec" "^2.0.5" - "@smithy/is-array-buffer" "^2.0.0" - "@smithy/types" "^2.2.2" - "@smithy/util-hex-encoding" "^2.0.0" - "@smithy/util-middleware" "^2.0.0" - "@smithy/util-uri-escape" "^2.0.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.5.0" - "@smithy/signature-v4@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" @@ -9354,18 +9288,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^2.1.12", "@smithy/smithy-client@^2.5.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.1.tgz#0fd2efff09dc65500d260e590f7541f8a387eae3" - integrity sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ== - dependencies: - "@smithy/middleware-endpoint" "^2.5.1" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/types" "^2.12.0" - "@smithy/util-stream" "^2.2.0" - tslib "^2.6.2" - "@smithy/smithy-client@^3.1.11": version "3.1.11" resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.11.tgz#f12a7a0acaa7db3ead488ddf12ef4681daec11a7" @@ -9378,6 +9300,19 @@ "@smithy/util-stream" "^3.1.3" tslib "^2.6.2" +"@smithy/smithy-client@^3.2.0", "@smithy/smithy-client@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.4.2.tgz#a6e3ed98330ce170cf482e765bd0c21e0fde8ae4" + integrity sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA== + dependencies: + "@smithy/core" "^2.5.1" + "@smithy/middleware-endpoint" "^3.2.1" + "@smithy/middleware-stack" "^3.0.8" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" + "@smithy/util-stream" "^3.2.1" + tslib "^2.6.2" + "@smithy/smithy-client@^3.3.0": version "3.3.0" resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.3.0.tgz#ee15e7b5ec150f6048ee2ef0e3751c6ed38900c3" @@ -9404,13 +9339,6 @@ dependencies: tslib "^2.5.0" -"@smithy/types@^2.12.0", "@smithy/types@^2.4.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041" - integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw== - dependencies: - tslib "^2.6.2" - "@smithy/types@^2.2.2": version "2.2.2" resolved "https://registry.npmjs.org/@smithy/types/-/types-2.2.2.tgz#bd8691eb92dd07ac33b83e0e1c45f283502b1bf7" @@ -9446,24 +9374,13 @@ dependencies: tslib "^2.6.2" -"@smithy/url-parser@^2.0.12", "@smithy/url-parser@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0" - integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ== +"@smithy/types@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.6.0.tgz#03a52bfd62ee4b7b2a1842c8ae3ada7a0a5ff3a4" + integrity sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w== dependencies: - "@smithy/querystring-parser" "^2.2.0" - "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/url-parser@^2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.5.tgz#09fa623076bb5861892930628bf368d5c79fd7d9" - integrity sha512-OdMBvZhpckQSkugCXNJQCvqJ71wE7Ftxce92UOQLQ9pwF6hoS5PLL7wEfpnuEXtStzBqJYkzu1C1ZfjuFGOXAA== - dependencies: - "@smithy/querystring-parser" "^2.0.5" - "@smithy/types" "^2.2.2" - tslib "^2.5.0" - "@smithy/url-parser@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" @@ -9482,6 +9399,15 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" +"@smithy/url-parser@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.8.tgz#8057d91d55ba8df97d74576e000f927b42da9e18" + integrity sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg== + dependencies: + "@smithy/querystring-parser" "^3.0.8" + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/util-base64@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.0.0.tgz#1beeabfb155471d1d41c8d0603be1351f883c444" @@ -9490,15 +9416,6 @@ "@smithy/util-buffer-from" "^2.0.0" tslib "^2.5.0" -"@smithy/util-base64@^2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2" - integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw== - dependencies: - "@smithy/util-buffer-from" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" - tslib "^2.6.2" - "@smithy/util-base64@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017" @@ -9508,13 +9425,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/util-body-length-browser@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz#5447853003b4c73da3bc5f3c5e82c21d592d1650" - integrity sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg== - dependencies: - tslib "^2.5.0" - "@smithy/util-body-length-browser@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded" @@ -9522,13 +9432,6 @@ dependencies: tslib "^2.6.2" -"@smithy/util-body-length-node@^2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz#313a5f7c5017947baf5fa018bfc22628904bbcfa" - integrity sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw== - dependencies: - tslib "^2.5.0" - "@smithy/util-body-length-node@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d" @@ -9552,14 +9455,6 @@ "@smithy/is-array-buffer" "^2.1.1" tslib "^2.5.0" -"@smithy/util-buffer-from@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" - integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== - dependencies: - "@smithy/is-array-buffer" "^2.2.0" - tslib "^2.6.2" - "@smithy/util-buffer-from@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3" @@ -9568,20 +9463,6 @@ "@smithy/is-array-buffer" "^3.0.0" tslib "^2.6.2" -"@smithy/util-config-provider@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz#4dd6a793605559d94267312fd06d0f58784b4c38" - integrity sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg== - dependencies: - tslib "^2.5.0" - -"@smithy/util-config-provider@^2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943" - integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ== - dependencies: - tslib "^2.6.2" - "@smithy/util-config-provider@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe" @@ -9589,17 +9470,6 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^2.0.16": - version "2.2.1" - resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz#9db31416daf575d2963c502e0528cfe8055f0c4e" - integrity sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw== - dependencies: - "@smithy/property-provider" "^2.2.0" - "@smithy/smithy-client" "^2.5.1" - "@smithy/types" "^2.12.0" - bowser "^2.11.0" - tslib "^2.6.2" - "@smithy/util-defaults-mode-browser@^3.0.13": version "3.0.13" resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.13.tgz#f574bbb89d60f5dcc443f106087d317b370634d0" @@ -9611,6 +9481,17 @@ bowser "^2.11.0" tslib "^2.6.2" +"@smithy/util-defaults-mode-browser@^3.0.15": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.25.tgz#ef9b84272d1db23503ff155f9075a4543ab6dab7" + integrity sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA== + dependencies: + "@smithy/property-provider" "^3.1.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" + bowser "^2.11.0" + tslib "^2.6.2" + "@smithy/util-defaults-mode-browser@^3.0.16": version "3.0.16" resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.16.tgz#7d4978a90cee569fdeb6c38c89a09a39371f44d7" @@ -9622,19 +9503,6 @@ bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^2.0.21": - version "2.3.1" - resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz#4613210a3d107aadb3f85bd80cb71c796dd8bf0a" - integrity sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA== - dependencies: - "@smithy/config-resolver" "^2.2.0" - "@smithy/credential-provider-imds" "^2.3.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/smithy-client" "^2.5.1" - "@smithy/types" "^2.12.0" - tslib "^2.6.2" - "@smithy/util-defaults-mode-node@^3.0.13": version "3.0.13" resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.13.tgz#cdd3a08bb5af4d17c2b0a951af9936ce7f3bae93" @@ -9648,6 +9516,19 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/util-defaults-mode-node@^3.0.15": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.25.tgz#c16fe3995c8e90ae318e336178392173aebe1e37" + integrity sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g== + dependencies: + "@smithy/config-resolver" "^3.0.10" + "@smithy/credential-provider-imds" "^3.2.5" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/property-provider" "^3.1.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + "@smithy/util-defaults-mode-node@^3.0.16": version "3.0.16" resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.16.tgz#5747d886720d4f5acdde8fdf8240a6c1bad42f1f" @@ -9661,15 +9542,6 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/util-endpoints@^1.0.2": - version "1.2.0" - resolved "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d" - integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ== - dependencies: - "@smithy/node-config-provider" "^2.3.0" - "@smithy/types" "^2.12.0" - tslib "^2.6.2" - "@smithy/util-endpoints@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" @@ -9702,13 +9574,6 @@ dependencies: tslib "^2.5.0" -"@smithy/util-hex-encoding@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085" - integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ== - dependencies: - tslib "^2.6.2" - "@smithy/util-hex-encoding@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6" @@ -9716,21 +9581,6 @@ dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.0.tgz#706681d4a1686544a2275f68266304233f372c99" - integrity sha512-eCWX4ECuDHn1wuyyDdGdUWnT4OGyIzV0LN1xRttBFMPI9Ff/4heSHVxneyiMtOB//zpXWCha1/SWHJOZstG7kA== - dependencies: - tslib "^2.5.0" - -"@smithy/util-middleware@^2.0.5", "@smithy/util-middleware@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006" - integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw== - dependencies: - "@smithy/types" "^2.12.0" - tslib "^2.6.2" - "@smithy/util-middleware@^2.1.4": version "2.1.4" resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.1.4.tgz#eb5f8d3f3639c1c2ff6fae574353249c174f1c03" @@ -9755,13 +9605,12 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/util-retry@^2.0.5", "@smithy/util-retry@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85" - integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g== +"@smithy/util-middleware@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.8.tgz#372bc7a2845408ad69da039d277fc23c2734d0c6" + integrity sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA== dependencies: - "@smithy/service-error-classification" "^2.1.5" - "@smithy/types" "^2.12.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/util-retry@^3.0.3": @@ -9782,18 +9631,13 @@ "@smithy/types" "^3.4.0" tslib "^2.6.2" -"@smithy/util-stream@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370" - integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA== - dependencies: - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-buffer-from" "^2.2.0" - "@smithy/util-hex-encoding" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" +"@smithy/util-retry@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.8.tgz#9c607c175a4d8a87b5d8ebaf308f6b849e4dc4d0" + integrity sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow== + dependencies: + "@smithy/service-error-classification" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/util-stream@^3.1.3": @@ -9824,6 +9668,20 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" +"@smithy/util-stream@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.2.1.tgz#f3055dc4c8caba8af4e47191ea7e773d0e5a429d" + integrity sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A== + dependencies: + "@smithy/fetch-http-handler" "^4.0.0" + "@smithy/node-http-handler" "^3.2.5" + "@smithy/types" "^3.6.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@smithy/util-uri-escape@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz#19955b1a0f517a87ae77ac729e0e411963dfda95" @@ -9838,13 +9696,6 @@ dependencies: tslib "^2.5.0" -"@smithy/util-uri-escape@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406" - integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA== - dependencies: - tslib "^2.6.2" - "@smithy/util-uri-escape@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54" @@ -9868,14 +9719,6 @@ "@smithy/util-buffer-from" "^2.1.1" tslib "^2.5.0" -"@smithy/util-utf8@^2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" - integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== - dependencies: - "@smithy/util-buffer-from" "^2.2.0" - tslib "^2.6.2" - "@smithy/util-utf8@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a" @@ -16686,7 +16529,7 @@ fast-url-parser@1.1.3: dependencies: punycode "^1.3.2" -fast-xml-parser@4.2.5, fast-xml-parser@4.4.1, fast-xml-parser@^4.0.12, fast-xml-parser@^4.4.1: +fast-xml-parser@4.4.1, fast-xml-parser@^4.0.12, fast-xml-parser@^4.4.1: version "4.5.0" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz#2882b7d01a6825dfdf909638f2de0256351def37" integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== @@ -17456,10 +17299,10 @@ graphql-tag@^2.11.0: dependencies: tslib "^2.1.0" -graphql-transformer-common@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/graphql-transformer-common/-/graphql-transformer-common-5.0.1.tgz#888716059cc6fe54d6414507ac7ff24cbdf26fca" - integrity sha512-WizHb7W5/NsM0qONQ781TcZUFdKSY3fVGy7EYCXT7lTS8TqFtdZ4oK8lEbDKk44O/0UW3hryhArEzpuPFE0suQ== +graphql-transformer-common@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/graphql-transformer-common/-/graphql-transformer-common-5.1.1.tgz#56ecf79d81fdc18d1dec25b6b9d9b0ab768f1156" + integrity sha512-EgYSZwCTvbwPMpn9MOXXFhgwvXWC8KlIWySq2j2sAKnilb/JVj3qqUi8p+M3zRN+2yh+z2MTtES0/pZdD6pthg== dependencies: graphql "^15.5.0" graphql-mapping-template "5.0.1" @@ -18240,7 +18083,7 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^2.0.0, is-buffer@^2.0.5: +is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== @@ -19508,6 +19351,14 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-schema-to-ts@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz#81f3acaf5a34736492f6f5f51870ef9ece1ca853" + integrity sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g== + dependencies: + "@babel/runtime" "^7.18.3" + ts-algebra "^2.0.0" + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -19555,7 +19406,7 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonfile@^6.0.1, jsonfile@^6.1.0: +jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== @@ -26679,6 +26530,11 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" +ts-algebra@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ts-algebra/-/ts-algebra-2.0.0.tgz#4e3e0953878f26518fce7f6bb115064a65388b7a" + integrity sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw== + ts-api-utils@^1.0.1: version "1.0.3" resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" @@ -27445,16 +27301,16 @@ uuid@9.0.0: resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== -uuid@9.0.1, uuid@^9.0.0, uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - uuid@^3.0.1: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^9.0.0, uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + uvu@^0.5.0: version "0.5.6" resolved "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" @@ -28282,7 +28138,7 @@ zod@3.22.4: resolved "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== -zod@^3.21.4, zod@^3.22.2, zod@^3.22.3: +zod@^3.22.2: version "3.23.8" resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==