From 1127e50248670359268fc472e3c8334594d25490 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 17:32:38 +0300 Subject: [PATCH 01/14] [Onboarding] Add starterpacks step (#9007) * add onboarding starterpacks step * tweak starter pack cards * fix web styling * use new API * add screen transitions to onboarding * skip host account * bump limit to 6 * tweak font weight * rm commented out code * fix yarn.lock * limit starter packs experiment to english speakers --- package.json | 4 +- src/lib/statsig/gates.ts | 1 + .../StarterPackCard.tsx | 174 ++ .../StepSuggestedStarterpacks/index.tsx | 131 + src/screens/Onboarding/index.tsx | 43 +- src/screens/Onboarding/state.ts | 74 +- src/screens/StarterPack/StarterPackScreen.tsx | 2 +- ...useOnboardingSuggestedStarterPacksQuery.ts | 49 + .../queries/useSuggestedStarterPacksQuery.ts | 21 +- yarn.lock | 2464 +++++++++-------- 10 files changed, 1688 insertions(+), 1275 deletions(-) create mode 100644 src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx create mode 100644 src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx create mode 100644 src/state/queries/useOnboardingSuggestedStarterPacksQuery.ts diff --git a/package.json b/package.json index 5ebb77f16..b90093514 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "icons:optimize": "svgo -f ./assets/icons" }, "dependencies": { - "@atproto/api": "^0.17.0", + "@atproto/api": "^0.17.1", "@bitdrift/react-native": "^0.6.8", "@braintree/sanitize-url": "^6.0.2", "@bsky.app/alf": "^0.1.5", @@ -220,7 +220,7 @@ "zod": "^3.20.2" }, "devDependencies": { - "@atproto/dev-env": "^0.3.172", + "@atproto/dev-env": "^0.3.181", "@babel/core": "^7.26.0", "@babel/preset-env": "^7.26.0", "@babel/runtime": "^7.26.0", diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index 1f6c84301..10dda8ba3 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -8,6 +8,7 @@ export type Gate = | 'feed_reply_button_open_thread' | 'old_postonboarding' | 'onboarding_add_video_feed' + | 'onboarding_suggested_starterpacks' | 'post_follow_profile_suggested_accounts' | 'remove_show_latest_button' | 'test_gate_1' diff --git a/src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx b/src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx new file mode 100644 index 000000000..28b331dec --- /dev/null +++ b/src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx @@ -0,0 +1,174 @@ +import {useState} from 'react' +import {View} from 'react-native' +import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useQueryClient} from '@tanstack/react-query' + +import {batchedUpdates} from '#/lib/batchedUpdates' +import {isBlockedOrBlocking, isMuted} from '#/lib/moderation/blocked-and-muted' +import {logger} from '#/logger' +import {updateProfileShadow} from '#/state/cache/profile-shadow' +import {getAllListMembers} from '#/state/queries/list-members' +import {useAgent, useSession} from '#/state/session' +import {bulkWriteFollows} from '#/screens/Onboarding/util' +import {AvatarStack} from '#/screens/Search/components/StarterPackCard' +import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {Check_Stroke2_Corner0_Rounded as CheckIcon} from '#/components/icons/Check' +import {Loader} from '#/components/Loader' +import * as Toast from '#/components/Toast' +import {Text} from '#/components/Typography' +import * as bsky from '#/types/bsky' + +const IGNORED_ACCOUNT = 'did:plc:pifkcjimdcfwaxkanzhwxufp' + +export function StarterPackCard({ + view, +}: { + view: AppBskyGraphDefs.StarterPackView +}) { + const t = useTheme() + const {_} = useLingui() + const {currentAccount} = useSession() + const {gtPhone} = useBreakpoints() + const agent = useAgent() + const queryClient = useQueryClient() + const record = view.record + const [isProcessing, setIsProcessing] = useState(false) + const [isFollowingAll, setIsFollowingAll] = useState(false) + + const onFollowAll = async () => { + if (!view.list) return + + setIsProcessing(true) + + let listItems: AppBskyGraphDefs.ListItemView[] = [] + try { + listItems = await getAllListMembers(agent, view.list.uri) + } catch (e) { + setIsProcessing(false) + Toast.show(_(msg`An error occurred while trying to follow all`), { + type: 'error', + }) + logger.error('Failed to get list members for starter pack', { + safeMessage: e, + }) + return + } + + const dids = listItems + .filter( + li => + li.subject.did !== IGNORED_ACCOUNT && + li.subject.did !== currentAccount?.did && + !isBlockedOrBlocking(li.subject) && + !isMuted(li.subject) && + !li.subject.viewer?.following, + ) + .map(li => li.subject.did) + + let followUris: Map + try { + followUris = await bulkWriteFollows(agent, dids) + } catch (e) { + setIsProcessing(false) + Toast.show(_(msg`An error occurred while trying to follow all`), { + type: 'error', + }) + logger.error('Failed to follow all accounts', {safeMessage: e}) + } + + setIsFollowingAll(true) + setIsProcessing(false) + batchedUpdates(() => { + for (let did of dids) { + updateProfileShadow(queryClient, did, { + followingUri: followUris.get(did), + }) + } + }) + Toast.show(_(msg`All accounts have been followed!`), {type: 'success'}) + logger.metric('starterPack:followAll', { + logContext: 'Onboarding', + starterPack: view.uri, + count: dids.length, + }) + } + + if ( + !bsky.dangerousIsType( + record, + AppBskyGraphStarterpack.isRecord, + ) + ) { + return null + } + + const profileCount = gtPhone ? 11 : 8 + const profiles = view.listItemsSample + ?.slice(0, profileCount) + .map(item => item.subject) + + return ( + + + + + + + {record.name} + + + {record.description} + + + + + + ) +} diff --git a/src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx b/src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx new file mode 100644 index 000000000..6d6cb2fad --- /dev/null +++ b/src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx @@ -0,0 +1,131 @@ +import {useCallback, useContext} from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useModerationOpts} from '#/state/preferences/moderation-opts' +import {useOnboardingSuggestedStarterPacksQuery} from '#/state/queries/useOnboardingSuggestedStarterPacksQuery' +import {useOnboardingDispatch} from '#/state/shell' +import {OnboardingControls} from '#/screens/Onboarding/Layout' +import {Context} from '#/screens/Onboarding/state' +import {atoms as a, useBreakpoints} from '#/alf' +import {Admonition} from '#/components/Admonition' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwiseIcon} from '#/components/icons/ArrowRotateCounterClockwise' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' +import {StarterPackCard} from './StarterPackCard' + +export function StepSuggestedStarterpacks() { + const {_} = useLingui() + const {gtMobile} = useBreakpoints() + const moderationOpts = useModerationOpts() + + const {state, dispatch} = useContext(Context) + const onboardDispatch = useOnboardingDispatch() + + const { + data: suggestedStarterPacks, + isLoading, + error, + isRefetching, + refetch, + } = useOnboardingSuggestedStarterPacksQuery({ + enabled: true, + overrideInterests: state.interestsStepResults.selectedInterests, + }) + + const isError = !!error + + const skipOnboarding = useCallback(() => { + onboardDispatch({type: 'finish'}) + dispatch({type: 'finish'}) + }, [onboardDispatch, dispatch]) + + return ( + + + + Suggested for you + + + + + {isLoading || !moderationOpts ? ( + + + + ) : isError ? ( + + + + An error occurred while fetching suggested accounts. + + + + ) : ( + + {suggestedStarterPacks?.starterPacks.map(starterPack => ( + + + + ))} + + )} + + + + {isError ? ( + + + + + ) : ( + + + + )} + + + ) +} diff --git a/src/screens/Onboarding/index.tsx b/src/screens/Onboarding/index.tsx index b587ac785..adf6a3f61 100644 --- a/src/screens/Onboarding/index.tsx +++ b/src/screens/Onboarding/index.tsx @@ -1,7 +1,10 @@ import {useMemo, useReducer} from 'react' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import * as bcp47Match from 'bcp-47-match' +import {useGate} from '#/lib/statsig/statsig' +import {useLanguagePrefs} from '#/state/preferences' import { Layout, OnboardingControls, @@ -12,19 +15,34 @@ import {StepFinished} from '#/screens/Onboarding/StepFinished' import {StepInterests} from '#/screens/Onboarding/StepInterests' import {StepProfile} from '#/screens/Onboarding/StepProfile' import {Portal} from '#/components/Portal' +import {ScreenTransition} from '#/components/ScreenTransition' +import {ENV} from '#/env' import {StepSuggestedAccounts} from './StepSuggestedAccounts' +import {StepSuggestedStarterpacks} from './StepSuggestedStarterpacks' export function Onboarding() { const {_} = useLingui() + const gate = useGate() + + const {contentLanguages} = useLanguagePrefs() + const probablySpeaksEnglish = useMemo(() => { + if (contentLanguages.length === 0) return true + return bcp47Match.basicFilter('en', contentLanguages).length > 0 + }, [contentLanguages]) + + // starter packs screen is currently geared towards english-speaking accounts + const showSuggestedStarterpacks = + ENV !== 'e2e' && + probablySpeaksEnglish && + gate('onboarding_suggested_starterpacks') const [state, dispatch] = useReducer(reducer, { ...initialState, - totalSteps: 4, + totalSteps: 4 + (showSuggestedStarterpacks ? 1 : 0), experiments: { - // let's leave this flag logic in for now to avoid rebase churn - // TODO: remove this flag logic once we've finished with all experiments -sfn onboarding_suggested_accounts: true, onboarding_value_prop: true, + onboarding_suggested_starterpacks: showSuggestedStarterpacks, }, }) @@ -65,12 +83,19 @@ export function Onboarding() { [state, dispatch, interestsDisplayNames], )}> - {state.activeStep === 'profile' && } - {state.activeStep === 'interests' && } - {state.activeStep === 'suggested-accounts' && ( - - )} - {state.activeStep === 'finished' && } + + {state.activeStep === 'profile' && } + {state.activeStep === 'interests' && } + {state.activeStep === 'suggested-accounts' && ( + + )} + {state.activeStep === 'suggested-starterpacks' && ( + + )} + {state.activeStep === 'finished' && } + diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index 31f6eb039..c738bf7bf 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -11,8 +11,14 @@ import { export type OnboardingState = { hasPrev: boolean totalSteps: number - activeStep: 'profile' | 'interests' | 'suggested-accounts' | 'finished' + activeStep: + | 'profile' + | 'interests' + | 'suggested-accounts' + | 'suggested-starterpacks' + | 'finished' activeStepIndex: number + stepTransitionDirection: 'Forward' | 'Backward' interestsStepResults: { selectedInterests: string[] @@ -38,6 +44,7 @@ export type OnboardingState = { experiments?: { onboarding_suggested_accounts?: boolean onboarding_value_prop?: boolean + onboarding_suggested_starterpacks?: boolean } } @@ -131,6 +138,7 @@ export const initialState: OnboardingState = { totalSteps: 3, activeStep: 'profile', activeStepIndex: 1, + stepTransitionDirection: 'Forward', interestsStepResults: { selectedInterests: [], @@ -163,52 +171,38 @@ export function reducer( ): OnboardingState { let next = {...s} + const stepOrder: OnboardingState['activeStep'][] = [ + 'profile', + 'interests', + ...(s.experiments?.onboarding_suggested_accounts + ? (['suggested-accounts'] as const) + : []), + ...(s.experiments?.onboarding_suggested_starterpacks + ? (['suggested-starterpacks'] as const) + : []), + 'finished', + ] + switch (a.type) { case 'next': { - if (s.experiments?.onboarding_suggested_accounts) { - if (s.activeStep === 'profile') { - next.activeStep = 'interests' - next.activeStepIndex = 2 - } else if (s.activeStep === 'interests') { - next.activeStep = 'suggested-accounts' - next.activeStepIndex = 3 - } - if (s.activeStep === 'suggested-accounts') { - next.activeStep = 'finished' - next.activeStepIndex = 4 - } - } else { - if (s.activeStep === 'profile') { - next.activeStep = 'interests' - next.activeStepIndex = 2 - } else if (s.activeStep === 'interests') { - next.activeStep = 'finished' - next.activeStepIndex = 3 - } + // 1-indexed for some reason + const nextIndex = s.activeStepIndex + const nextStep = stepOrder[nextIndex] + if (nextStep) { + next.activeStep = nextStep + next.activeStepIndex = nextIndex + 1 } + next.stepTransitionDirection = 'Forward' break } case 'prev': { - if (s.experiments?.onboarding_suggested_accounts) { - if (s.activeStep === 'interests') { - next.activeStep = 'profile' - next.activeStepIndex = 1 - } else if (s.activeStep === 'suggested-accounts') { - next.activeStep = 'interests' - next.activeStepIndex = 2 - } else if (s.activeStep === 'finished') { - next.activeStep = 'suggested-accounts' - next.activeStepIndex = 3 - } - } else { - if (s.activeStep === 'interests') { - next.activeStep = 'profile' - next.activeStepIndex = 1 - } else if (s.activeStep === 'finished') { - next.activeStep = 'interests' - next.activeStepIndex = 2 - } + const prevIndex = s.activeStepIndex - 2 + const prevStep = stepOrder[prevIndex] + if (prevStep) { + next.activeStep = prevStep + next.activeStepIndex = prevIndex + 1 } + next.stepTransitionDirection = 'Backward' break } case 'finish': { diff --git a/src/screens/StarterPack/StarterPackScreen.tsx b/src/screens/StarterPack/StarterPackScreen.tsx index c5c01ce8a..10fa82760 100644 --- a/src/screens/StarterPack/StarterPackScreen.tsx +++ b/src/screens/StarterPack/StarterPackScreen.tsx @@ -445,7 +445,7 @@ function Header({ Follow all - {isProcessing && } + {isProcessing && } )} ['onboarding-suggested-starter-packs', interests?.join(',')] + +export function useOnboardingSuggestedStarterPacksQuery({ + enabled, + overrideInterests, +}: { + enabled?: boolean + overrideInterests?: string[] +}) { + const agent = useAgent() + const {data: preferences} = usePreferencesQuery() + const contentLangs = getContentLanguages().join(',') + + return useQuery({ + enabled: !!preferences && enabled !== false, + staleTime: STALE.MINUTES.THREE, + queryKey: createOnboardingSuggestedStarterPacksQueryKey(overrideInterests), + queryFn: async () => { + const {data} = + await agent.app.bsky.unspecced.getOnboardingSuggestedStarterPacks( + {limit: 6}, + { + headers: { + ...createBskyTopicsHeader( + overrideInterests + ? overrideInterests.join(',') + : aggregateUserInterests(preferences), + ), + 'Accept-Language': contentLangs, + }, + }, + ) + return data + }, + }) +} diff --git a/src/state/queries/useSuggestedStarterPacksQuery.ts b/src/state/queries/useSuggestedStarterPacksQuery.ts index cbf61b93a..6cb1dd086 100644 --- a/src/state/queries/useSuggestedStarterPacksQuery.ts +++ b/src/state/queries/useSuggestedStarterPacksQuery.ts @@ -9,11 +9,18 @@ import {STALE} from '#/state/queries' import {usePreferencesQuery} from '#/state/queries/preferences' import {useAgent} from '#/state/session' -export const createSuggestedStarterPacksQueryKey = () => [ +export const createSuggestedStarterPacksQueryKey = (interests?: string[]) => [ 'suggested-starter-packs', + interests?.join(','), ] -export function useSuggestedStarterPacksQuery({enabled}: {enabled?: boolean}) { +export function useSuggestedStarterPacksQuery({ + enabled, + overrideInterests, +}: { + enabled?: boolean + overrideInterests?: string[] +}) { const agent = useAgent() const {data: preferences} = usePreferencesQuery() const contentLangs = getContentLanguages().join(',') @@ -21,13 +28,17 @@ export function useSuggestedStarterPacksQuery({enabled}: {enabled?: boolean}) { return useQuery({ enabled: !!preferences && enabled !== false, staleTime: STALE.MINUTES.THREE, - queryKey: createSuggestedStarterPacksQueryKey(), - async queryFn() { + queryKey: createSuggestedStarterPacksQueryKey(overrideInterests), + queryFn: async () => { const {data} = await agent.app.bsky.unspecced.getSuggestedStarterPacks( undefined, { headers: { - ...createBskyTopicsHeader(aggregateUserInterests(preferences)), + ...createBskyTopicsHeader( + overrideInterests + ? overrideInterests.join(',') + : aggregateUserInterests(preferences), + ), 'Accept-Language': contentLangs, }, }, diff --git a/yarn.lock b/yarn.lock index af8dce996..d1b44000f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -50,37 +50,30 @@ "@atproto-labs/simple-store" "0.3.0" lru-cache "^10.2.0" +"@atproto-labs/simple-store-redis@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@atproto-labs/simple-store-redis/-/simple-store-redis-0.0.1.tgz#1dfc92cbec9b648c4349255aebb7bce9d7dc5eeb" + integrity sha512-hGkfDNVtTqwcRx27k6u25pgwNIHq3xDCRuojkfHf6c1B9R5rKphdZJ91Mn3lCvsyDB/lUqqLuzKuXQWFml/u5g== + dependencies: + "@atproto-labs/simple-store" "0.3.0" + "@atproto-labs/simple-store@0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@atproto-labs/simple-store/-/simple-store-0.3.0.tgz#65c0a5c949fe6c8dc3bdaf13ab40848f20073593" integrity sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ== -"@atproto-labs/xrpc-utils@0.0.21": - version "0.0.21" - resolved "https://registry.yarnpkg.com/@atproto-labs/xrpc-utils/-/xrpc-utils-0.0.21.tgz#297ad8cb2ed88380dd7389b48cc0a104a7529c7e" - integrity sha512-P8bwmqakvhp3vueODWoPtfnpzDagXQLO/kuwwrBMrQmjorDW2eYwgDN4Gx+x8D4zxT/hUnVf3D321MyUISPb2A== - dependencies: - "@atproto/xrpc" "^0.7.4" - "@atproto/xrpc-server" "^0.9.4" - -"@atproto/api@^0.16.7": - version "0.16.7" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.16.7.tgz#eb0c520dbdaf74ba6f5ad7f9c6afe2d1389b8a0a" - integrity sha512-EdVWkEgaEQm1LEiiP1fW/XXXpMNmtvT5c9+cZVRiwYc4rTB66WIJJWqmaMT/tB7nccMkFjr6FtwObq5LewWfgw== +"@atproto-labs/xrpc-utils@0.0.22": + version "0.0.22" + resolved "https://registry.yarnpkg.com/@atproto-labs/xrpc-utils/-/xrpc-utils-0.0.22.tgz#b842faced84647ab691c1fdd07bfc4fd398c741f" + integrity sha512-XGDbTmVgibtcR6FwJepD/QKofG1B5EBBPebk/IVF4aHeBE/6jOd7DnfuKrBimv2GJ2JGrlvHXmjYZdfmCtYEbw== dependencies: - "@atproto/common-web" "^0.4.2" - "@atproto/lexicon" "^0.5.0" - "@atproto/syntax" "^0.4.1" - "@atproto/xrpc" "^0.7.4" - await-lock "^2.2.2" - multiformats "^9.9.0" - tlds "^1.234.0" - zod "^3.23.8" + "@atproto/xrpc" "^0.7.5" + "@atproto/xrpc-server" "^0.9.5" -"@atproto/api@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.17.0.tgz#1fe87ef703f8020dbe00bb5e5cc18622b8b91f4a" - integrity sha512-FNS9SW7/3kslAnJH7F4fO9/jPjXzC0NMD6u9NjJ/h4EnaIEpWHZQPkmD9Q2hvAwD6+Uo2boYZEPKkOa55Lr5Dg== +"@atproto/api@^0.17.1": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.17.1.tgz#37e261a4739022e6ba1cfd58efef282be5a2328f" + integrity sha512-MjW6zVP8PsxPhvOpSWIZLoEiFOK0oKIokeHoUgG1CLHGXNnz2TwBGrrPglyiE0j9GYFD5p6lAsHx8Dbx/9j5vg== dependencies: "@atproto/common-web" "^0.4.3" "@atproto/lexicon" "^0.5.1" @@ -91,40 +84,41 @@ tlds "^1.234.0" zod "^3.23.8" -"@atproto/aws@^0.2.28": - version "0.2.28" - resolved "https://registry.yarnpkg.com/@atproto/aws/-/aws-0.2.28.tgz#17bd88a6276e323ebb094a3f01bd94b1173a29a4" - integrity sha512-7RMGJvt85s76fn58Rf70alc3wNWEMjMLbH9odkU6v8CAFQYpdWgzFQQixcLsJNqDeci8DGZpgbcoetTDHsFRtg== +"@atproto/aws@^0.2.30": + version "0.2.30" + resolved "https://registry.yarnpkg.com/@atproto/aws/-/aws-0.2.30.tgz#17c882a2ec838fc6ff2a6c76f66a12e5f29d227e" + integrity sha512-oB/whUIWwSOEqUazz5meN3/AlovBdRc224uRPNy9aC6+qmNKfHKiMfo0ytFhGYdm4GtEd2HYwIT3KR/Rtc2RRA== dependencies: - "@atproto/common" "^0.4.11" + "@atproto/common" "^0.4.12" + "@atproto/common-web" "^0.4.3" "@atproto/crypto" "^0.4.4" - "@atproto/repo" "^0.8.8" - "@aws-sdk/client-cloudfront" "^3.261.0" - "@aws-sdk/client-kms" "^3.196.0" - "@aws-sdk/client-s3" "^3.224.0" - "@aws-sdk/lib-storage" "^3.226.0" + "@atproto/repo" "^0.8.10" + "@aws-sdk/client-cloudfront" "^3.879.0" + "@aws-sdk/client-kms" "^3.879.0" + "@aws-sdk/client-s3" "^3.879.0" + "@aws-sdk/lib-storage" "3.879.0" "@noble/curves" "^1.7.0" key-encoder "^2.0.3" multiformats "^9.9.0" uint8arrays "3.0.0" -"@atproto/bsky@^0.0.182": - version "0.0.182" - resolved "https://registry.yarnpkg.com/@atproto/bsky/-/bsky-0.0.182.tgz#c8481af60549e82c7a387a86a48b0627313b7c9e" - integrity sha512-ksaTtg1vmIb/jdOnZZwGt4Eh/aDiafYmb5AWUGVoAzeTlCMV0mPZM8ZtEMdXNMsHWKy/zk5l1TZjc2XVoxFXFg== +"@atproto/bsky@^0.0.188": + version "0.0.188" + resolved "https://registry.yarnpkg.com/@atproto/bsky/-/bsky-0.0.188.tgz#d1bbf17dfb85b5efbaa0bfd9d1b99e37e79425c0" + integrity sha512-ZOYKo2W/pbTccglvATrzoP8Md3W5+zHJm+XRpLrKLynqNa5QmoLtZgv2iKKfwTWx1b8BZ6YNAVcfYct1T0nTxA== dependencies: "@atproto-labs/fetch-node" "0.1.10" - "@atproto-labs/xrpc-utils" "0.0.21" - "@atproto/api" "^0.16.7" - "@atproto/common" "^0.4.11" + "@atproto-labs/xrpc-utils" "0.0.22" + "@atproto/api" "^0.17.1" + "@atproto/common" "^0.4.12" "@atproto/crypto" "^0.4.4" - "@atproto/did" "^0.2.0" - "@atproto/identity" "^0.4.8" - "@atproto/lexicon" "^0.5.0" - "@atproto/repo" "^0.8.8" - "@atproto/sync" "^0.1.33" + "@atproto/did" "^0.2.1" + "@atproto/identity" "^0.4.9" + "@atproto/lexicon" "^0.5.1" + "@atproto/repo" "^0.8.10" + "@atproto/sync" "^0.1.35" "@atproto/syntax" "^0.4.1" - "@atproto/xrpc-server" "^0.9.4" + "@atproto/xrpc-server" "^0.9.5" "@bufbuild/protobuf" "^1.5.0" "@connectrpc/connect" "^1.1.4" "@connectrpc/connect-express" "^1.1.4" @@ -158,12 +152,12 @@ undici "^6.19.8" zod "3.23.8" -"@atproto/bsync@^0.0.21": - version "0.0.21" - resolved "https://registry.yarnpkg.com/@atproto/bsync/-/bsync-0.0.21.tgz#4a178f756c6ad8c71a06ac3474523553349f6c04" - integrity sha512-ew8QvEvr2ATYKzPWtoJ9nnfQd9kv47dxpN2H+1Q9eLFm0jTNKgdQHDdNZZDwHgxrCLrNa89VxCfNPaYSmViTMw== +"@atproto/bsync@^0.0.22": + version "0.0.22" + resolved "https://registry.yarnpkg.com/@atproto/bsync/-/bsync-0.0.22.tgz#eec667dc90200bcea91dd1055c6bfad7fcf5a1e5" + integrity sha512-V2sEHDJQKCWt4Lx8KHFRy6D6IHJgtUfOsPGXbKYzrCVJF/36v3XACim7uuUxmrd/rxtY/zP5sUVkvv0o5waaZw== dependencies: - "@atproto/common" "^0.4.11" + "@atproto/common" "^0.4.12" "@atproto/syntax" "^0.4.1" "@bufbuild/protobuf" "^1.5.0" "@connectrpc/connect" "^1.1.4" @@ -174,16 +168,6 @@ pino-http "^8.2.1" typed-emitter "^2.1.0" -"@atproto/common-web@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@atproto/common-web/-/common-web-0.4.2.tgz#6e3add6939da93d3dfbc8f87e26dc4f57fad7259" - integrity sha512-vrXwGNoFGogodjQvJDxAeP3QbGtawgZute2ed1XdRO0wMixLk3qewtikZm06H259QDJVu6voKC5mubml+WgQUw== - dependencies: - graphemer "^1.4.0" - multiformats "^9.9.0" - uint8arrays "3.0.0" - zod "^3.23.8" - "@atproto/common-web@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@atproto/common-web/-/common-web-0.4.3.tgz#b4480220b5682db09da45f4ef906eb7619c838b5" @@ -214,12 +198,12 @@ pino "^8.6.1" zod "^3.14.2" -"@atproto/common@^0.4.11": - version "0.4.11" - resolved "https://registry.yarnpkg.com/@atproto/common/-/common-0.4.11.tgz#9291b7c26f8b3507e280f7ecbdf1695ab5ea62f6" - integrity sha512-Knv0viYXNMfCdIE7jLUiWJKnnMfEwg+vz2epJQi8WOjqtqCFb3W/3Jn72ZiuovIfpdm13MaOiny6w2NErUQC6g== +"@atproto/common@^0.4.12": + version "0.4.12" + resolved "https://registry.yarnpkg.com/@atproto/common/-/common-0.4.12.tgz#284a264526edfe7cbe44a225210edec319970f43" + integrity sha512-NC+TULLQiqs6MvNymhQS5WDms3SlbIKGLf4n33tpftRJcalh507rI+snbcUb7TLIkKw7VO17qMqxEXtIdd5auQ== dependencies: - "@atproto/common-web" "^0.4.2" + "@atproto/common-web" "^0.4.3" "@ipld/dag-cbor" "^7.0.3" cbor-x "^1.5.1" iso-datestring-validator "^2.2.2" @@ -246,23 +230,23 @@ "@noble/hashes" "^1.6.1" uint8arrays "3.0.0" -"@atproto/dev-env@^0.3.172": - version "0.3.172" - resolved "https://registry.yarnpkg.com/@atproto/dev-env/-/dev-env-0.3.172.tgz#91597983424f7e2877568a060d7ca7e55826fa38" - integrity sha512-tmFerUzoNmEwfQKGpITpjHAVjkZvP+yAwYePIoDyab3al/Yyifo2enwtN+K/EtxofePe1nGPFbObzhpDfNbWyg== +"@atproto/dev-env@^0.3.181": + version "0.3.181" + resolved "https://registry.yarnpkg.com/@atproto/dev-env/-/dev-env-0.3.181.tgz#30241e0d171e9ae6450865b7830a9531cf235a27" + integrity sha512-b797q3neeI5flanIHsoOamXOH971An1ZsFwINJ351UQi/j5Dv8gemVikrVAKy6dPtxn1rIRhADRfH1yZjWattw== dependencies: - "@atproto/api" "^0.16.7" - "@atproto/bsky" "^0.0.182" - "@atproto/bsync" "^0.0.21" - "@atproto/common-web" "^0.4.2" + "@atproto/api" "^0.17.1" + "@atproto/bsky" "^0.0.188" + "@atproto/bsync" "^0.0.22" + "@atproto/common-web" "^0.4.3" "@atproto/crypto" "^0.4.4" - "@atproto/identity" "^0.4.8" - "@atproto/lexicon" "^0.5.0" - "@atproto/ozone" "^0.1.140" - "@atproto/pds" "^0.4.176" - "@atproto/sync" "^0.1.33" + "@atproto/identity" "^0.4.9" + "@atproto/lexicon" "^0.5.1" + "@atproto/ozone" "^0.1.147" + "@atproto/pds" "^0.4.184" + "@atproto/sync" "^0.1.35" "@atproto/syntax" "^0.4.1" - "@atproto/xrpc-server" "^0.9.4" + "@atproto/xrpc-server" "^0.9.5" "@did-plc/lib" "^0.0.1" "@did-plc/server" "^0.0.1" dotenv "^16.0.3" @@ -272,62 +256,51 @@ uint8arrays "3.0.0" undici "^6.14.1" -"@atproto/did@0.2.0", "@atproto/did@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@atproto/did/-/did-0.2.0.tgz#5c3ee65c7b72c2c7711cc0eec205b5e9b085554c" - integrity sha512-BskT39KYbwY1DUsWekkHh47xS+wvJpFq5F9acsicNfYniinyAMnNTzGKQEhnjQuG7K0qQItg/SnmC+y0tJXV7Q== +"@atproto/did@0.2.1", "@atproto/did@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@atproto/did/-/did-0.2.1.tgz#3367b50b3ec38ed846c2b9b9f6e63c9091f526f0" + integrity sha512-1i5BTU2GnBaaeYWhxUOnuEKFVq9euT5+dQPFabHpa927BlJ54PmLGyBBaOI7/NbLmN5HWwBa18SBkMpg3jGZRA== dependencies: zod "^3.23.8" -"@atproto/identity@^0.4.8": - version "0.4.8" - resolved "https://registry.yarnpkg.com/@atproto/identity/-/identity-0.4.8.tgz#28ae9f8fe0e83196c5b6747394e759a330a101d9" - integrity sha512-Z0sLnJ87SeNdAifT+rqpgE1Rc3layMMW25gfWNo4u40RGuRODbdfAZlTwBSU2r+Vk45hU+iE+xeQspfednCEnA== +"@atproto/identity@^0.4.9": + version "0.4.9" + resolved "https://registry.yarnpkg.com/@atproto/identity/-/identity-0.4.9.tgz#06d435807ba871717ff4c99741706b7696f8e254" + integrity sha512-pRYCaeaEJMZ4vQlRQYYTrF3cMiRp21n/k/pUT1o7dgKby56zuLErDmFXkbKfKWPf7SgWRgamSaNmsGLqAOD7lQ== dependencies: - "@atproto/common-web" "^0.4.2" + "@atproto/common-web" "^0.4.3" "@atproto/crypto" "^0.4.4" -"@atproto/jwk-jose@0.1.10": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@atproto/jwk-jose/-/jwk-jose-0.1.10.tgz#47255d65881240f191c2ce7eb22ee072f1886be7" - integrity sha512-Eiu/u4tZHz3IIhHZt0zneYEffSAO3Oqk/ToKwlu1TqKte6sjtPs/4uquSiAAGFYozqgo92JC/AQclWzzkHI5QQ== +"@atproto/jwk-jose@0.1.11": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@atproto/jwk-jose/-/jwk-jose-0.1.11.tgz#ef64bce940a66e267fc3cf0db8df4dbd062bb28a" + integrity sha512-i4Fnr2sTBYmMmHXl7NJh8GrCH+tDQEVWrcDMDnV5DjJfkgT17wIqvojIw9SNbSL4Uf0OtfEv6AgG0A+mgh8b5Q== dependencies: - "@atproto/jwk" "0.5.0" + "@atproto/jwk" "0.6.0" jose "^5.2.0" -"@atproto/jwk@0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@atproto/jwk/-/jwk-0.5.0.tgz#480768a7686b8f20e3f516abe2bf7c9de8a0ba03" - integrity sha512-Qi2NtEqhkG+uz3CKia4+H05WMV/z//dz3ESo5+cyBKrOnxVTJ5ZubMyltWjoYvy6v/jLhorXdDWcjn07yky7MQ== +"@atproto/jwk@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@atproto/jwk/-/jwk-0.6.0.tgz#e813f77d9c89c025d4074340777fafaa2fba08a5" + integrity sha512-bDoJPvt7TrQVi/rBfBrSSpGykhtIriKxeYCYQTiPRKFfyRhbgpElF0wPXADjIswnbzZdOwbY63az4E/CFVT3Tw== dependencies: multiformats "^9.9.0" zod "^3.23.8" -"@atproto/lexicon-resolver@0.2.0", "@atproto/lexicon-resolver@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@atproto/lexicon-resolver/-/lexicon-resolver-0.2.0.tgz#fda61d0e25efaefcaadbaa7de4075a8543601d72" - integrity sha512-qhKL8IlMTmujli0QWhgssjIdQL4DgynokmnhDJrrdJgFZZks12aAYShQIxCLslUPjNSIxf82COaXko2N4yX0Sg== +"@atproto/lexicon-resolver@0.2.2", "@atproto/lexicon-resolver@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@atproto/lexicon-resolver/-/lexicon-resolver-0.2.2.tgz#2a91a1908f6b327c41cb5c290eb80aed5ef593c0" + integrity sha512-m1YS8lK+R9JcH3Q4d01CEv5rhuTeo406iPBhVnNfoBFEVYMI3Acdo2/9e5hBoNhr4W6l4LI8qJxplYJcsWNh5A== dependencies: "@atproto-labs/fetch-node" "^0.1.10" - "@atproto/identity" "^0.4.8" - "@atproto/lexicon" "^0.5.0" - "@atproto/repo" "^0.8.8" - "@atproto/syntax" "^0.4.1" - "@atproto/xrpc" "^0.7.4" - multiformats "^9.9.0" - -"@atproto/lexicon@0.5.0", "@atproto/lexicon@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@atproto/lexicon/-/lexicon-0.5.0.tgz#4d2be425361f9ac7f9754b8a1ccba29ddf0b9460" - integrity sha512-3aAzEAy9EAPs3CxznzMhEcqDd7m3vz1eze/ya9/ThbB7yleqJIhz5GY2q76tCCwHPhn5qDDMhlA9kKV6fG23gA== - dependencies: - "@atproto/common-web" "^0.4.2" + "@atproto/identity" "^0.4.9" + "@atproto/lexicon" "^0.5.1" + "@atproto/repo" "^0.8.10" "@atproto/syntax" "^0.4.1" - iso-datestring-validator "^2.2.2" + "@atproto/xrpc" "^0.7.5" multiformats "^9.9.0" - zod "^3.23.8" -"@atproto/lexicon@^0.5.1": +"@atproto/lexicon@0.5.1", "@atproto/lexicon@^0.5.1": version "0.5.1" resolved "https://registry.yarnpkg.com/@atproto/lexicon/-/lexicon-0.5.1.tgz#e9b7d5c70dc5a38518a8069cd80fea77ab526947" integrity sha512-y8AEtYmfgVl4fqFxqXAeGvhesiGkxiy3CWoJIfsFDDdTlZUC8DFnZrYhcqkIop3OlCkkljvpSJi1hbeC1tbi8A== @@ -338,49 +311,49 @@ multiformats "^9.9.0" zod "^3.23.8" -"@atproto/oauth-provider-api@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@atproto/oauth-provider-api/-/oauth-provider-api-0.3.0.tgz#c53a6f2584e6e53746b6cdf233be591fdf7d4355" - integrity sha512-yfwokA2ffoLiG0uCu1aElSahqwoKcl/B+l768tV7D3ldEYRWA46bhHwy9Y7qpeHarjVf8mZm1UrlewCv4rlvXg== +"@atproto/oauth-provider-api@0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@atproto/oauth-provider-api/-/oauth-provider-api-0.3.1.tgz#ade10e010d4b1c9cc8fc7afa3fa9e90d49ab05b9" + integrity sha512-dEffyXP5GG2ohDb+YeLjrJ8ynueBcppEOiAnxfFED+uoIKI9TrfowgvZ4uFFhpNpuaceS0f6cO8CDfsU8NuuYQ== dependencies: - "@atproto/jwk" "0.5.0" - "@atproto/oauth-types" "0.4.1" + "@atproto/jwk" "0.6.0" + "@atproto/oauth-types" "0.4.2" -"@atproto/oauth-provider-frontend@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@atproto/oauth-provider-frontend/-/oauth-provider-frontend-0.2.0.tgz#d3f61047e72d2c0f74bbc7a9dffff94a3c5c7598" - integrity sha512-AKIMwE/k08D1P2Qg6hVld2A0F6jcIIA/MKiFNpZCrODeZu+ExBhcI8S56Nw6zUq36zBA3Vqfq+CemmJNMKUp5Q== +"@atproto/oauth-provider-frontend@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@atproto/oauth-provider-frontend/-/oauth-provider-frontend-0.2.2.tgz#67bc69df02cc845dadae3d564cb0de8c0c8a5d7e" + integrity sha512-iP/ZoYiCrctLutPlnHUzX81AJ1fP0OzpkkokBxlnHGr4AZnkDihZRscWPSVtWqrW2xOZXAdgtf2y35vcO0TpWw== optionalDependencies: - "@atproto/oauth-provider-api" "0.3.0" + "@atproto/oauth-provider-api" "0.3.1" -"@atproto/oauth-provider-ui@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@atproto/oauth-provider-ui/-/oauth-provider-ui-0.3.0.tgz#3b4db698584b5de5229a6fac6f5b92f559bd458c" - integrity sha512-B5tRGOt/p1IstxoJZdCAKHafeHTkkjHZ46toM8xELtuX+96NmwbieVe7+bWj0Fr4z0UXailBJr44Ye6QaiXDsA== +"@atproto/oauth-provider-ui@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@atproto/oauth-provider-ui/-/oauth-provider-ui-0.3.2.tgz#402abf1505692330651280e639e2527eb2968148" + integrity sha512-nlU4CWYxTQbw/0GYBVhX8s66RZ4AE+4nWYLa/MaIew7YSjZANDSbUohqMa804ewTRLARnZECH0rUKzbXRl1kow== optionalDependencies: - "@atproto/oauth-provider-api" "0.3.0" + "@atproto/oauth-provider-api" "0.3.1" -"@atproto/oauth-provider@^0.11.2": - version "0.11.2" - resolved "https://registry.yarnpkg.com/@atproto/oauth-provider/-/oauth-provider-0.11.2.tgz#40835be2336ba49c3a9becc77138916a131421ff" - integrity sha512-w+oa6qc6pj6fMZCXsaxjlDTnNRgohV7Xm+JO0q+Vp19qnpiVNKMJfvYF4zfWTc3EZ3QQaNzlv1U5AQvRAC0oUA== +"@atproto/oauth-provider@^0.13.2": + version "0.13.2" + resolved "https://registry.yarnpkg.com/@atproto/oauth-provider/-/oauth-provider-0.13.2.tgz#7dd9148a9d4c3c8bc226be2c151fdbf4a6eed5e5" + integrity sha512-R3T63DzCei2nip5aLy4jldNiOEBDQ0g2S5UCCyhlAYarLgNRtBZzrF2L+Mx0L9AQOvsZGTxoo5fFoeFFMsAFcQ== dependencies: "@atproto-labs/fetch" "0.2.3" "@atproto-labs/fetch-node" "0.1.10" "@atproto-labs/pipe" "0.1.1" "@atproto-labs/simple-store" "0.3.0" "@atproto-labs/simple-store-memory" "0.1.4" - "@atproto/common" "^0.4.11" - "@atproto/did" "0.2.0" - "@atproto/jwk" "0.5.0" - "@atproto/jwk-jose" "0.1.10" - "@atproto/lexicon" "0.5.0" - "@atproto/lexicon-resolver" "0.2.0" - "@atproto/oauth-provider-api" "0.3.0" - "@atproto/oauth-provider-frontend" "0.2.0" - "@atproto/oauth-provider-ui" "0.3.0" - "@atproto/oauth-scopes" "0.1.0" - "@atproto/oauth-types" "0.4.1" + "@atproto/common" "^0.4.12" + "@atproto/did" "0.2.1" + "@atproto/jwk" "0.6.0" + "@atproto/jwk-jose" "0.1.11" + "@atproto/lexicon" "0.5.1" + "@atproto/lexicon-resolver" "0.2.2" + "@atproto/oauth-provider-api" "0.3.1" + "@atproto/oauth-provider-frontend" "0.2.2" + "@atproto/oauth-provider-ui" "0.3.2" + "@atproto/oauth-scopes" "0.2.1" + "@atproto/oauth-types" "0.4.2" "@atproto/syntax" "0.4.1" "@hapi/accept" "^6.0.3" "@hapi/address" "^5.1.1" @@ -394,36 +367,37 @@ jose "^5.2.0" zod "^3.23.8" -"@atproto/oauth-scopes@0.1.0", "@atproto/oauth-scopes@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@atproto/oauth-scopes/-/oauth-scopes-0.1.0.tgz#da21ba282f5ff57e72f4c5ea4ca7ca5c89202e45" - integrity sha512-GuE1vp2x5oNjtS8SBqiR8MvzVZmB1E4nkPu/sYoCN/NLVcBtGXA1zXmPFuZpSqWXOSTHqL4TsH066hLgPccOVg== +"@atproto/oauth-scopes@0.2.1", "@atproto/oauth-scopes@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@atproto/oauth-scopes/-/oauth-scopes-0.2.1.tgz#8b710fa847e662f5e9f18dfded304d4c1b844530" + integrity sha512-C3MfE89Y02RwgePhXR7VvFNcUIjpwn1iWpSCzoGBMEM8lDjgdt+Xc2S025CD1QiWVi03NaP4m8EqeADOVgSNRA== dependencies: - "@atproto/did" "^0.2.0" - "@atproto/lexicon" "^0.5.0" + "@atproto/did" "^0.2.1" + "@atproto/lexicon" "^0.5.1" "@atproto/syntax" "^0.4.1" -"@atproto/oauth-types@0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@atproto/oauth-types/-/oauth-types-0.4.1.tgz#217664501752cfafdd4f27ba97da16411b1028b5" - integrity sha512-c5ixf2ZOzcltOu1fDBnO/tok6Wj7JDDK66+Z0q/+bAr8LXgOnxP7zQfJ+DD4gTkB+saTqsqWtVv8qvx/IEtm1g== +"@atproto/oauth-types@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@atproto/oauth-types/-/oauth-types-0.4.2.tgz#6d9dabeeb7998258d13e88254a30d51cf0de5568" + integrity sha512-gcfNTyFsPJcYDf79M0iKHykWqzxloscioKoerdIN3MTS3htiNOSgZjm2p8ho7pdrElLzea3qktuhTQI39j1XFQ== dependencies: - "@atproto/jwk" "0.5.0" + "@atproto/did" "0.2.1" + "@atproto/jwk" "0.6.0" zod "^3.23.8" -"@atproto/ozone@^0.1.140": - version "0.1.140" - resolved "https://registry.yarnpkg.com/@atproto/ozone/-/ozone-0.1.140.tgz#d82494728b72d682c0dd00cc66de38638d53ed2d" - integrity sha512-8nVeawP8GxruXxQAeumHxVE0XXTA43vnsjvRYpQLNwxLrpIIh9JsEgUdrXExmdP5xpM0YAcppdaxGP7AUxYRHA== +"@atproto/ozone@^0.1.147": + version "0.1.147" + resolved "https://registry.yarnpkg.com/@atproto/ozone/-/ozone-0.1.147.tgz#20a91e2c9e266542d13c7bacf0ded6ddab8217c1" + integrity sha512-QzFOjhCjoAlTWe9kukby3vrCJD7hxFU8309ijB6ifimcA1FhT4jvLM7OcYlT+BdSK4PfrixwOSp4Ut8OtF3Wpg== dependencies: - "@atproto/api" "^0.16.7" - "@atproto/common" "^0.4.11" + "@atproto/api" "^0.17.1" + "@atproto/common" "^0.4.12" "@atproto/crypto" "^0.4.4" - "@atproto/identity" "^0.4.8" - "@atproto/lexicon" "^0.5.0" + "@atproto/identity" "^0.4.9" + "@atproto/lexicon" "^0.5.1" "@atproto/syntax" "^0.4.1" - "@atproto/xrpc" "^0.7.4" - "@atproto/xrpc-server" "^0.9.4" + "@atproto/xrpc" "^0.7.5" + "@atproto/xrpc-server" "^0.9.5" "@did-plc/lib" "^0.0.1" compression "^1.7.4" cors "^2.8.5" @@ -441,26 +415,29 @@ undici "^6.14.1" ws "^8.12.0" -"@atproto/pds@^0.4.176": - version "0.4.176" - resolved "https://registry.yarnpkg.com/@atproto/pds/-/pds-0.4.176.tgz#3ef5d9fd894381f19eef80b374d17d318946af7d" - integrity sha512-ezRYQsDWZdWiP94Jc2R/SXHVo4QTTq0MD+w6FUuuNqq+glRGx+x1sVU98DLEcI78M7J3sHIYybf+tX9PNyBsuA== +"@atproto/pds@^0.4.184": + version "0.4.184" + resolved "https://registry.yarnpkg.com/@atproto/pds/-/pds-0.4.184.tgz#cee06a36b5bff8f931d1609f8d4a0dedfd921fe4" + integrity sha512-TkbDHAIu0IoUU2fTvjs/z3U/cXsC7hTtFBNJiE1wUeiCWqigxOIwSojAqVXU3pgxt4I+64kta5KBS1n4GYPOXg== dependencies: "@atproto-labs/fetch-node" "0.1.10" - "@atproto-labs/xrpc-utils" "0.0.21" - "@atproto/api" "^0.16.7" - "@atproto/aws" "^0.2.28" - "@atproto/common" "^0.4.11" + "@atproto-labs/simple-store" "0.3.0" + "@atproto-labs/simple-store-memory" "0.1.4" + "@atproto-labs/simple-store-redis" "0.0.1" + "@atproto-labs/xrpc-utils" "0.0.22" + "@atproto/api" "^0.17.1" + "@atproto/aws" "^0.2.30" + "@atproto/common" "^0.4.12" "@atproto/crypto" "^0.4.4" - "@atproto/identity" "^0.4.8" - "@atproto/lexicon" "^0.5.0" - "@atproto/lexicon-resolver" "^0.2.0" - "@atproto/oauth-provider" "^0.11.2" - "@atproto/oauth-scopes" "^0.1.0" - "@atproto/repo" "^0.8.8" + "@atproto/identity" "^0.4.9" + "@atproto/lexicon" "^0.5.1" + "@atproto/lexicon-resolver" "^0.2.2" + "@atproto/oauth-provider" "^0.13.2" + "@atproto/oauth-scopes" "^0.2.1" + "@atproto/repo" "^0.8.10" "@atproto/syntax" "^0.4.1" - "@atproto/xrpc" "^0.7.4" - "@atproto/xrpc-server" "^0.9.4" + "@atproto/xrpc" "^0.7.5" + "@atproto/xrpc-server" "^0.9.5" "@did-plc/lib" "^0.0.4" "@hapi/address" "^5.1.1" better-sqlite3 "^10.0.0" @@ -490,32 +467,32 @@ undici "^6.19.8" zod "^3.23.8" -"@atproto/repo@^0.8.8": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@atproto/repo/-/repo-0.8.8.tgz#ef60142297a1a24038136567601c7897668d04ae" - integrity sha512-Zq5UBurRsHFCi1Ol+KS2C58CrojyLw7CBfXpoqte78VcyOvKFxuj5bE8o96j2fOVGqXjjdNI2f54scHcpZxotA== +"@atproto/repo@^0.8.10": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@atproto/repo/-/repo-0.8.10.tgz#a7776bb21630e4d5d5f698dbb9d8bca0f80811e6" + integrity sha512-REs6TZGyxNaYsjqLf447u+gSdyzhvMkVbxMBiKt1ouEVRkiho1CY32+omn62UkpCuGK2y6SCf6x3sVMctgmX4g== dependencies: - "@atproto/common" "^0.4.11" - "@atproto/common-web" "^0.4.2" + "@atproto/common" "^0.4.12" + "@atproto/common-web" "^0.4.3" "@atproto/crypto" "^0.4.4" - "@atproto/lexicon" "^0.5.0" + "@atproto/lexicon" "^0.5.1" "@ipld/dag-cbor" "^7.0.0" multiformats "^9.9.0" uint8arrays "3.0.0" varint "^6.0.0" zod "^3.23.8" -"@atproto/sync@^0.1.33": - version "0.1.33" - resolved "https://registry.yarnpkg.com/@atproto/sync/-/sync-0.1.33.tgz#63f936a6e1c8bc70f8b862282f63c43fe464f25a" - integrity sha512-0L4BgfaNPmTzamaDRmAqc/vkJdbiz8D2LgepiuIhVe2lsqLEbGxuxrejuRPQE7fXnoHKdzLUx6u+xdC+tZi8Gw== +"@atproto/sync@^0.1.35": + version "0.1.35" + resolved "https://registry.yarnpkg.com/@atproto/sync/-/sync-0.1.35.tgz#6d4dd66043946d20254b31dd2262e86148d78e8e" + integrity sha512-MPvmTjJYCilZEQF1ds7itzF9tNEZtw4Ez0HeMO5E5GaPtTAccBU3AsTxwWST87EX5qsVxMlBTq2go6G6+Swd7Q== dependencies: - "@atproto/common" "^0.4.11" - "@atproto/identity" "^0.4.8" - "@atproto/lexicon" "^0.5.0" - "@atproto/repo" "^0.8.8" + "@atproto/common" "^0.4.12" + "@atproto/identity" "^0.4.9" + "@atproto/lexicon" "^0.5.1" + "@atproto/repo" "^0.8.10" "@atproto/syntax" "^0.4.1" - "@atproto/xrpc-server" "^0.9.4" + "@atproto/xrpc-server" "^0.9.5" multiformats "^9.9.0" p-queue "^6.6.2" ws "^8.12.0" @@ -525,15 +502,15 @@ resolved "https://registry.yarnpkg.com/@atproto/syntax/-/syntax-0.4.1.tgz#f77bc610ae0914449ff3f4731861e3da429915f5" integrity sha512-CJdImtLAiFO+0z3BWTtxwk6aY5w4t8orHTMVJgkf++QRJWTxPbIFko/0hrkADB7n2EruDxDSeAgfUGehpH6ngw== -"@atproto/xrpc-server@^0.9.4": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@atproto/xrpc-server/-/xrpc-server-0.9.4.tgz#231bdfe8fb1f31fe77d3ce7cbff3fe765fd886f8" - integrity sha512-HJFgUV8ZzyDPRjTOA/oYU4H9YgLnm7aYTn36YmohLsbwuem3sEz/8dhaF2S0L+PXl2dOG08Ot6yg08GPHuXQvw== +"@atproto/xrpc-server@^0.9.5": + version "0.9.5" + resolved "https://registry.yarnpkg.com/@atproto/xrpc-server/-/xrpc-server-0.9.5.tgz#3a036ce2db85bcac40103fd160fef3ed7c364e2b" + integrity sha512-V0srjUgy6mQ5yf9+MSNBLs457m4qclEaWZsnqIE7RfYywvntexTAbMoo7J7ONfTNwdmA9Gw4oLak2z2cDAET4w== dependencies: - "@atproto/common" "^0.4.11" + "@atproto/common" "^0.4.12" "@atproto/crypto" "^0.4.4" - "@atproto/lexicon" "^0.5.0" - "@atproto/xrpc" "^0.7.4" + "@atproto/lexicon" "^0.5.1" + "@atproto/xrpc" "^0.7.5" cbor-x "^1.5.1" express "^4.17.2" http-errors "^2.0.0" @@ -543,14 +520,6 @@ ws "^8.12.0" zod "^3.23.8" -"@atproto/xrpc@^0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@atproto/xrpc/-/xrpc-0.7.4.tgz#030342548797c1f344968c457a8659dbb60a2d60" - integrity sha512-sDi68+QE1XHegTaNAndlX41Gp827pouSzSs8CyAwhrqZdsJUxE3P7TMtrA0z+zAjvxVyvzscRc0TsN/fGUGrhw== - dependencies: - "@atproto/lexicon" "^0.5.0" - zod "^3.23.8" - "@atproto/xrpc@^0.7.5": version "0.7.5" resolved "https://registry.yarnpkg.com/@atproto/xrpc/-/xrpc-0.7.5.tgz#40cef1a657b5f28af8ebec9e3dac5872e58e88ea" @@ -559,626 +528,622 @@ "@atproto/lexicon" "^0.5.1" zod "^3.23.8" -"@aws-crypto/crc32@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" - integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== +"@aws-crypto/crc32@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" + integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== dependencies: - "@aws-crypto/util" "^3.0.0" + "@aws-crypto/util" "^5.2.0" "@aws-sdk/types" "^3.222.0" - tslib "^1.11.1" + tslib "^2.6.2" -"@aws-crypto/crc32c@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" - integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== +"@aws-crypto/crc32c@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" + integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== dependencies: - "@aws-crypto/util" "^3.0.0" + "@aws-crypto/util" "^5.2.0" "@aws-sdk/types" "^3.222.0" - tslib "^1.11.1" - -"@aws-crypto/ie11-detection@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" - integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== - dependencies: - tslib "^1.11.1" + tslib "^2.6.2" -"@aws-crypto/sha1-browser@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" - integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== +"@aws-crypto/sha1-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" + integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== dependencies: - "@aws-crypto/ie11-detection" "^3.0.0" - "@aws-crypto/supports-web-crypto" "^3.0.0" - "@aws-crypto/util" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.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" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" -"@aws-crypto/sha256-browser@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" - integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== +"@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" + integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== 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-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.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" + "@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.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" - integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== +"@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" + integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== dependencies: - "@aws-crypto/util" "^3.0.0" + "@aws-crypto/util" "^5.2.0" "@aws-sdk/types" "^3.222.0" - tslib "^1.11.1" + tslib "^2.6.2" -"@aws-crypto/supports-web-crypto@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" - integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== +"@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" + integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== dependencies: - tslib "^1.11.1" + tslib "^2.6.2" -"@aws-crypto/util@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" - integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== +"@aws-crypto/util@5.2.0", "@aws-crypto/util@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" + integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== dependencies: "@aws-sdk/types" "^3.222.0" - "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" - -"@aws-sdk/client-cloudfront@^3.261.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.465.0.tgz#d3481a3a97afc5a5be7ee807c9a3080df8980f60" - integrity sha512-DKnu3pv9KYjDmmTBW2ifrrXeA94I6UMLmxjsIUH/huhHqIeUG4M7gMQNerNxHvuoFbDYvBu88A4w/3TIZZhG4w== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.465.0" - "@aws-sdk/core" "3.465.0" - "@aws-sdk/credential-provider-node" "3.465.0" - "@aws-sdk/middleware-host-header" "3.465.0" - "@aws-sdk/middleware-logger" "3.465.0" - "@aws-sdk/middleware-recursion-detection" "3.465.0" - "@aws-sdk/middleware-signing" "3.465.0" - "@aws-sdk/middleware-user-agent" "3.465.0" - "@aws-sdk/region-config-resolver" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-endpoints" "3.465.0" - "@aws-sdk/util-user-agent-browser" "3.465.0" - "@aws-sdk/util-user-agent-node" "3.465.0" - "@aws-sdk/xml-builder" "3.465.0" - "@smithy/config-resolver" "^2.0.18" - "@smithy/fetch-http-handler" "^2.2.6" - "@smithy/hash-node" "^2.0.15" - "@smithy/invalid-dependency" "^2.0.13" - "@smithy/middleware-content-length" "^2.0.15" - "@smithy/middleware-endpoint" "^2.2.0" - "@smithy/middleware-retry" "^2.0.20" - "@smithy/middleware-serde" "^2.0.13" - "@smithy/middleware-stack" "^2.0.7" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/node-http-handler" "^2.1.9" - "@smithy/protocol-http" "^3.0.9" - "@smithy/smithy-client" "^2.1.15" - "@smithy/types" "^2.5.0" - "@smithy/url-parser" "^2.0.13" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.19" - "@smithy/util-defaults-mode-node" "^2.0.25" - "@smithy/util-endpoints" "^1.0.4" - "@smithy/util-retry" "^2.0.6" - "@smithy/util-stream" "^2.0.20" - "@smithy/util-utf8" "^2.0.2" - "@smithy/util-waiter" "^2.0.13" - fast-xml-parser "4.2.5" - tslib "^2.5.0" - -"@aws-sdk/client-kms@^3.196.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-kms/-/client-kms-3.465.0.tgz#7f34d928b557693bc6ffffc411ab98fad79e3075" - integrity sha512-1WCzPUpV9jF4W3FyIV8Sf22DBehZr9EbuaD/RwwGr42RHEVtjjCxoIcPCS0KjqhzVbaQ8jUrcimsOxVDYadO+g== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.465.0" - "@aws-sdk/core" "3.465.0" - "@aws-sdk/credential-provider-node" "3.465.0" - "@aws-sdk/middleware-host-header" "3.465.0" - "@aws-sdk/middleware-logger" "3.465.0" - "@aws-sdk/middleware-recursion-detection" "3.465.0" - "@aws-sdk/middleware-signing" "3.465.0" - "@aws-sdk/middleware-user-agent" "3.465.0" - "@aws-sdk/region-config-resolver" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-endpoints" "3.465.0" - "@aws-sdk/util-user-agent-browser" "3.465.0" - "@aws-sdk/util-user-agent-node" "3.465.0" - "@smithy/config-resolver" "^2.0.18" - "@smithy/fetch-http-handler" "^2.2.6" - "@smithy/hash-node" "^2.0.15" - "@smithy/invalid-dependency" "^2.0.13" - "@smithy/middleware-content-length" "^2.0.15" - "@smithy/middleware-endpoint" "^2.2.0" - "@smithy/middleware-retry" "^2.0.20" - "@smithy/middleware-serde" "^2.0.13" - "@smithy/middleware-stack" "^2.0.7" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/node-http-handler" "^2.1.9" - "@smithy/protocol-http" "^3.0.9" - "@smithy/smithy-client" "^2.1.15" - "@smithy/types" "^2.5.0" - "@smithy/url-parser" "^2.0.13" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.19" - "@smithy/util-defaults-mode-node" "^2.0.25" - "@smithy/util-endpoints" "^1.0.4" - "@smithy/util-retry" "^2.0.6" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" - -"@aws-sdk/client-s3@^3.224.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.465.0.tgz#7bad33ccfaa3d460247bbdb0e59c5ac7f4c3e2aa" - integrity sha512-S2W8aUs/SR7wabyKRldl5FKtAq2gsXo3BpbKjBvuCILwNl84ooQrsOmKtcVsINRdi+q/mZvwGenqqp/98+yjdg== - dependencies: - "@aws-crypto/sha1-browser" "3.0.0" - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.465.0" - "@aws-sdk/core" "3.465.0" - "@aws-sdk/credential-provider-node" "3.465.0" - "@aws-sdk/middleware-bucket-endpoint" "3.465.0" - "@aws-sdk/middleware-expect-continue" "3.465.0" - "@aws-sdk/middleware-flexible-checksums" "3.465.0" - "@aws-sdk/middleware-host-header" "3.465.0" - "@aws-sdk/middleware-location-constraint" "3.465.0" - "@aws-sdk/middleware-logger" "3.465.0" - "@aws-sdk/middleware-recursion-detection" "3.465.0" - "@aws-sdk/middleware-sdk-s3" "3.465.0" - "@aws-sdk/middleware-signing" "3.465.0" - "@aws-sdk/middleware-ssec" "3.465.0" - "@aws-sdk/middleware-user-agent" "3.465.0" - "@aws-sdk/region-config-resolver" "3.465.0" - "@aws-sdk/signature-v4-multi-region" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-endpoints" "3.465.0" - "@aws-sdk/util-user-agent-browser" "3.465.0" - "@aws-sdk/util-user-agent-node" "3.465.0" - "@aws-sdk/xml-builder" "3.465.0" - "@smithy/config-resolver" "^2.0.18" - "@smithy/eventstream-serde-browser" "^2.0.13" - "@smithy/eventstream-serde-config-resolver" "^2.0.13" - "@smithy/eventstream-serde-node" "^2.0.13" - "@smithy/fetch-http-handler" "^2.2.6" - "@smithy/hash-blob-browser" "^2.0.14" - "@smithy/hash-node" "^2.0.15" - "@smithy/hash-stream-node" "^2.0.15" - "@smithy/invalid-dependency" "^2.0.13" - "@smithy/md5-js" "^2.0.15" - "@smithy/middleware-content-length" "^2.0.15" - "@smithy/middleware-endpoint" "^2.2.0" - "@smithy/middleware-retry" "^2.0.20" - "@smithy/middleware-serde" "^2.0.13" - "@smithy/middleware-stack" "^2.0.7" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/node-http-handler" "^2.1.9" - "@smithy/protocol-http" "^3.0.9" - "@smithy/smithy-client" "^2.1.15" - "@smithy/types" "^2.5.0" - "@smithy/url-parser" "^2.0.13" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.19" - "@smithy/util-defaults-mode-node" "^2.0.25" - "@smithy/util-endpoints" "^1.0.4" - "@smithy/util-retry" "^2.0.6" - "@smithy/util-stream" "^2.0.20" - "@smithy/util-utf8" "^2.0.2" - "@smithy/util-waiter" "^2.0.13" - fast-xml-parser "4.2.5" - tslib "^2.5.0" - -"@aws-sdk/client-sso@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.465.0.tgz#a732c640767d8d82c3c73d798720d0a8d355184d" - integrity sha512-JXDBa3Sl+LS0KEOs0PZoIjpNKEEGfeyFwdnRxi8Y1hMXNEKyJug1cI2Psqu2olpn4KeXwoP1BuITppZYdolOew== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.465.0" - "@aws-sdk/middleware-host-header" "3.465.0" - "@aws-sdk/middleware-logger" "3.465.0" - "@aws-sdk/middleware-recursion-detection" "3.465.0" - "@aws-sdk/middleware-user-agent" "3.465.0" - "@aws-sdk/region-config-resolver" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-endpoints" "3.465.0" - "@aws-sdk/util-user-agent-browser" "3.465.0" - "@aws-sdk/util-user-agent-node" "3.465.0" - "@smithy/config-resolver" "^2.0.18" - "@smithy/fetch-http-handler" "^2.2.6" - "@smithy/hash-node" "^2.0.15" - "@smithy/invalid-dependency" "^2.0.13" - "@smithy/middleware-content-length" "^2.0.15" - "@smithy/middleware-endpoint" "^2.2.0" - "@smithy/middleware-retry" "^2.0.20" - "@smithy/middleware-serde" "^2.0.13" - "@smithy/middleware-stack" "^2.0.7" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/node-http-handler" "^2.1.9" - "@smithy/protocol-http" "^3.0.9" - "@smithy/smithy-client" "^2.1.15" - "@smithy/types" "^2.5.0" - "@smithy/url-parser" "^2.0.13" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.19" - "@smithy/util-defaults-mode-node" "^2.0.25" - "@smithy/util-endpoints" "^1.0.4" - "@smithy/util-retry" "^2.0.6" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" - -"@aws-sdk/client-sts@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.465.0.tgz#b356b90b0e31a82dc41995282245f74d023ea8b5" - integrity sha512-rHi9ba6ssNbVjlWSdhi4C5newEhGhzkY9UE4KB+/Tj21zXfEP8r6uIltnQXPtun2SdA95Krh/yS1qQ4MRuzqyA== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.465.0" - "@aws-sdk/credential-provider-node" "3.465.0" - "@aws-sdk/middleware-host-header" "3.465.0" - "@aws-sdk/middleware-logger" "3.465.0" - "@aws-sdk/middleware-recursion-detection" "3.465.0" - "@aws-sdk/middleware-sdk-sts" "3.465.0" - "@aws-sdk/middleware-signing" "3.465.0" - "@aws-sdk/middleware-user-agent" "3.465.0" - "@aws-sdk/region-config-resolver" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-endpoints" "3.465.0" - "@aws-sdk/util-user-agent-browser" "3.465.0" - "@aws-sdk/util-user-agent-node" "3.465.0" - "@smithy/config-resolver" "^2.0.18" - "@smithy/fetch-http-handler" "^2.2.6" - "@smithy/hash-node" "^2.0.15" - "@smithy/invalid-dependency" "^2.0.13" - "@smithy/middleware-content-length" "^2.0.15" - "@smithy/middleware-endpoint" "^2.2.0" - "@smithy/middleware-retry" "^2.0.20" - "@smithy/middleware-serde" "^2.0.13" - "@smithy/middleware-stack" "^2.0.7" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/node-http-handler" "^2.1.9" - "@smithy/protocol-http" "^3.0.9" - "@smithy/smithy-client" "^2.1.15" - "@smithy/types" "^2.5.0" - "@smithy/url-parser" "^2.0.13" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.19" - "@smithy/util-defaults-mode-node" "^2.0.25" - "@smithy/util-endpoints" "^1.0.4" - "@smithy/util-retry" "^2.0.6" - "@smithy/util-utf8" "^2.0.2" - fast-xml-parser "4.2.5" - tslib "^2.5.0" - -"@aws-sdk/core@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.465.0.tgz#bfc9dd0fbd953f0839666e9b24c50c4543f49112" - integrity sha512-fHSIw/Rgex3KbrEKn6ZrUc2VcsOTpdBMeyYtfmsTOLSyDDOG9k3jelOvVbCbrK5N6uEUSM8hrnySEKg94UB0cg== - dependencies: - "@smithy/smithy-client" "^2.1.15" - tslib "^2.5.0" - -"@aws-sdk/credential-provider-env@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.465.0.tgz#9bb1c2086165872ad024786e5a48ccb31c5438da" - integrity sha512-fku37AgkB9KhCuWHE6mfvbWYU0X84Df6MQ60nYH7s/PiNEhkX2cVI6X6kOKjP1MNIwRcYt+oQDvplVKdHume+A== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/credential-provider-ini@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.465.0.tgz#d3c3596cc5ff5ebe372bbd62d7aac044cbf3e2e3" - integrity sha512-B1MFufvdToAEMtfszilVnKer2S7P/OfMhkCizq2zuu8aU/CquRyHvKEQgWdvqunUDrFnVTc0kUZgsbBY0uPjLg== - dependencies: - "@aws-sdk/credential-provider-env" "3.465.0" - "@aws-sdk/credential-provider-process" "3.465.0" - "@aws-sdk/credential-provider-sso" "3.465.0" - "@aws-sdk/credential-provider-web-identity" "3.465.0" - "@aws-sdk/types" "3.465.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.5.0" - tslib "^2.5.0" - -"@aws-sdk/credential-provider-node@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.465.0.tgz#b11cbc927aa17aacd0b7208cef5a88045c0bcf62" - integrity sha512-R3VA9yJ0BvezvrDxcgPTv9VHbVPbzchLTrX5jLFSVuW/lPPYLUi/Cjtyg9C9Y7qRfoQS4fNMvSRhwO5/TF68gA== - dependencies: - "@aws-sdk/credential-provider-env" "3.465.0" - "@aws-sdk/credential-provider-ini" "3.465.0" - "@aws-sdk/credential-provider-process" "3.465.0" - "@aws-sdk/credential-provider-sso" "3.465.0" - "@aws-sdk/credential-provider-web-identity" "3.465.0" - "@aws-sdk/types" "3.465.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.5.0" - tslib "^2.5.0" - -"@aws-sdk/credential-provider-process@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.465.0.tgz#78134b19f7a02e7fb78afda16d7cae5b93ff324e" - integrity sha512-YE6ZrRYwvb8969hWQnr4uvOJ8RU0JrNsk3vWTe/czly37ioZUEhi8jmpQp4f2mX/6U6buoFGWu5Se3VCdw2SFQ== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/credential-provider-sso@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.465.0.tgz#622d03eb5c8a0d7a48ba12e849351c841eb48ca6" - integrity sha512-tLIP/4JQIJpn8yIg6RZRQ2nmvj5i4wLZvYvY4RtaFv2JrQUkmmTfyOZJuOBrIFRwJjx0fHmFu8DJjcOhMzllIQ== - dependencies: - "@aws-sdk/client-sso" "3.465.0" - "@aws-sdk/token-providers" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/credential-provider-web-identity@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.465.0.tgz#9db18766eeb0c58a99f7fb5d4bd95f0cf9008d4d" - integrity sha512-B4Y75fMTZIniEU0yyqat+9NsQbYlXdqP5Y3bShkaG3pGLOHzF/xMlWuG+D3kkQ806PLYi+BgfVls4BcO+NyVcA== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/lib-storage@^3.226.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.465.0.tgz#ad9d1d3bcdd8dd5c234a38a805780adfe6e07860" - integrity sha512-nsh8FgVw31N0GO6yiThg2I8yG0rRlpvnEm/MYQ8ETpmm2uq4inbup7eS8FxtfxhU6cGcJZu+YLeBwEdKrTSmvA== - dependencies: - "@smithy/abort-controller" "^2.0.1" - "@smithy/middleware-endpoint" "^2.2.0" - "@smithy/smithy-client" "^2.1.15" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-cloudfront@^3.879.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.901.0.tgz#e7bed6efb61f11b49d71d08c4a2dfc5bb6eef1b2" + integrity sha512-1JjAc4/JU7nPCTg3sXClw0HL7ITrH/VxdRbEN1lvW2QDM0Hd93IRzttDcig+4IrDNqdLQcUJ8s7oj4iYSz3atg== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-kms@^3.879.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-kms/-/client-kms-3.901.0.tgz#88628721156cbab69cdfcbb4257d235dea5a912e" + integrity sha512-QpQCzGL3++2nanUsh4mOoWFHN510OgYrB70t6xNcz6CWaFedYcsX0Zjq6UAulWoQ2UGnMZkvZ4MElG0AQBu92w== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-s3@^3.879.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.901.0.tgz#42e9faf3b9943c56e86ade41a36950dfb231d095" + integrity sha512-wyKhZ51ur1tFuguZ6PgrUsot9KopqD0Tmxw8O8P/N3suQDxFPr0Yo7Y77ezDRDZQ95Ml3C0jlvx79HCo8VxdWA== + dependencies: + "@aws-crypto/sha1-browser" "5.2.0" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-bucket-endpoint" "3.901.0" + "@aws-sdk/middleware-expect-continue" "3.901.0" + "@aws-sdk/middleware-flexible-checksums" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-location-constraint" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-sdk-s3" "3.901.0" + "@aws-sdk/middleware-ssec" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/signature-v4-multi-region" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/eventstream-serde-browser" "^4.2.0" + "@smithy/eventstream-serde-config-resolver" "^4.3.0" + "@smithy/eventstream-serde-node" "^4.2.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-blob-browser" "^4.2.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/hash-stream-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/md5-js" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.901.0.tgz#bad08910097ffa0458c2fe662dd4f8439c6e7eeb" + integrity sha512-sGyDjjkJ7ppaE+bAKL/Q5IvVCxtoyBIzN+7+hWTS/mUxWJ9EOq9238IqmVIIK6sYNIzEf9yhobfMARasPYVTNg== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.901.0.tgz#054341ff9ddede525a7bc3881872a97598fe757f" + integrity sha512-brKAc3y64tdhyuEf+OPIUln86bRTqkLgb9xkd6kUdIeA5+qmp/N6amItQz+RN4k4O3kqkCPYnAd3LonTKluobw== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/core" "^3.14.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.901.0.tgz#d3192a091a94931b2fbc2ef82a278d8daea06f43" + integrity sha512-5hAdVl3tBuARh3zX5MLJ1P/d+Kr5kXtDU3xm1pxUEF4xt2XkEEpwiX5fbkNkz2rbh3BCt2gOHsAbh6b3M7n+DA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.901.0.tgz#40bbaa9e62431741d8ea7ed31c8e10de75a9ecde" + integrity sha512-Ggr7+0M6QZEsrqRkK7iyJLf4LkIAacAxHz9c4dm9hnDdU7vqrlJm6g73IxMJXWN1bIV7IxfpzB11DsRrB/oNjQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-stream" "^4.4.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.901.0.tgz#83ada385ae94fed0a362f3be4689cf0a0284847d" + integrity sha512-zxadcDS0hNJgv8n4hFYJNOXyfjaNE1vvqIiF/JzZSQpSSYXzCd+WxXef5bQh+W3giDtRUmkvP5JLbamEFjZKyw== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-env" "3.901.0" + "@aws-sdk/credential-provider-http" "3.901.0" + "@aws-sdk/credential-provider-process" "3.901.0" + "@aws-sdk/credential-provider-sso" "3.901.0" + "@aws-sdk/credential-provider-web-identity" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.901.0.tgz#b48ddc78998e6a96ad14ecec22d81714c59ff6d1" + integrity sha512-dPuFzMF7L1s/lQyT3wDxqLe82PyTH+5o1jdfseTEln64LJMl0ZMWaKX/C1UFNDxaTd35Cgt1bDbjjAWHMiKSFQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.901.0" + "@aws-sdk/credential-provider-http" "3.901.0" + "@aws-sdk/credential-provider-ini" "3.901.0" + "@aws-sdk/credential-provider-process" "3.901.0" + "@aws-sdk/credential-provider-sso" "3.901.0" + "@aws-sdk/credential-provider-web-identity" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.901.0.tgz#0e388fe22f357adb9c07b5f4a055eff6ba99dcff" + integrity sha512-/IWgmgM3Cl1wTdJA5HqKMAojxLkYchh5kDuphApxKhupLu6Pu0JBOHU8A5GGeFvOycyaVwosod6zDduINZxe+A== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.901.0.tgz#b60d8619edeb6b45c79a3f7cc0392a899de44886" + integrity sha512-SjmqZQHmqFSET7+6xcZgtH7yEyh5q53LN87GqwYlJZ6KJ5oNw11acUNEhUOL1xTSJEvaWqwTIkS2zqrzLcM9bw== + dependencies: + "@aws-sdk/client-sso" "3.901.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/token-providers" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.901.0.tgz#512ad0d35e59bc669b41e18479e6b92d62a2d42a" + integrity sha512-NYjy/6NLxH9m01+pfpB4ql8QgAorJcu8tw69kzHwUd/ql6wUDTbC7HcXqtKlIwWjzjgj2BKL7j6SyFapgCuafA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/lib-storage@3.879.0": + version "3.879.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.879.0.tgz#62c8b6ad53e0d8e595d5ba486def140de413b0d1" + integrity sha512-FAb3vOfLIrf8lPuDoxKRu18DxXfQLEFm7MoXi0jd8ooFjD09jpVCQGNrRuMCqc688wrx7zJSovWObtn4LRjvrg== + dependencies: + "@smithy/abort-controller" "^4.0.5" + "@smithy/middleware-endpoint" "^4.1.19" + "@smithy/smithy-client" "^4.5.0" buffer "5.6.0" events "3.3.0" stream-browserify "3.0.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-bucket-endpoint@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.465.0.tgz#215489d3cbdac037c3d5abaeabda173c3bc16b95" - integrity sha512-cyIR9Nwyie6giLypuLSUmZF3O5GqVRwia3Nq1B/6/Ho0LccH0/HT2x/nM8fFcnskWSNGTVZVvZzSrVYXynTtjA== - dependencies: - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-arn-parser" "3.465.0" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/protocol-http" "^3.0.9" - "@smithy/types" "^2.5.0" - "@smithy/util-config-provider" "^2.0.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-expect-continue@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.465.0.tgz#760aec6a19898972a4d97857ea2760bcd191c791" - integrity sha512-kthlPQDASsdtdVqKVKkJn9bHptcEpsQ6ptWeGBCYigicULvWI1fjSTeXrYczxNMVg+1Sv8xkb/bh+kUEu7mvZg== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-flexible-checksums@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.465.0.tgz#7b629873182bc107159665f0af5b6515161c8891" - integrity sha512-joWEWN0v1CpI4q9JlZki0AchVwLL8Les0+V+3JHVDcDgL4RQ04YUk9lMYbtldDwdyBNquKwW2+sGtIo/6ng0Tg== - dependencies: - "@aws-crypto/crc32" "3.0.0" - "@aws-crypto/crc32c" "3.0.0" - "@aws-sdk/types" "3.465.0" - "@smithy/is-array-buffer" "^2.0.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/types" "^2.5.0" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" - -"@aws-sdk/middleware-host-header@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.465.0.tgz#4f353f6ea063e1ba1df968f9f0126a53d746217d" - integrity sha512-nnGva8eplwEJqdVzcb+xF2Fwua0PpiwxMEvpnIy73gNbetbJdgFIprryMLYes00xzJEqnew+LWdpcd3YyS34ZA== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-location-constraint@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.465.0.tgz#ce2f09d3257bd288990e567f406e74bbe08a5663" - integrity sha512-2+mwaI/ltE2ibr5poC+E9kJRfVIv7aHpAJkLu7uvESch9cpuFuGJu6fq0/gA82eKZ/gwpBj+AaXBsDFfsDWFsw== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-logger@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.465.0.tgz#7d66b375ee343f00e35c64ba79b37656828bf171" - integrity sha512-aGMx1aSlzDDgjZ7fSxLhGD5rkyCfHwq04TSB5fQAgDBqUjj4IQXZwmNglX0sLRmArXZtDglUVESOfKvTANJTPg== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-recursion-detection@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.465.0.tgz#d0cb1fd9c63dbe997406253b5e0ce402103d910f" - integrity sha512-ol3dlsTnryBhV5qkUvK5Yg3dRaV1NXIxYJaIkShrl8XAv4wRNcDJDmO5NYq5eVZ3zgV1nv6xIpZ//dDnnf6Z+g== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-sdk-s3@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.465.0.tgz#fd417ce7a958066afb5c293b49eacd2f807e853e" - integrity sha512-P4cpNv0EcMSSLojjqKKQjKSGZc13QJQAscUs+fcvpBg2BNR9ByxrQgXXMqQiIqr8fgAhADqN2Tp8hJk0CzfnAg== - dependencies: - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-arn-parser" "3.465.0" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/protocol-http" "^3.0.9" - "@smithy/signature-v4" "^2.0.0" - "@smithy/smithy-client" "^2.1.15" - "@smithy/types" "^2.5.0" - "@smithy/util-config-provider" "^2.0.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-sdk-sts@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.465.0.tgz#73ad1f0940f924be1141125ceffcf4204c54c9bf" - integrity sha512-PmTM5ycUe1RLAPrQXLCR8JzKamJuKDB0aIW4rx4/skurzWsEGRI47WHggf9N7sPie41IBGUhRbXcf7sfPjvI3Q== - dependencies: - "@aws-sdk/middleware-signing" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-signing@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.465.0.tgz#2a040c39bfd6f2528ef9798944b4de2d33d2bdd1" - integrity sha512-d90KONWXSC3jA0kqJ6u8ygS4LoMg1TmSM7bPhHyibJVAEhnrlB4Aq1CWljNbbtphGpdKy5/XRM9O0/XCXWKQ4w== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/signature-v4" "^2.0.0" - "@smithy/types" "^2.5.0" - "@smithy/util-middleware" "^2.0.6" - tslib "^2.5.0" - -"@aws-sdk/middleware-ssec@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.465.0.tgz#ca6aff262527f0089a003afa33e901b81908f486" - integrity sha512-PHc1guBGp7fwoPlJkAEaHVkiYPfs93jffwsBvIevCsHcfYPv6L26/5Nk7KR+6IyuGQHpUbSC080SP1jYjOy01A== - dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-user-agent@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.465.0.tgz#2820d55ff7d774a4afe60f85fe88d959171f9052" - integrity sha512-1MvIWMj2nktLOJN8Kh4jiTK28oL85fTeoXHZ+V8xYMzont6C6Y8gQPtg7ka+RotHwqWMrovfnANisnX8EzEP/Q== - dependencies: - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-endpoints" "3.465.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/region-config-resolver@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.465.0.tgz#87c3d2fe96e1e759d818f179f1e72204791145e6" - integrity sha512-h0Phd2Ae873dsPSWuxqxz2yRC5NMeeWxQiJPh4j42HF8g7dZK7tMQPkYznAoA/BzSBsEX87sbr3MmigquSyUTA== - dependencies: - "@smithy/node-config-provider" "^2.1.5" - "@smithy/types" "^2.5.0" - "@smithy/util-config-provider" "^2.0.0" - "@smithy/util-middleware" "^2.0.6" - tslib "^2.5.0" - -"@aws-sdk/signature-v4-multi-region@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.465.0.tgz#c4c5b00d5998ea8e2a675cc592a0fb5eaa691147" - integrity sha512-p620S4YCr2CPNIdSnRvBqScAqWztjef9EwtD1MAkxTTrjNAyxSCf4apeQ2pdaWNNkJT1vSc/YKBAJ7l2SWn7rw== - dependencies: - "@aws-sdk/middleware-sdk-s3" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/signature-v4" "^2.0.0" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - -"@aws-sdk/token-providers@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.465.0.tgz#e063a30c73878462a5a1542a3eb28ac5e72c5921" - integrity sha512-NaZbsyLs3whzRHGV27hrRwEdXB/tEK6tqn/aCNBy862LhVzocY1A+eYLKrnrvpraOOd2vyAuOtvvB3RMIdiL6g== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/middleware-host-header" "3.465.0" - "@aws-sdk/middleware-logger" "3.465.0" - "@aws-sdk/middleware-recursion-detection" "3.465.0" - "@aws-sdk/middleware-user-agent" "3.465.0" - "@aws-sdk/region-config-resolver" "3.465.0" - "@aws-sdk/types" "3.465.0" - "@aws-sdk/util-endpoints" "3.465.0" - "@aws-sdk/util-user-agent-browser" "3.465.0" - "@aws-sdk/util-user-agent-node" "3.465.0" - "@smithy/config-resolver" "^2.0.18" - "@smithy/fetch-http-handler" "^2.2.6" - "@smithy/hash-node" "^2.0.15" - "@smithy/invalid-dependency" "^2.0.13" - "@smithy/middleware-content-length" "^2.0.15" - "@smithy/middleware-endpoint" "^2.2.0" - "@smithy/middleware-retry" "^2.0.20" - "@smithy/middleware-serde" "^2.0.13" - "@smithy/middleware-stack" "^2.0.7" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/node-http-handler" "^2.1.9" - "@smithy/property-provider" "^2.0.0" - "@smithy/protocol-http" "^3.0.9" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/smithy-client" "^2.1.15" - "@smithy/types" "^2.5.0" - "@smithy/url-parser" "^2.0.13" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.0" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.19" - "@smithy/util-defaults-mode-node" "^2.0.25" - "@smithy/util-endpoints" "^1.0.4" - "@smithy/util-retry" "^2.0.6" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" - -"@aws-sdk/types@3.465.0", "@aws-sdk/types@^3.222.0": + tslib "^2.6.2" + +"@aws-sdk/middleware-bucket-endpoint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.901.0.tgz#5b7f740cff9f91d21084b666be225876d72e634b" + integrity sha512-mPF3N6eZlVs9G8aBSzvtoxR1RZqMo1aIwR+X8BAZSkhfj55fVF2no4IfPXfdFO3I66N+zEQ8nKoB0uTATWrogQ== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-expect-continue@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.901.0.tgz#bd6c1fde979808418ce013c6f5f379e67ef2f4c4" + integrity sha512-bwq9nj6MH38hlJwOY9QXIDwa6lI48UsaZpaXbdD71BljEIRlxDzfB4JaYb+ZNNK7RIAdzsP/K05mJty6KJAQHw== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-flexible-checksums@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.901.0.tgz#373449d1609c9af810a824b395633ce6d1fc03f1" + integrity sha512-63lcKfggVUFyXhE4SsFXShCTCyh7ZHEqXLyYEL4DwX+VWtxutf9t9m3fF0TNUYDE8eEGWiRXhegj8l4FjuW+wA== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/crc32c" "5.2.0" + "@aws-crypto/util" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.901.0.tgz#e6b3a6706601d93949ca25167ecec50c40e3d9de" + integrity sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-location-constraint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.901.0.tgz#0a74fdd450cdec336f3ccdcb7b2fdbf4ce8b9e0b" + integrity sha512-MuCS5R2ngNoYifkVt05CTULvYVWX0dvRT0/Md4jE3a0u0yMygYy31C1zorwfE/SUgAQXyLmUx8ATmPp9PppImQ== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.901.0.tgz#30562184bd0b6a90d30f2d6d58ef5054300f2652" + integrity sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.901.0.tgz#8492bd83aeee52f4e1b4194a81d044f46acf8c5b" + integrity sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws/lambda-invoke-store" "^0.0.1" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-sdk-s3@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.901.0.tgz#65ae0e84b020a1dd28278a1610cc4c8978edf853" + integrity sha512-prgjVC3fDT2VIlmQPiw/cLee8r4frTam9GILRUVQyDdNtshNwV3MiaSCLzzQJjKJlLgnBLNUHJCSmvUVtg+3iA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/core" "^3.14.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-ssec@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.901.0.tgz#9a08f8a90a12c5d3eccabd884d8dfdd2f76473a4" + integrity sha512-YiLLJmA3RvjL38mFLuu8fhTTGWtp2qT24VqpucgfoyziYcTgIQkJJmKi90Xp6R6/3VcArqilyRgM1+x8i/em+Q== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.901.0.tgz#ff6ff86115e1c580f369d33a25213e336896c548" + integrity sha512-Zby4F03fvD9xAgXGPywyk4bC1jCbnyubMEYChLYohD+x20ULQCf+AimF/Btn7YL+hBpzh1+RmqmvZcx+RgwgNQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@smithy/core" "^3.14.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/nested-clients@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.901.0.tgz#8fcd2c48a0132ef1623b243ec88b6aff3164e76a" + integrity sha512-feAAAMsVwctk2Tms40ONybvpfJPLCmSdI+G+OTrNpizkGLNl6ik2Ng2RzxY6UqOfN8abqKP/DOUj1qYDRDG8ag== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.901.0.tgz#6673eeda4ecc0747f93a084e876cab71431a97ca" + integrity sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/signature-v4-multi-region@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.901.0.tgz#773cd83ab38efe8bd5c1e563e5bd8b79391dfa12" + integrity sha512-2IWxbll/pRucp1WQkHi2W5E2SVPGBvk4Is923H7gpNksbVFws18ItjMM8ZpGm44cJEoy1zR5gjhLFklatpuoOw== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.901.0.tgz#1f506f169cde6342c8bad75c068a719453ebcf54" + integrity sha512-pJEr1Ggbc/uVTDqp9IbNu9hdr0eQf3yZix3s4Nnyvmg4xmJSGAlbPC9LrNr5u3CDZoc8Z9CuLrvbP4MwYquNpQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.901.0.tgz#b5a2e26c7b3fb3bbfe4c7fc24873646992a1c56c" + integrity sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/types@^3.222.0": version "3.465.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.465.0.tgz#74977008020f3ed2e5fa0d61daef70d1cbfbfc37" integrity sha512-Clqu2eD50OOzwSftGpzJrIOGev/7VJhJpc02SeS4cqFgI9EVd+rnFKS/Ux0kcwjLQBMiPcCLtql3KAHApFHAIA== @@ -1186,21 +1151,23 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" -"@aws-sdk/util-arn-parser@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.465.0.tgz#2896f6b06f69770378586853c97a0f283cbb2e20" - integrity sha512-zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw== +"@aws-sdk/util-arn-parser@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz#fcc9b792744b9da597662891c2422dda83881d8d" + integrity sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA== dependencies: - tslib "^2.5.0" + tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.465.0.tgz#b3800364bd856bdfe94e0a1c72979d1bda27a0b8" - integrity sha512-lDpBN1faVw8Udg5hIo+LJaNfllbBF86PCisv628vfcggO8/EArL/v2Eos0KeqVT8yaINXCRSagwfo5TNTuW0KQ== +"@aws-sdk/util-endpoints@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.901.0.tgz#be6296739d0f446b89a3f497c3a85afeb6cddd92" + integrity sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg== dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/util-endpoints" "^1.0.4" - tslib "^2.5.0" + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": version "3.465.0" @@ -1209,39 +1176,40 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-user-agent-browser@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.465.0.tgz#2cb792c48770fe650cbb2b66ac21a8d65b0ca5ba" - integrity sha512-RM+LjkIsmUCBJ4yQeBnkJWJTjPOPqcNaKv8bpZxatIHdvzGhXLnWLNi3qHlBsJB2mKtKRet6nAUmKmzZR1sDzA== +"@aws-sdk/util-user-agent-browser@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.901.0.tgz#2c0e71e9019f054fb6a6061f99f55c13fb92830f" + integrity sha512-Ntb6V/WFI21Ed4PDgL/8NSfoZQQf9xzrwNgiwvnxgAl/KvAvRBgQtqj5gHsDX8Nj2YmJuVoHfH9BGjL9VQ4WNg== dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/types" "^2.5.0" + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" bowser "^2.11.0" - tslib "^2.5.0" + tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.465.0.tgz#5838e93a0f2102fb555131f40bd454707caba3f9" - integrity sha512-XsHbq7gLCiGdy6FQ7/5nGslK0ij3Iuh051djuIICvNurlds5cqKLiBe63gX3IUUwxJcrKh4xBGviQJ52KdVSeg== +"@aws-sdk/util-user-agent-node@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.901.0.tgz#3a0a59a93229016f011e7ee0533d36275e3063bd" + integrity sha512-l59KQP5TY7vPVUfEURc7P5BJKuNg1RSsAKBQW7LHLECXjLqDUbo2SMLrexLBEoArSt6E8QOrIN0C8z/0Xk0jYw== dependencies: - "@aws-sdk/types" "3.465.0" - "@smithy/node-config-provider" "^2.1.5" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@aws-sdk/util-utf8-browser@^3.0.0": - version "3.259.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" - integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== +"@aws-sdk/xml-builder@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.901.0.tgz#3cd2e3929cefafd771c8bd790ec6965faa1be49d" + integrity sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw== dependencies: - tslib "^2.3.1" + "@smithy/types" "^4.6.0" + fast-xml-parser "5.2.5" + tslib "^2.6.2" -"@aws-sdk/xml-builder@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.465.0.tgz#0914bc0b9708848f1fa509dd6e474e8c691a0cb2" - integrity sha512-9TKW5ZgsReygePTnAUdvaqxr/k1HXsEz2yDnk/jTLaUeRPsd5la8fFjb6OfgYYlbEVNlxTcKzaqOdrqxpUkmyQ== - dependencies: - tslib "^2.5.0" +"@aws/lambda-invoke-store@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz#92d792a7dda250dfcb902e13228f37a81be57c8f" + integrity sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw== "@babel/code-frame@7.10.4", "@babel/code-frame@~7.10.4": version "7.10.4" @@ -6641,452 +6609,512 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@smithy/abort-controller@^2.0.1", "@smithy/abort-controller@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.0.14.tgz#0608c34e35289e66ba839bbdda0c2ccd971e8d26" - integrity sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw== +"@smithy/abort-controller@^4.0.5", "@smithy/abort-controller@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.0.tgz#ced549ad5e74232bdcb3eec990b02b1c6d81003d" + integrity sha512-PLUYa+SUKOEZtXFURBu/CNxlsxfaFGxSBPcStL13KpVeVWIfdezWyDqkz7iDLmwnxojXD0s5KzuB5HGHvt4Aeg== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/chunked-blob-reader-native@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.0.1.tgz#0599eaed8c2cd15c7ab43a1838cef1258ff27133" - integrity sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw== +"@smithy/chunked-blob-reader-native@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.0.tgz#3115cfb230f20da21d1011ee2b47165f4c2773e3" + integrity sha512-HNbGWdyTfSM1nfrZKQjYTvD8k086+M8s1EYkBUdGC++lhxegUp2HgNf5RIt6oOGVvsC26hBCW/11tv8KbwLn/Q== dependencies: - "@smithy/util-base64" "^2.0.1" - tslib "^2.5.0" + "@smithy/util-base64" "^4.2.0" + tslib "^2.6.2" -"@smithy/chunked-blob-reader@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.0.0.tgz#c44fe2c780eaf77f9e5381d982ac99a880cce51b" - integrity sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg== - dependencies: - tslib "^2.5.0" - -"@smithy/config-resolver@^2.0.18", "@smithy/config-resolver@^2.0.19": - version "2.0.19" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.0.19.tgz#d246fff11bdf8089e85de2e26172ba27a5ff7980" - integrity sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog== +"@smithy/chunked-blob-reader@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz#776fec5eaa5ab5fa70d0d0174b7402420b24559c" + integrity sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA== dependencies: - "@smithy/node-config-provider" "^2.1.6" - "@smithy/types" "^2.6.0" - "@smithy/util-config-provider" "^2.0.0" - "@smithy/util-middleware" "^2.0.7" - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/credential-provider-imds@^2.0.0", "@smithy/credential-provider-imds@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.2.tgz#b0225e2f514c5394558f702184feac94453ec9d1" - integrity sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw== +"@smithy/config-resolver@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.3.0.tgz#a8bb72a21ff99ac91183a62fcae94f200762c256" + integrity sha512-9oH+n8AVNiLPK/iK/agOsoWfrKZ3FGP3502tkksd6SRsKMYiu7AFX0YXo6YBADdsAj7C+G/aLKdsafIJHxuCkQ== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + +"@smithy/core@^3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.14.0.tgz#22bdb346b171c76b629c4f59dc496c27e10f1c82" + integrity sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA== + dependencies: + "@smithy/middleware-serde" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.0.tgz#21855ceb157afeea60d74c61fe7316e90d8ec545" + integrity sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big== dependencies: - "@smithy/node-config-provider" "^2.1.6" - "@smithy/property-provider" "^2.0.15" - "@smithy/types" "^2.6.0" - "@smithy/url-parser" "^2.0.14" - tslib "^2.5.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + tslib "^2.6.2" -"@smithy/eventstream-codec@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.14.tgz#e56434ae34be6682c7e9f12bb2f50e73b301914a" - integrity sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA== +"@smithy/eventstream-codec@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.0.tgz#ea8514363278d062b574859d663f131238a6920c" + integrity sha512-XE7CtKfyxYiNZ5vz7OvyTf1osrdbJfmUy+rbh+NLQmZumMGvY0mT0Cq1qKSfhrvLtRYzMsOBuRpi10dyI0EBPg== dependencies: - "@aws-crypto/crc32" "3.0.0" - "@smithy/types" "^2.6.0" - "@smithy/util-hex-encoding" "^2.0.0" - tslib "^2.5.0" + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^4.6.0" + "@smithy/util-hex-encoding" "^4.2.0" + tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^2.0.13": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.14.tgz#be04544b8d4efc29fa84c2b2d89bcd8a2280495b" - integrity sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q== +"@smithy/eventstream-serde-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.0.tgz#d97c4a3f185459097c00e05a23007ffa074f972d" + integrity sha512-U53p7fcrk27k8irLhOwUu+UYnBqsXNLKl1XevOpsxK3y1Lndk8R7CSiZV6FN3fYFuTPuJy5pP6qa/bjDzEkRvA== dependencies: - "@smithy/eventstream-serde-universal" "^2.0.14" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/eventstream-serde-universal" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^2.0.13": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.14.tgz#ab2a2a96b6f5c04cc3c1bebd75375015016f4735" - integrity sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw== +"@smithy/eventstream-serde-config-resolver@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.0.tgz#5ee07ed6808c3cac2e4b7ef5059fd9be6aff4a4a" + integrity sha512-uwx54t8W2Yo9Jr3nVF5cNnkAAnMCJ8Wrm+wDlQY6rY/IrEgZS3OqagtCu/9ceIcZFQ1zVW/zbN9dxb5esuojfA== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/eventstream-serde-node@^2.0.13": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.14.tgz#810780e40810b8d7d4545b9961c0b4626ab9906a" - integrity sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA== +"@smithy/eventstream-serde-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.0.tgz#397640826f72082e4d33e02525603dcf1baf756f" + integrity sha512-yjM2L6QGmWgJjVu/IgYd6hMzwm/tf4VFX0lm8/SvGbGBwc+aFl3hOzvO/e9IJ2XI+22Tx1Zg3vRpFRs04SWFcg== dependencies: - "@smithy/eventstream-serde-universal" "^2.0.14" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/eventstream-serde-universal" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.14.tgz#45d7fc506bd98d5f746b45fe9bfc8e3f09aa147f" - integrity sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g== +"@smithy/eventstream-serde-universal@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.0.tgz#e556f85638c7037cbd17f72a1cbd2dcdd3185f7d" + integrity sha512-C3jxz6GeRzNyGKhU7oV656ZbuHY93mrfkT12rmjDdZch142ykjn8do+VOkeRNjSGKw01p4g+hdalPYPhmMwk1g== dependencies: - "@smithy/eventstream-codec" "^2.0.14" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/eventstream-codec" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/fetch-http-handler@^2.2.6", "@smithy/fetch-http-handler@^2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.7.tgz#7e06aa774ea86f6529365e439256f17979c18445" - integrity sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ== +"@smithy/fetch-http-handler@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.0.tgz#1c5205642a9295f44441d8763e7c3a51a747fc95" + integrity sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw== dependencies: - "@smithy/protocol-http" "^3.0.10" - "@smithy/querystring-builder" "^2.0.14" - "@smithy/types" "^2.6.0" - "@smithy/util-base64" "^2.0.1" - tslib "^2.5.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/querystring-builder" "^4.2.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + tslib "^2.6.2" -"@smithy/hash-blob-browser@^2.0.14": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.15.tgz#be745ea0e79333dbb2d2a26b4be04ce283636c98" - integrity sha512-HX/7GIyPUT/HDWVYe2HYQu0iRnSYpF4uZVNhAhZsObPRawk5Mv0PbyluBgIFI2DDCCKgL/tloCYYwycff1GtQg== +"@smithy/hash-blob-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.0.tgz#b7bd8c5b379ebfae5b8ce10312da1351d7ff5ff4" + integrity sha512-MWmrRTPqVKpN8NmxmJPTeQuhewTt8Chf+waB38LXHZoA02+BeWYVQ9ViAwHjug8m7lQb1UWuGqp3JoGDOWvvuA== dependencies: - "@smithy/chunked-blob-reader" "^2.0.0" - "@smithy/chunked-blob-reader-native" "^2.0.1" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/chunked-blob-reader" "^5.2.0" + "@smithy/chunked-blob-reader-native" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/hash-node@^2.0.15": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.0.16.tgz#babd9e3fb13339507ffcc182834cf10c4df028b1" - integrity sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg== +"@smithy/hash-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.0.tgz#d2de380cb88a3665d5e3f5bbe901cfb46867c74f" + integrity sha512-ugv93gOhZGysTctZh9qdgng8B+xO0cj+zN0qAZ+Sgh7qTQGPOJbMdIuyP89KNfUyfAqFSNh5tMvC+h2uCpmTtA== dependencies: - "@smithy/types" "^2.6.0" - "@smithy/util-buffer-from" "^2.0.0" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" -"@smithy/hash-stream-node@^2.0.15": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.0.16.tgz#892d211ddc2609c3e5486a5d1b7e4d0423a7fbe9" - integrity sha512-4x24GFdeWos1Z49MC5sYdM1j+z32zcUr6oWM9Ggm3WudFAcRIcbG9uDQ1XgJ0Kl+ZTjpqLKniG0iuWvQb2Ud1A== +"@smithy/hash-stream-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.0.tgz#7d3067d566e32167ebcb80f22260cc57de036ec9" + integrity sha512-8dELAuGv+UEjtzrpMeNBZc1sJhO8GxFVV/Yh21wE35oX4lOE697+lsMHBoUIFAUuYkTMIeu0EuJSEsH7/8Y+UQ== dependencies: - "@smithy/types" "^2.6.0" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" -"@smithy/invalid-dependency@^2.0.13": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.0.14.tgz#fc898c8cf0c4ceb29bb23c6a90f7522193622e75" - integrity sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ== +"@smithy/invalid-dependency@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.0.tgz#749c741c1b01bcdb12c0ec24701db655102f6ea7" + integrity sha512-ZmK5X5fUPAbtvRcUPtk28aqIClVhbfcmfoS4M7UQBTnDdrNxhsrxYVv0ZEl5NaPSyExsPWqL4GsPlRvtlwg+2A== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/is-array-buffer@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz#8fa9b8040651e7ba0b2f6106e636a91354ff7d34" - integrity sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug== +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== dependencies: - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/md5-js@^2.0.15": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.0.16.tgz#ef1af727ebeb0a24a195904c06a91b946f3ce32d" - integrity sha512-YhWt9aKl+EMSNXyUTUo7I01WHf3HcCkPu/Hl2QmTNwrHT49eWaY7hptAMaERZuHFH0V5xHgPKgKZo2I93DFtgQ== +"@smithy/is-array-buffer@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz#b0f874c43887d3ad44f472a0f3f961bcce0550c2" + integrity sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ== dependencies: - "@smithy/types" "^2.6.0" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/middleware-content-length@^2.0.15": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.0.16.tgz#0d77cfe0d375bfbf1e59f30a38de0e3f14a1e73f" - integrity sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng== +"@smithy/md5-js@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.0.tgz#46bb7b122d9de1aa306e767ae64230fc6c8d67c2" + integrity sha512-LFEPniXGKRQArFmDQ3MgArXlClFJMsXDteuQQY8WG1/zzv6gVSo96+qpkuu1oJp4MZsKrwchY0cuAoPKzEbaNA== dependencies: - "@smithy/protocol-http" "^3.0.10" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" - -"@smithy/middleware-endpoint@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.1.tgz#7fc156aaeaa0e8bd838c57a8b37ece355a9eeaec" - integrity sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg== - dependencies: - "@smithy/middleware-serde" "^2.0.14" - "@smithy/node-config-provider" "^2.1.6" - "@smithy/shared-ini-file-loader" "^2.2.5" - "@smithy/types" "^2.6.0" - "@smithy/url-parser" "^2.0.14" - "@smithy/util-middleware" "^2.0.7" - tslib "^2.5.0" - -"@smithy/middleware-retry@^2.0.20": - version "2.0.21" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.21.tgz#7c18cbb7ca5c7fd1777e062b3cbebc57a60bddca" - integrity sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw== - dependencies: - "@smithy/node-config-provider" "^2.1.6" - "@smithy/protocol-http" "^3.0.10" - "@smithy/service-error-classification" "^2.0.7" - "@smithy/types" "^2.6.0" - "@smithy/util-middleware" "^2.0.7" - "@smithy/util-retry" "^2.0.7" - tslib "^2.5.0" - uuid "^8.3.2" + "@smithy/types" "^4.6.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" -"@smithy/middleware-serde@^2.0.13", "@smithy/middleware-serde@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.0.14.tgz#147e7413f934f213dbfe4815e691409cc9c0d793" - integrity sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g== +"@smithy/middleware-content-length@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.0.tgz#bf1bea6e7c0e35e8c6d4825880e4cfa903cbd501" + integrity sha512-6ZAnwrXFecrA4kIDOcz6aLBhU5ih2is2NdcZtobBDSdSHtE9a+MThB5uqyK4XXesdOCvOcbCm2IGB95birTSOQ== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/middleware-stack@^2.0.7", "@smithy/middleware-stack@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.0.8.tgz#76827e2818654eb5a482ede36a59de6d6db7b896" - integrity sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q== +"@smithy/middleware-endpoint@^4.1.19", "@smithy/middleware-endpoint@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.0.tgz#407ce4051be2f1855259a02900a957e9b347fdfd" + integrity sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw== + dependencies: + "@smithy/core" "^3.14.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + +"@smithy/middleware-retry@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.0.tgz#7f4b313a808aa8ac1a5922aff355e12c5a270de1" + integrity sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/service-error-classification" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@smithy/middleware-serde@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.0.tgz#1b7fcaa699d1c48f2c3cbbce325aa756895ddf0f" + integrity sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/node-config-provider@^2.1.5", "@smithy/node-config-provider@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.1.6.tgz#835f62902676de71a358f66a0887a09154cf43c2" - integrity sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA== +"@smithy/middleware-stack@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.0.tgz#fa2f7dcdb0f3a1649d1d2ec3dc4841d9c2f70e67" + integrity sha512-G5CJ//eqRd9OARrQu9MK1H8fNm2sMtqFh6j8/rPozhEL+Dokpvi1Og+aCixTuwDAGZUkJPk6hJT5jchbk/WCyg== dependencies: - "@smithy/property-provider" "^2.0.15" - "@smithy/shared-ini-file-loader" "^2.2.5" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/node-http-handler@^2.1.10", "@smithy/node-http-handler@^2.1.9": - version "2.1.10" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.1.10.tgz#8921a661dfb273a21dd1dff3ad1fe5196ea3c525" - integrity sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw== +"@smithy/node-config-provider@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.0.tgz#619ba522d683081d06f112a581b9009988cb38eb" + integrity sha512-5QgHNuWdT9j9GwMPPJCKxy2KDxZ3E5l4M3/5TatSZrqYVoEiqQrDfAq8I6KWZw7RZOHtVtCzEPdYz7rHZixwcA== dependencies: - "@smithy/abort-controller" "^2.0.14" - "@smithy/protocol-http" "^3.0.10" - "@smithy/querystring-builder" "^2.0.14" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/property-provider@^2.0.0", "@smithy/property-provider@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.0.15.tgz#7a5069f6bab4d59f640b2e73e99fa03e3fda3cc1" - integrity sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew== +"@smithy/node-http-handler@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.3.0.tgz#783d3dbdf5b90b9e0ca1e56070a3be38b3836b7d" + integrity sha512-RHZ/uWCmSNZ8cneoWEVsVwMZBKy/8123hEpm57vgGXA3Irf/Ja4v9TVshHK2ML5/IqzAZn0WhINHOP9xl+Qy6Q== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/abort-controller" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/querystring-builder" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/protocol-http@^3.0.10", "@smithy/protocol-http@^3.0.9": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.0.10.tgz#235ffdcdc3022c4a76b1785dbc6f9f8427859e1f" - integrity sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg== +"@smithy/property-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.0.tgz#431c573326f572ae9063d58c21690f28251f9dce" + integrity sha512-rV6wFre0BU6n/tx2Ztn5LdvEdNZ2FasQbPQmDOPfV9QQyDmsCkOAB0osQjotRCQg+nSKFmINhyda0D3AnjSBJw== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/querystring-builder@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.0.14.tgz#3ba4ba728ab10e040b46079afc983c3378032328" - integrity sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g== +"@smithy/protocol-http@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.0.tgz#2a2834386b706b959d20e7841099b1780ae62ace" + integrity sha512-6POSYlmDnsLKb7r1D3SVm7RaYW6H1vcNcTWGWrF7s9+2noNYvUsm7E4tz5ZQ9HXPmKn6Hb67pBDRIjrT4w/d7Q== dependencies: - "@smithy/types" "^2.6.0" - "@smithy/util-uri-escape" "^2.0.0" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/querystring-parser@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.0.14.tgz#0e3936d44c783540321fedd9d502aac22073a556" - integrity sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A== +"@smithy/querystring-builder@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.0.tgz#a6191d2eccc14ffce821a559ec26c94c636a39c6" + integrity sha512-Q4oFD0ZmI8yJkiPPeGUITZj++4HHYCW3pYBYfIobUCkYpI6mbkzmG1MAQQ3lJYYWj3iNqfzOenUZu+jqdPQ16A== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + "@smithy/util-uri-escape" "^4.2.0" + tslib "^2.6.2" -"@smithy/service-error-classification@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.0.7.tgz#9ef515fdc751a27a555f51121be5c37006a4c458" - integrity sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w== +"@smithy/querystring-parser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.0.tgz#4c4ebe257e951dff91f9db65f9558752641185e8" + integrity sha512-BjATSNNyvVbQxOOlKse0b0pSezTWGMvA87SvoFoFlkRsKXVsN3bEtjCxvsNXJXfnAzlWFPaT9DmhWy1vn0sNEA== dependencies: - "@smithy/types" "^2.6.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/shared-ini-file-loader@^2.0.6", "@smithy/shared-ini-file-loader@^2.2.5": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.5.tgz#7fe24f5f8143e9082b61c3fab4d4d7c395dda807" - integrity sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w== +"@smithy/service-error-classification@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.0.tgz#d98d9b351d05c21b83c5a012194480a8c2eae5b7" + integrity sha512-Ylv1ttUeKatpR0wEOMnHf1hXMktPUMObDClSWl2TpCVT4DwtJhCeighLzSLbgH3jr5pBNM0LDXT5yYxUvZ9WpA== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" - -"@smithy/signature-v4@^2.0.0": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.0.16.tgz#51456baa6992120031692e1bf28178b766bf40ac" - integrity sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg== - dependencies: - "@smithy/eventstream-codec" "^2.0.14" - "@smithy/is-array-buffer" "^2.0.0" - "@smithy/types" "^2.6.0" - "@smithy/util-hex-encoding" "^2.0.0" - "@smithy/util-middleware" "^2.0.7" - "@smithy/util-uri-escape" "^2.0.0" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" -"@smithy/smithy-client@^2.1.15", "@smithy/smithy-client@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.1.16.tgz#eae70fac673b06494c536fa5637c2df12887ce3a" - integrity sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ== +"@smithy/shared-ini-file-loader@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.0.tgz#241a493ea7fa7faeaefccf6a5fa81af521d91cfa" + integrity sha512-VCUPPtNs+rKWlqqntX0CbVvWyjhmX30JCtzO+s5dlzzxrvSfRh5SY0yxnkirvc1c80vdKQttahL71a9EsdolSQ== dependencies: - "@smithy/middleware-stack" "^2.0.8" - "@smithy/types" "^2.6.0" - "@smithy/util-stream" "^2.0.21" - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/types@^2.5.0", "@smithy/types@^2.6.0": +"@smithy/signature-v4@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.0.tgz#05d459cc4ec8f9d7300bb6b488cccedf2b73b7fb" + integrity sha512-MKNyhXEs99xAZaFhm88h+3/V+tCRDQ+PrDzRqL0xdDpq4gjxcMmf5rBA3YXgqZqMZ/XwemZEurCBQMfxZOWq/g== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-uri-escape" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^4.5.0", "@smithy/smithy-client@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.7.0.tgz#1b0b74a3f58bdf7a77024473b6fe6ec1aa9556c2" + integrity sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ== + dependencies: + "@smithy/core" "^3.14.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-stream" "^4.4.0" + tslib "^2.6.2" + +"@smithy/types@^2.5.0": version "2.6.0" resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.6.0.tgz#a09c40b512e2df213229a20a43d0d9cfcf55ca3e" integrity sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g== dependencies: tslib "^2.5.0" -"@smithy/url-parser@^2.0.13", "@smithy/url-parser@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.0.14.tgz#6e09902482e9fef0882e6c9f1009ca57fcf3f7b4" - integrity sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw== +"@smithy/types@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.6.0.tgz#8ea8b15fedee3cdc555e8f947ce35fb1e973bb7a" + integrity sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA== dependencies: - "@smithy/querystring-parser" "^2.0.14" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/util-base64@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.0.1.tgz#57f782dafc187eddea7c8a1ff2a7c188ed1a02c4" - integrity sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ== +"@smithy/url-parser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.0.tgz#b6d6e739233ae120e4d6725b04375cb87791491f" + integrity sha512-AlBmD6Idav2ugmoAL6UtR6ItS7jU5h5RNqLMZC7QrLCoITA9NzIN3nx9GWi8g4z1pfWh2r9r96SX/jHiNwPJ9A== dependencies: - "@smithy/util-buffer-from" "^2.0.0" - tslib "^2.5.0" + "@smithy/querystring-parser" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/util-body-length-browser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz#5447853003b4c73da3bc5f3c5e82c21d592d1650" - integrity sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg== +"@smithy/util-base64@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.2.0.tgz#677f616772389adbad278b05d84835abbfe63bbc" + integrity sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA== dependencies: - tslib "^2.5.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" -"@smithy/util-body-length-node@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz#313a5f7c5017947baf5fa018bfc22628904bbcfa" - integrity sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw== +"@smithy/util-body-length-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz#04e9fc51ee7a3e7f648a4b4bcdf96c350cfa4d61" + integrity sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg== dependencies: - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/util-buffer-from@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz#7eb75d72288b6b3001bc5f75b48b711513091deb" - integrity sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw== +"@smithy/util-body-length-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.0.tgz#ea6a0fdabb48dd0b212e17e42b1f07bb7373147b" + integrity sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ== dependencies: - "@smithy/is-array-buffer" "^2.0.0" - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/util-config-provider@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz#4dd6a793605559d94267312fd06d0f58784b4c38" - integrity sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg== +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== dependencies: - tslib "^2.5.0" + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^2.0.19": - version "2.0.20" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.20.tgz#efabf1c0dadd0d86340f796b761bf17b59dcf900" - integrity sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw== +"@smithy/util-buffer-from@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz#7abd12c4991b546e7cee24d1e8b4bfaa35c68a9d" + integrity sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-config-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz#2e4722937f8feda4dcb09672c59925a4e6286cfc" + integrity sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.2.0.tgz#7b9f0299203aaa48953c4997c1630bdeffd80ec0" + integrity sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ== dependencies: - "@smithy/property-provider" "^2.0.15" - "@smithy/smithy-client" "^2.1.16" - "@smithy/types" "^2.6.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" bowser "^2.11.0" - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^2.0.25": - version "2.0.26" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.26.tgz#a701b6b0cc3f2bb57964049ccb0f8d147a8654df" - integrity sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg== - dependencies: - "@smithy/config-resolver" "^2.0.19" - "@smithy/credential-provider-imds" "^2.1.2" - "@smithy/node-config-provider" "^2.1.6" - "@smithy/property-provider" "^2.0.15" - "@smithy/smithy-client" "^2.1.16" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" +"@smithy/util-defaults-mode-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.0.tgz#efe5a6be134755317a0edf9595582bd6732e493a" + integrity sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg== + dependencies: + "@smithy/config-resolver" "^4.3.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.0.tgz#4bdc4820ceab5d66365ee72cfb14226e10bb0e24" + integrity sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/util-endpoints@^1.0.4": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.0.5.tgz#9e6ffdc9ac9d597869209e3b83784a13f277956e" - integrity sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw== +"@smithy/util-hex-encoding@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz#1c22ea3d1e2c3a81ff81c0a4f9c056a175068a7b" + integrity sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw== dependencies: - "@smithy/node-config-provider" "^2.1.6" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/util-hex-encoding@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz#0aa3515acd2b005c6d55675e377080a7c513b59e" - integrity sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA== +"@smithy/util-middleware@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.0.tgz#85973ae0db65af4ab4bedf12f31487a4105d1158" + integrity sha512-u9OOfDa43MjagtJZ8AapJcmimP+K2Z7szXn8xbty4aza+7P1wjFmy2ewjSbhEiYQoW1unTlOAIV165weYAaowA== dependencies: - tslib "^2.5.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/util-middleware@^2.0.6", "@smithy/util-middleware@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.0.7.tgz#92dda5d2a79915e06a275b4df3d66d4381b60a5f" - integrity sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw== +"@smithy/util-retry@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.0.tgz#1fa58e277b62df98d834e6c8b7d57f4c62ff1baf" + integrity sha512-BWSiuGbwRnEE2SFfaAZEX0TqaxtvtSYPM/J73PFVm+A29Fg1HTPiYFb8TmX1DXp4hgcdyJcNQmprfd5foeORsg== dependencies: - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + "@smithy/service-error-classification" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/util-retry@^2.0.6", "@smithy/util-retry@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.0.7.tgz#14ad8ebe5d8428dd0216d58b883e7fd964ae1e95" - integrity sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q== +"@smithy/util-stream@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.4.0.tgz#e203c74b8664d0e3f537185de5da960655333a45" + integrity sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg== + dependencies: + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz#096a4cec537d108ac24a68a9c60bee73fc7e3a9e" + integrity sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA== dependencies: - "@smithy/service-error-classification" "^2.0.7" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + tslib "^2.6.2" -"@smithy/util-stream@^2.0.20", "@smithy/util-stream@^2.0.21": - version "2.0.21" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.0.21.tgz#290935084e026afae6bacec7481abdae3498ee35" - integrity sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA== - dependencies: - "@smithy/fetch-http-handler" "^2.2.7" - "@smithy/node-http-handler" "^2.1.10" - "@smithy/types" "^2.6.0" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-buffer-from" "^2.0.0" - "@smithy/util-hex-encoding" "^2.0.0" - "@smithy/util-utf8" "^2.0.2" - tslib "^2.5.0" +"@smithy/util-utf8@^2.0.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@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-uri-escape@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz#19955b1a0f517a87ae77ac729e0e411963dfda95" - integrity sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw== +"@smithy/util-utf8@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz#8b19d1514f621c44a3a68151f3d43e51087fed9d" + integrity sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw== dependencies: - tslib "^2.5.0" + "@smithy/util-buffer-from" "^4.2.0" + tslib "^2.6.2" -"@smithy/util-utf8@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.0.2.tgz#626b3e173ad137208e27ed329d6bea70f4a1a7f7" - integrity sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA== +"@smithy/util-waiter@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.0.tgz#fcf5609143fa745d45424b0463560425b39c34eb" + integrity sha512-0Z+nxUU4/4T+SL8BCNN4ztKdQjToNvUYmkF1kXO5T7Yz3Gafzh0HeIG6mrkN8Fz3gn9hSyxuAT+6h4vM+iQSBQ== dependencies: - "@smithy/util-buffer-from" "^2.0.0" - tslib "^2.5.0" + "@smithy/abort-controller" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" -"@smithy/util-waiter@^2.0.13": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.0.14.tgz#b2c8ce5728c1bb92236dfbfe3bf8f354a328c4f7" - integrity sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA== +"@smithy/uuid@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.0.tgz#9fd09d3f91375eab94f478858123387df1cda987" + integrity sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw== dependencies: - "@smithy/abort-controller" "^2.0.14" - "@smithy/types" "^2.6.0" - tslib "^2.5.0" + tslib "^2.6.2" "@tanstack/query-async-storage-persister@^5.25.0": version "5.25.0" @@ -11630,12 +11658,12 @@ fast-uri@^3.0.0, fast-uri@^3.0.1: resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== -fast-xml-parser@4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" - integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== +fast-xml-parser@5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz#4809fdfb1310494e341098c25cb1341a01a9144a" + integrity sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ== dependencies: - strnum "^1.0.5" + strnum "^2.1.0" fastq@^1.6.0: version "1.15.0" @@ -18799,10 +18827,10 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== +strnum@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" + integrity sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw== strtok3@^6.2.4: version "6.3.0" @@ -19198,17 +19226,17 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2: +tslib@2, tslib@^2.6.2: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -- 2.51.2 From ede10368d58139b5c9128e79a72e1da3295a91c6 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 18:54:54 +0300 Subject: [PATCH 02/14] cache pages in explore feed previews (#9082) --- src/screens/Search/Explore.tsx | 2 +- src/state/queries/explore-feed-previews.tsx | 30 ++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/screens/Search/Explore.tsx b/src/screens/Search/Explore.tsx index e327254b1..c454167ff 100644 --- a/src/screens/Search/Explore.tsx +++ b/src/screens/Search/Explore.tsx @@ -932,7 +932,7 @@ export function Explore({ - + {item.feed.displayName} diff --git a/src/state/queries/explore-feed-previews.tsx b/src/state/queries/explore-feed-previews.tsx index f02adde79..53d6b841b 100644 --- a/src/state/queries/explore-feed-previews.tsx +++ b/src/state/queries/explore-feed-previews.tsx @@ -1,4 +1,4 @@ -import {useMemo} from 'react' +import {useMemo, useRef} from 'react' import { type AppBskyActorDefs, AppBskyFeedDefs, @@ -127,6 +127,16 @@ export function useFeedPreviews( const moderationOpts = useModerationOpts() const enabled = feeds.length > 0 && isEnabled + const processedPageCache = useRef( + new Map< + { + feed: AppBskyFeedDefs.GeneratorView + posts: AppBskyFeedDefs.FeedViewPost[] + }, + FeedPreviewItem[] + >(), + ) + const query = useInfiniteQuery({ enabled, queryKey: RQKEY(uris), @@ -181,6 +191,13 @@ export function useFeedPreviews( } else if (data) { for (let pageIndex = 0; pageIndex < data.pages.length; pageIndex++) { const page = data.pages[pageIndex] + + const cachedPage = processedPageCache.current.get(page) + if (cachedPage) { + items.push(...cachedPage) + continue + } + // default feed tuner - we just want it to slice up the feed const tuner = new FeedTuner([]) const slices: FeedPreviewItem[] = [] @@ -280,8 +297,10 @@ export function useFeedPreviews( rowIndex++ } + let processedPage: FeedPreviewItem[] + if (slices.length > 0) { - items.push( + processedPage = [ { type: 'preview:header', key: `header-${page.feed.uri}`, @@ -292,8 +311,13 @@ export function useFeedPreviews( type: 'preview:footer', key: `footer-${page.feed.uri}`, }, - ) + ] + } else { + processedPage = [] } + + processedPageCache.current.set(page, processedPage) + items.push(...processedPage) } } else if (isError && !isEmpty) { items.push({ -- 2.51.2 From 591fd262b3bc8c5a8fc0d572f3944eaf5d4bd32e Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 18:55:46 +0300 Subject: [PATCH 03/14] make sure border radius matches inset border (#9207) --- src/view/com/composer/photos/Gallery.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/view/com/composer/photos/Gallery.tsx b/src/view/com/composer/photos/Gallery.tsx index a66d65d97..ae31a9b07 100644 --- a/src/view/com/composer/photos/Gallery.tsx +++ b/src/view/com/composer/photos/Gallery.tsx @@ -19,7 +19,7 @@ import {colors, s} from '#/lib/styles' import {isNative} from '#/platform/detection' import {type ComposerImage, cropImage} from '#/state/gallery' import {Text} from '#/view/com/util/text/Text' -import {useTheme} from '#/alf' +import {tokens, useTheme} from '#/alf' import * as Dialog from '#/components/Dialog' import {MediaInsetBorder} from '#/components/MediaInsetBorder' import {type PostAction} from '../state/composer' @@ -275,12 +275,12 @@ const styles = StyleSheet.create({ }, image: { resizeMode: 'cover', - borderRadius: 8, + borderRadius: tokens.borderRadius.md, }, imageControl: { width: 24, height: 24, - borderRadius: 12, + borderRadius: tokens.borderRadius.md, backgroundColor: 'rgba(0, 0, 0, 0.75)', alignItems: 'center', justifyContent: 'center', -- 2.51.2 From 6414bda2528a441dbf43f40e8206a4efc364b546 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 18:56:35 +0300 Subject: [PATCH 04/14] delay toast after posting (#9208) --- src/view/com/composer/Composer.tsx | 52 ++++++++++++++++-------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 305790cb1..7746d93c3 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -564,31 +564,33 @@ export const ComposePost = ({ onPostSuccess?.(postSuccessData) } onClose() - Toast.show( - - - - {thread.posts.length > 1 - ? _(msg`Your posts were sent`) - : replyTo - ? _(msg`Your reply was sent`) - : _(msg`Your post was sent`)} - - {postUri && ( - { - const {host: name, rkey} = new AtUri(postUri) - navigation.navigate('PostThread', {name, rkey}) - }}> - - View - - - )} - , - {type: 'success'}, - ) + setTimeout(() => { + Toast.show( + + + + {thread.posts.length > 1 + ? _(msg`Your posts were sent`) + : replyTo + ? _(msg`Your reply was sent`) + : _(msg`Your post was sent`)} + + {postUri && ( + { + const {host: name, rkey} = new AtUri(postUri) + navigation.navigate('PostThread', {name, rkey}) + }}> + + View + + + )} + , + {type: 'success'}, + ) + }, 500) }, [ _, agent, -- 2.51.2 From 4788106f32177b3bd4747d8245fd1197bf67cc75 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 18:57:30 +0300 Subject: [PATCH 05/14] change flatlist config for explore page (#9083) --- src/screens/Search/Explore.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/screens/Search/Explore.tsx b/src/screens/Search/Explore.tsx index c454167ff..462482618 100644 --- a/src/screens/Search/Explore.tsx +++ b/src/screens/Search/Explore.tsx @@ -1082,12 +1082,26 @@ export function Explore({ windowSize={platform({android: 11})} /** * Default: 10 + * + * NOTE: This was 1 on Android. Unfortunately this leads to the list totally freaking out + * when the sticky headers changed. I made a minimal reproduction and yeah, it's this prop. + * Totally fine when the sticky headers are static, but when they're dynamic, it's a mess. + * + * Repro: https://github.com/mozzius/stickyindices-repro + * + * I then found doubling this prop on iOS also reduced it freaking out there as well. + * + * Trades off seeing more blank space due to it having to render more items before it can show anything. + * -sfn */ - maxToRenderPerBatch={platform({android: 1})} + maxToRenderPerBatch={platform({android: 10, ios: 20})} /** * Default: 50 + * + * NOTE: This was 25 on Android. However, due to maxToRenderPerBatch being set to 10, + * the lower batching period is no longer necessary (?) */ - updateCellsBatchingPeriod={platform({android: 25})} + updateCellsBatchingPeriod={50} refreshing={isPTR} onRefresh={onPTR} /> -- 2.51.2 From 66ca3e34a4eb200afcbcefa0c01a6838cd0819a1 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 19:00:29 +0300 Subject: [PATCH 06/14] fix invalid tweaking to date string (#8415) --- src/components/live/GoLiveDialog.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/live/GoLiveDialog.tsx b/src/components/live/GoLiveDialog.tsx index 437c3eacc..44c604cde 100644 --- a/src/components/live/GoLiveDialog.tsx +++ b/src/components/live/GoLiveDialog.tsx @@ -56,10 +56,7 @@ function DialogInner({profile}: {profile: bsky.profile.AnyProfileView}) { const date = new Date() date.setMinutes(date.getMinutes() + offset) - return i18n - .date(date, {hour: 'numeric', minute: '2-digit', hour12: true}) - .toLocaleUpperCase() - .replace(' ', '') + return i18n.date(date, {hour: 'numeric', minute: '2-digit', hour12: true}) }, [tick, i18n], ) -- 2.51.2 From fc944841ce3ad31f0b601eed62001ff3614fbbac Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 19:02:47 +0300 Subject: [PATCH 07/14] add large content viewer to tabs (#8394) --- src/view/shell/bottom-bar/BottomBar.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index 4b596869e..0e0eb79e8 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -405,7 +405,9 @@ function Btn({ accessible={accessible} accessibilityLabel={accessibilityLabel} accessibilityHint={accessibilityHint} - targetScale={0.8}> + targetScale={0.8} + accessibilityLargeContentTitle={accessibilityLabel} + accessibilityShowsLargeContentViewer> {icon} {notificationCount ? ( -- 2.51.2 From fe5a623b441f43e9805aa89d6ae16804d773feb4 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 19:10:26 +0300 Subject: [PATCH 08/14] Haptic on profile buttons (#6034) * play haptic on profile buttons * change react import --- .../Profile/Header/ProfileHeaderLabeler.tsx | 78 +++++++++---------- .../Profile/Header/ProfileHeaderStandard.tsx | 9 ++- 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx index e6ada24b9..59f090f47 100644 --- a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx +++ b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx @@ -1,4 +1,4 @@ -import React, {memo, useMemo} from 'react' +import {memo, useCallback, useMemo, useState} from 'react' import {View} from 'react-native' import { type AppBskyActorDefs, @@ -84,12 +84,10 @@ let ProfileHeaderLabeler = ({ const {mutateAsync: likeMod, isPending: isLikePending} = useLikeMutation() const {mutateAsync: unlikeMod, isPending: isUnlikePending} = useUnlikeMutation() - const [likeUri, setLikeUri] = React.useState( - labeler.viewer?.like || '', - ) - const [likeCount, setLikeCount] = React.useState(labeler.likeCount || 0) + const [likeUri, setLikeUri] = useState(labeler.viewer?.like || '') + const [likeCount, setLikeCount] = useState(labeler.likeCount || 0) - const onToggleLiked = React.useCallback(async () => { + const onToggleLiked = useCallback(async () => { if (!labeler) { return } @@ -118,44 +116,44 @@ let ProfileHeaderLabeler = ({ const editProfileControl = useDialogControl() - const onPressSubscribe = React.useCallback( - () => - requireAuth(async (): Promise => { - const subscribe = !isSubscribed + const onPressSubscribe = useCallback(() => { + requireAuth(async (): Promise => { + playHaptic() + const subscribe = !isSubscribed - try { - await toggleSubscription({ - did: profile.did, - subscribe, - }) + try { + await toggleSubscription({ + did: profile.did, + subscribe, + }) - logger.metric( - subscribe - ? 'moderation:subscribedToLabeler' - : 'moderation:unsubscribedFromLabeler', - {}, - {statsig: true}, - ) - } catch (e: any) { - reset() - if (e.message === 'MAX_LABELERS') { - cantSubscribePrompt.open() - return - } - logger.error(`Failed to subscribe to labeler`, {message: e.message}) + logger.metric( + subscribe + ? 'moderation:subscribedToLabeler' + : 'moderation:unsubscribedFromLabeler', + {}, + {statsig: true}, + ) + } catch (e: any) { + reset() + if (e.message === 'MAX_LABELERS') { + cantSubscribePrompt.open() + return } - }), - [ - requireAuth, - toggleSubscription, - isSubscribed, - profile, - cantSubscribePrompt, - reset, - ], - ) + logger.error(`Failed to subscribe to labeler`, {message: e.message}) + } + }) + }, [ + playHaptic, + requireAuth, + toggleSubscription, + isSubscribed, + profile, + cantSubscribePrompt, + reset, + ]) - const isMe = React.useMemo( + const isMe = useMemo( () => currentAccount?.did === profile.did, [currentAccount, profile], ) diff --git a/src/screens/Profile/Header/ProfileHeaderStandard.tsx b/src/screens/Profile/Header/ProfileHeaderStandard.tsx index e19d3bf2f..269bd38b9 100644 --- a/src/screens/Profile/Header/ProfileHeaderStandard.tsx +++ b/src/screens/Profile/Header/ProfileHeaderStandard.tsx @@ -10,6 +10,7 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useActorStatus} from '#/lib/actor-status' +import {useHaptics} from '#/lib/haptics' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {logger} from '#/logger' @@ -79,12 +80,14 @@ let ProfileHeaderStandard = ({ profile.viewer?.blocking || profile.viewer?.blockedBy || profile.viewer?.blockingByList + const playHaptic = useHaptics() const editProfileControl = useDialogControl() const onPressFollow = () => { - setShowSuggestedFollows(true) + playHaptic() requireAuth(async () => { + setShowSuggestedFollows(true) try { await queueFollow() Toast.show( @@ -105,6 +108,7 @@ let ProfileHeaderStandard = ({ } const onPressUnfollow = () => { + playHaptic() setShowSuggestedFollows(false) requireAuth(async () => { try { @@ -127,6 +131,7 @@ let ProfileHeaderStandard = ({ } const unblockAccount = useCallback(async () => { + playHaptic() try { await queueUnblock() Toast.show(_(msg({message: 'Account unblocked', context: 'toast'}))) @@ -136,7 +141,7 @@ let ProfileHeaderStandard = ({ Toast.show(_(msg`There was an issue! ${e.toString()}`), 'xmark') } } - }, [_, queueUnblock]) + }, [_, queueUnblock, playHaptic]) const isMe = useMemo( () => currentAccount?.did === profile.did, -- 2.51.2 From 27926f093c847b7f51d3749c0eab455b5fce29dc Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 15 Oct 2025 11:13:08 -0500 Subject: [PATCH 09/14] Fix computation of `isLastSibling`, `isLastChild`, and `replyIndex` (#9202) * Fix computation of isLastSibling and isLastChild to account for muted or otherwise hidden replies * Update comments * isLastSiblingByCounts isn't needed, should rely only on the count of replies seen * The counters serve the same purpose, we only need to know the count of the actual replies rendered to the view in order to calculate the replyIndex * Remove redundant check --- src/state/queries/usePostThread/traversal.ts | 28 ++++++++++---------- src/state/queries/usePostThread/types.ts | 27 ++++++++++--------- src/state/queries/usePostThread/utils.ts | 1 - 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/state/queries/usePostThread/traversal.ts b/src/state/queries/usePostThread/traversal.ts index 2e7693fab..f9b06cf64 100644 --- a/src/state/queries/usePostThread/traversal.ts +++ b/src/state/queries/usePostThread/traversal.ts @@ -135,11 +135,11 @@ export function sortAndAnnotateThreadItems( } else if (AppBskyUnspeccedDefs.isThreadItemPost(item.value)) { if (parentMetadata) { /* - * Set this value before incrementing the parent's repliesSeenCounter + * Set this value before incrementing the `repliesSeenCounter` later + * on, since `repliesSeenCounter` is 1-indexed and `replyIndex` is + * 0-indexed. */ - metadata!.replyIndex = parentMetadata.repliesIndexCounter - // Increment the parent's repliesIndexCounter - parentMetadata.repliesIndexCounter += 1 + metadata!.replyIndex = parentMetadata.repliesSeenCounter } const post = views.threadPost({ @@ -193,11 +193,12 @@ export function sortAndAnnotateThreadItems( storeTraversalMetadata(metadatas, childMetadata) if (childParentMetadata) { /* - * Set this value before incrementing the parent's repliesIndexCounter + * Set this value before incrementing the + * `repliesSeenCounter` later on, since `repliesSeenCounter` + * is 1-indexed and `replyIndex` is 0-indexed. */ childMetadata!.replyIndex = - childParentMetadata.repliesIndexCounter - childParentMetadata.repliesIndexCounter += 1 + childParentMetadata.repliesSeenCounter } const childPost = views.threadPost({ @@ -264,14 +265,13 @@ export function sortAndAnnotateThreadItems( if (nextItem?.type === 'threadPost') metadata.nextItemDepth = nextItem?.depth - /* - * Item is the last "sibling" if we know for sure we're out of - * replies on the parent (even though this item itself may have its - * own reply branches). + /** + * Item is also the last "sibling" if its index matches the total + * number of replies we're actually able to render to the page. */ - const isLastSiblingByCounts = + const isLastSiblingDueToMissingReplies = metadata.replyIndex === - metadata.parentMetadata.repliesIndexCounter - 1 + metadata.parentMetadata.repliesSeenCounter - 1 /* * Item can also be the last "sibling" if we know we don't have a @@ -287,7 +287,7 @@ export function sortAndAnnotateThreadItems( * Ok now we can set the last sibling state. */ metadata.isLastSibling = - isLastSiblingByCounts || isImplicitlyLastSibling + isImplicitlyLastSibling || isLastSiblingDueToMissingReplies /* * Item is the last "child" in a branch if there is no next item, diff --git a/src/state/queries/usePostThread/types.ts b/src/state/queries/usePostThread/types.ts index 5df7c2e42..3e84dbfc7 100644 --- a/src/state/queries/usePostThread/types.ts +++ b/src/state/queries/usePostThread/types.ts @@ -193,23 +193,24 @@ export type TraversalMetadata = { */ repliesUnhydrated: number /** - * The number of replies that have been seen so far in the traversal. - * Excludes replies that are moderated in some way, since those are not - * "seen" on first load. Use `repliesIndexCounter` for the total number of - * replies that were hydrated in the response. + * The number of replies that have been "seen" (actually able to be rendered) + * so far in the traversal. Excludes replies that are moderated in some way, + * since those are not "seen" on first load. * - * After traversal, we can use this to calculate if we actually got all the - * replies we expected, or if some were blocked, etc. + * We use this to compute the `replyIndex` values of the children of this + * parent. E.g. if a reply is not hydrated on the response, or is moderated + * in some way (including by the user), this value is not incremented. So + * this represents the _actual_ index of the reply in the rendered view. + * + * Note: this is a "counter", not an "index". Because this value is + * incremented starting from 0, it is 1-indexed. So to when comparing to the + * `replyIndex`, you'll need to subtract 1 from this value. */ repliesSeenCounter: number /** - * The total number of replies to this post hydrated in this response. Used - * for populating the `replyIndex` of the post by referencing this value on - * the parent. - */ - repliesIndexCounter: number - /** - * The index-0-based index of this reply in the parent post's replies. + * The index-0-based index of this reply in the parent post's replies. This + * is computed from the `repliesSeenCounter` of the parent post, prior to it + * being incremented for this reply. */ replyIndex: number /** diff --git a/src/state/queries/usePostThread/utils.ts b/src/state/queries/usePostThread/utils.ts index 265bf7f5f..be3be36b8 100644 --- a/src/state/queries/usePostThread/utils.ts +++ b/src/state/queries/usePostThread/utils.ts @@ -99,7 +99,6 @@ export function getTraversalMetadata({ repliesCount, repliesUnhydrated, repliesSeenCounter: 0, - repliesIndexCounter: 0, replyIndex: 0, skippedIndentIndices: new Set(), } -- 2.51.2 From 03adb4260fc0c09686f2d3f2b773253b31759186 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 19:14:42 +0300 Subject: [PATCH 10/14] patch fractional font size issue (#9199) --- patches/react-native-uitextview+1.4.0.patch | 33 +++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 patches/react-native-uitextview+1.4.0.patch diff --git a/patches/react-native-uitextview+1.4.0.patch b/patches/react-native-uitextview+1.4.0.patch new file mode 100644 index 000000000..345e6b0e8 --- /dev/null +++ b/patches/react-native-uitextview+1.4.0.patch @@ -0,0 +1,33 @@ +diff --git a/node_modules/react-native-uitextview/ios/RNUITextViewShadow.swift b/node_modules/react-native-uitextview/ios/RNUITextViewShadow.swift +index c34ba71..13d576a 100644 +--- a/node_modules/react-native-uitextview/ios/RNUITextViewShadow.swift ++++ b/node_modules/react-native-uitextview/ios/RNUITextViewShadow.swift +@@ -159,13 +159,23 @@ class RNUITextViewShadow: RCTShadowView { + let maxSize = CGSize(width: CGFloat(maxWidth), height: CGFloat(MAXFLOAT)) + let textSize = self.attributedText.boundingRect(with: maxSize, options: .usesLineFragmentOrigin, context: nil) + +- var totalLines = self.lineHeight == 0.0 ? 0 : Int(ceil(textSize.height / self.lineHeight)) +- +- if self.numberOfLines != 0, totalLines > self.numberOfLines { +- totalLines = self.numberOfLines ++ var finalHeight: CGFloat ++ ++ if self.numberOfLines != 0 && self.lineHeight != 0.0 { ++ // numberOfLines is set with custom line height - need to calculate lines and snap to lineHeight multiples ++ // NOTE: this calculation can be inaccurate with fractional font sizes ++ var totalLines = Int(ceil(textSize.height / self.lineHeight)) ++ if totalLines > self.numberOfLines { ++ totalLines = self.numberOfLines ++ } ++ finalHeight = CGFloat(totalLines) * self.lineHeight ++ } else { ++ // Either no numberOfLines limit, or no custom lineHeight - use actual text height ++ // (numberOfLines without custom lineHeight is handled by the UITextView's textContainer.maximumNumberOfLines) ++ finalHeight = textSize.height + } + +- self.frameSize = CGSize(width: CGFloat(maxWidth), height: CGFloat(CGFloat(totalLines) * self.lineHeight)) ++ self.frameSize = CGSize(width: CGFloat(maxWidth), height: finalHeight) + return YGSize(width: Float(self.frameSize.width), height: Float(self.frameSize.height)) + } + -- 2.51.2 From b56d0c419b7db7be5a8241bf4284d5c32e308cf8 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 19:37:07 +0300 Subject: [PATCH 11/14] add sort import suggestions plugin (#8335) --- package.json | 1 + tsconfig.json | 9 ++++++++- yarn.lock | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b90093514..c6f7ad43e 100644 --- a/package.json +++ b/package.json @@ -272,6 +272,7 @@ "react-refresh": "^0.14.0", "svgo": "^3.3.2", "ts-node": "^10.9.1", + "ts-plugin-sort-import-suggestions": "^1.0.4", "typescript": "^5.9.2", "webpack-bundle-analyzer": "^4.10.1" }, diff --git a/tsconfig.json b/tsconfig.json index c75a30b05..2f3d9354d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,7 +10,14 @@ "crypto": ["./src/platform/crypto.ts"], "multiformats/cid": ["node_modules/multiformats/types/src/cid.d.ts"], "multiformats/hashes/hasher": ["node_modules/multiformats/types/src/hashes/hasher.d.ts"] - } + }, + "plugins": [ + { + "name": "ts-plugin-sort-import-suggestions", + "moveUpPatterns": ["#/", "@lingui/macro"], + "moveDownPatterns": ["react-native-reanimated/lib"], + } + ] }, "exclude": ["bskyweb", "bskyembed", "web-build"] } diff --git a/yarn.lock b/yarn.lock index d1b44000f..9ce8a5808 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19216,6 +19216,11 @@ ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" +ts-plugin-sort-import-suggestions@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/ts-plugin-sort-import-suggestions/-/ts-plugin-sort-import-suggestions-1.0.4.tgz#d1ed6c235feb8c8bb8b34c625ea75b46e3e62925" + integrity sha512-85n5lm2OQQ+b7aRNK9omU1gmjMNXRsgeLwojm5u4OSY5sVBkAHTcgMQPEeHMNlyyfFW0uXnwgqAU0pNfhD96Bw== + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" -- 2.51.2 From be53a168ba6ec46de4e713962624f4c8a12fa178 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 15 Oct 2025 19:37:24 +0300 Subject: [PATCH 12/14] Move interests clientside and add `finance` (#9176) * move interests clientside * add finance * try and ensure there's always data for the "all" category * add empty state for suggested accounts * simplify error wording --- src/components/Admonition.tsx | 6 +- src/components/ProgressGuide/FollowDialog.tsx | 5 +- src/lib/interests.ts | 78 ++++++ .../StepInterests/InterestButton.tsx | 4 +- .../Onboarding/StepInterests/index.tsx | 248 +++--------------- .../StepSuggestedAccounts/index.tsx | 19 +- src/screens/Onboarding/state.ts | 66 ----- src/screens/Search/Explore.tsx | 5 +- .../Search/modules/ExploreInterestsCard.tsx | 2 +- .../modules/ExploreSuggestedAccounts.tsx | 5 +- src/screens/Search/util/useSuggestedUsers.ts | 2 +- src/screens/Settings/InterestsSettings.tsx | 36 +-- .../trending/useGetSuggestedUsersQuery.ts | 34 ++- 13 files changed, 180 insertions(+), 330 deletions(-) create mode 100644 src/lib/interests.ts diff --git a/src/components/Admonition.tsx b/src/components/Admonition.tsx index 8846bb208..ed644cd37 100644 --- a/src/components/Admonition.tsx +++ b/src/components/Admonition.tsx @@ -7,13 +7,14 @@ import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfoIcon} from '#/components import {CircleX_Stroke2_Corner0_Rounded as CircleXIcon} from '#/components/icons/CircleX' import {Warning_Stroke2_Corner0_Rounded as WarningIcon} from '#/components/icons/Warning' import {Text as BaseText, type TextProps} from '#/components/Typography' +import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSadIcon} from './icons/Emoji' export const colors = { warning: '#FFC404', } type Context = { - type: 'info' | 'tip' | 'warning' | 'error' + type: 'info' | 'tip' | 'warning' | 'error' | 'apology' } const Context = createContext({ @@ -29,12 +30,14 @@ export function Icon() { tip: CircleInfoIcon, warning: WarningIcon, error: CircleXIcon, + apology: EmojiSadIcon, }[type] const fill = { info: t.atoms.text_contrast_medium.color, tip: t.palette.primary_500, warning: colors.warning, error: t.palette.negative_500, + apology: t.atoms.text_contrast_medium.color, }[type] return } @@ -109,6 +112,7 @@ export function Outer({ tip: t.palette.primary_500, warning: colors.warning, error: t.palette.negative_500, + apology: t.atoms.border_contrast_high.borderColor, }[type] return ( diff --git a/src/components/ProgressGuide/FollowDialog.tsx b/src/components/ProgressGuide/FollowDialog.tsx index 3dd308e83..18afa462a 100644 --- a/src/components/ProgressGuide/FollowDialog.tsx +++ b/src/components/ProgressGuide/FollowDialog.tsx @@ -4,6 +4,7 @@ import {type ModerationOpts} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {popularInterests, useInterestsDisplayNames} from '#/lib/interests' import {logEvent} from '#/lib/statsig/statsig' import {isWeb} from '#/platform/detection' import {useModerationOpts} from '#/state/preferences/moderation-opts' @@ -13,10 +14,6 @@ import {useGetSuggestedUsersQuery} from '#/state/queries/trending/useGetSuggeste import {useSession} from '#/state/session' import {type Follow10ProgressGuide} from '#/state/shell/progress-guide' import {type ListMethods} from '#/view/com/util/List' -import { - popularInterests, - useInterestsDisplayNames, -} from '#/screens/Onboarding/state' import { atoms as a, native, diff --git a/src/lib/interests.ts b/src/lib/interests.ts new file mode 100644 index 000000000..0d1618fff --- /dev/null +++ b/src/lib/interests.ts @@ -0,0 +1,78 @@ +import {useMemo} from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +export const interests = [ + 'animals', + 'art', + 'books', + 'comedy', + 'comics', + 'culture', + 'dev', + 'education', + 'finance', + 'food', + 'gaming', + 'journalism', + 'movies', + 'music', + 'nature', + 'news', + 'pets', + 'photography', + 'politics', + 'science', + 'sports', + 'tech', + 'tv', + 'writers', +] as const +export type Interest = (typeof interests)[number] + +// most popular selected interests +export const popularInterests = [ + 'art', + 'gaming', + 'sports', + 'comics', + 'music', + 'politics', + 'photography', + 'science', + 'news', +] satisfies Interest[] + +export function useInterestsDisplayNames() { + const {_} = useLingui() + + return useMemo>(() => { + return { + // Keep this alphabetized + animals: _(msg`Animals`), + art: _(msg`Art`), + books: _(msg`Books`), + comedy: _(msg`Comedy`), + comics: _(msg`Comics`), + culture: _(msg`Culture`), + dev: _(msg`Software Dev`), + education: _(msg`Education`), + finance: _(msg`Finance`), + food: _(msg`Food`), + gaming: _(msg`Video Games`), + journalism: _(msg`Journalism`), + movies: _(msg`Movies`), + music: _(msg`Music`), + nature: _(msg`Nature`), + news: _(msg`News`), + pets: _(msg`Pets`), + photography: _(msg`Photography`), + politics: _(msg`Politics`), + science: _(msg`Science`), + sports: _(msg`Sports`), + tech: _(msg`Tech`), + tv: _(msg`TV`), + writers: _(msg`Writers`), + } satisfies Record + }, [_]) +} diff --git a/src/screens/Onboarding/StepInterests/InterestButton.tsx b/src/screens/Onboarding/StepInterests/InterestButton.tsx index 66e84bc09..d41e7837c 100644 --- a/src/screens/Onboarding/StepInterests/InterestButton.tsx +++ b/src/screens/Onboarding/StepInterests/InterestButton.tsx @@ -1,13 +1,13 @@ import React from 'react' import {type TextStyle, View, type ViewStyle} from 'react-native' +import {type Interest, useInterestsDisplayNames} from '#/lib/interests' import {capitalize} from '#/lib/strings/capitalize' -import {useInterestsDisplayNames} from '#/screens/Onboarding/state' import {atoms as a, native, useTheme} from '#/alf' import * as Toggle from '#/components/forms/Toggle' import {Text} from '#/components/Typography' -export function InterestButton({interest}: {interest: string}) { +export function InterestButton({interest}: {interest: Interest}) { const t = useTheme() const interestsDisplayNames = useInterestsDisplayNames() const ctx = Toggle.useItemContext() diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index cba7c8173..3e5140975 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -2,97 +2,35 @@ import React from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useQuery} from '@tanstack/react-query' +import {interests, useInterestsDisplayNames} from '#/lib/interests' import {logEvent} from '#/lib/statsig/statsig' import {capitalize} from '#/lib/strings/capitalize' import {logger} from '#/logger' -import {useAgent} from '#/state/session' -import {useOnboardingDispatch} from '#/state/shell' import { DescriptionText, OnboardingControls, TitleText, } from '#/screens/Onboarding/Layout' -import { - type ApiResponseMap, - Context, - useInterestsDisplayNames, -} from '#/screens/Onboarding/state' +import {Context} from '#/screens/Onboarding/state' import {InterestButton} from '#/screens/Onboarding/StepInterests/InterestButton' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {atoms as a} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Toggle from '#/components/forms/Toggle' import {IconCircle} from '#/components/IconCircle' -import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSad} from '#/components/icons/Emoji' import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' export function StepInterests() { const {_} = useLingui() - const t = useTheme() - const {gtMobile} = useBreakpoints() const interestsDisplayNames = useInterestsDisplayNames() const {state, dispatch} = React.useContext(Context) const [saving, setSaving] = React.useState(false) - const [interests, setInterests] = React.useState( + const [selectedInterests, setSelectedInterests] = React.useState( state.interestsStepResults.selectedInterests.map(i => i), ) - const onboardDispatch = useOnboardingDispatch() - const agent = useAgent() - const {isLoading, isError, error, data, refetch, isFetching} = useQuery({ - queryKey: ['interests'], - queryFn: async () => { - try { - const {data} = await agent.app.bsky.unspecced.getTaggedSuggestions() - return data.suggestions.reduce( - (agg, s) => { - const {tag, subject, subjectType} = s - const isDefault = tag === 'default' - - if (!agg.interests.includes(tag) && !isDefault) { - agg.interests.push(tag) - } - - if (subjectType === 'user') { - agg.suggestedAccountDids[tag] = - agg.suggestedAccountDids[tag] || [] - agg.suggestedAccountDids[tag].push(subject) - } - - if (subjectType === 'feed') { - // agg all feeds into defaults - if (isDefault) { - agg.suggestedFeedUris[tag] = agg.suggestedFeedUris[tag] || [] - } else { - agg.suggestedFeedUris[tag] = agg.suggestedFeedUris[tag] || [] - agg.suggestedFeedUris[tag].push(subject) - agg.suggestedFeedUris.default.push(subject) - } - } - - return agg - }, - { - interests: [], - suggestedAccountDids: {}, - suggestedFeedUris: {}, - } as ApiResponseMap, - ) - } catch (e: any) { - logger.info( - `onboarding: getTaggedSuggestions fetch or processing failed`, - ) - logger.error(e) - - throw new Error(`a network error occurred`) - } - }, - }) const saveInterests = React.useCallback(async () => { setSaving(true) @@ -101,164 +39,62 @@ export function StepInterests() { setSaving(false) dispatch({ type: 'setInterestsStepResults', - apiResponse: data!, - selectedInterests: interests, + selectedInterests, }) dispatch({type: 'next'}) logEvent('onboarding:interests:nextPressed', { - selectedInterests: interests, - selectedInterestsLength: interests.length, + selectedInterests, + selectedInterestsLength: selectedInterests.length, }) } catch (e: any) { logger.info(`onboading: error saving interests`) logger.error(e) } - }, [interests, data, setSaving, dispatch]) - - const skipOnboarding = React.useCallback(() => { - onboardDispatch({type: 'finish'}) - dispatch({type: 'finish'}) - }, [onboardDispatch, dispatch]) - - const title = isError ? ( - Oh no! Something went wrong. - ) : ( - What are your interests? - ) - const description = isError ? ( - - We weren't able to connect. Please try again to continue setting up your - account. If it continues to fail, you can skip this flow. - - ) : ( - We'll use this to help customize your experience. - ) + }, [selectedInterests, setSaving, dispatch]) return ( - + - {title} - {description} + + What are your interests? + + + We'll use this to help customize your experience. + - {isLoading ? ( - - - - ) : isError || !data ? ( - - - - Error:{' '} - - {error?.message || _(msg`an unknown error occurred`)} - + + + {interests.map(interest => ( + + + + ))} - ) : ( - - - {data.interests.map(interest => ( - - - - ))} - - - )} + - {isError ? ( - - - - - ) : ( - - )} + ) diff --git a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx index 4bca81fed..456b52e5c 100644 --- a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx +++ b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx @@ -7,6 +7,7 @@ import {useMutation, useQueryClient} from '@tanstack/react-query' import * as bcp47Match from 'bcp-47-match' import {wait} from '#/lib/async/wait' +import {popularInterests, useInterestsDisplayNames} from '#/lib/interests' import {isBlockedOrBlocking, isMuted} from '#/lib/moderation/blocked-and-muted' import {logger} from '#/logger' import {isWeb} from '#/platform/detection' @@ -16,11 +17,7 @@ import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useAgent, useSession} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' import {OnboardingControls} from '#/screens/Onboarding/Layout' -import { - Context, - popularInterests, - useInterestsDisplayNames, -} from '#/screens/Onboarding/state' +import {Context} from '#/screens/Onboarding/state' import {useSuggestedUsers} from '#/screens/Search/util/useSuggestedUsers' import {atoms as a, tokens, useBreakpoints, useTheme} from '#/alf' import {Admonition} from '#/components/Admonition' @@ -77,6 +74,8 @@ export function StepSuggestedAccounts() { }) const isError = !!error + const isEmpty = + !isLoading && suggestedUsers && suggestedUsers.actors.length === 0 const skipOnboarding = useCallback(() => { onboardDispatch({type: 'finish'}) @@ -171,13 +170,21 @@ export function StepSuggestedAccounts() { ) : isError ? ( - + An error occurred while fetching suggested accounts. + ) : isEmpty ? ( + + + + Sorry, we're unable to load account suggestions at this time. + + + ) : ( >(() => { - return { - // Keep this alphabetized - animals: _(msg`Animals`), - art: _(msg`Art`), - books: _(msg`Books`), - comedy: _(msg`Comedy`), - comics: _(msg`Comics`), - culture: _(msg`Culture`), - dev: _(msg`Software Dev`), - education: _(msg`Education`), - food: _(msg`Food`), - gaming: _(msg`Video Games`), - journalism: _(msg`Journalism`), - movies: _(msg`Movies`), - music: _(msg`Music`), - nature: _(msg`Nature`), - news: _(msg`News`), - pets: _(msg`Pets`), - photography: _(msg`Photography`), - politics: _(msg`Politics`), - science: _(msg`Science`), - sports: _(msg`Sports`), - tech: _(msg`Tech`), - tv: _(msg`TV`), - writers: _(msg`Writers`), - } - }, [_]) -} - export const initialState: OnboardingState = { hasPrev: false, totalSteps: 3, @@ -142,11 +82,6 @@ export const initialState: OnboardingState = { interestsStepResults: { selectedInterests: [], - apiResponse: { - interests: [], - suggestedAccountDids: {}, - suggestedFeedUris: {}, - }, }, profileStepResults: { isCreatedAvatar: false, @@ -212,7 +147,6 @@ export function reducer( case 'setInterestsStepResults': { next.interestsStepResults = { selectedInterests: a.selectedInterests, - apiResponse: a.apiResponse, } break } diff --git a/src/screens/Search/Explore.tsx b/src/screens/Search/Explore.tsx index 462482618..dd5772895 100644 --- a/src/screens/Search/Explore.tsx +++ b/src/screens/Search/Explore.tsx @@ -10,6 +10,7 @@ import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' import * as bcp47Match from 'bcp-47-match' +import {popularInterests, useInterestsDisplayNames} from '#/lib/interests' import {cleanError} from '#/lib/strings/errors' import {sanitizeHandle} from '#/lib/strings/handles' import {logger} from '#/logger' @@ -41,10 +42,6 @@ import {ViewFullThread} from '#/view/com/posts/ViewFullThread' import {List} from '#/view/com/util/List' import {FeedFeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' import {LoadMoreRetryBtn} from '#/view/com/util/LoadMoreRetryBtn' -import { - popularInterests, - useInterestsDisplayNames, -} from '#/screens/Onboarding/state' import { StarterPackCard, StarterPackCardSkeleton, diff --git a/src/screens/Search/modules/ExploreInterestsCard.tsx b/src/screens/Search/modules/ExploreInterestsCard.tsx index b5e7b7d2e..012f1d6e1 100644 --- a/src/screens/Search/modules/ExploreInterestsCard.tsx +++ b/src/screens/Search/modules/ExploreInterestsCard.tsx @@ -3,9 +3,9 @@ import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useInterestsDisplayNames} from '#/lib/interests' import {Nux, useSaveNux} from '#/state/queries/nuxs' import {usePreferencesQuery} from '#/state/queries/preferences' -import {useInterestsDisplayNames} from '#/screens/Onboarding/state' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Shapes_Stroke2_Corner0_Rounded as Shapes} from '#/components/icons/Shapes' diff --git a/src/screens/Search/modules/ExploreSuggestedAccounts.tsx b/src/screens/Search/modules/ExploreSuggestedAccounts.tsx index 71bfd6547..ea91b1c35 100644 --- a/src/screens/Search/modules/ExploreSuggestedAccounts.tsx +++ b/src/screens/Search/modules/ExploreSuggestedAccounts.tsx @@ -5,13 +5,10 @@ import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {type InfiniteData} from '@tanstack/react-query' +import {popularInterests, useInterestsDisplayNames} from '#/lib/interests' import {logger} from '#/logger' import {usePreferencesQuery} from '#/state/queries/preferences' import {BlockDrawerGesture} from '#/view/shell/BlockDrawerGesture' -import { - popularInterests, - useInterestsDisplayNames, -} from '#/screens/Onboarding/state' import {useTheme} from '#/alf' import {atoms as a} from '#/alf' import {boostInterests, InterestTabs} from '#/components/InterestTabs' diff --git a/src/screens/Search/util/useSuggestedUsers.ts b/src/screens/Search/util/useSuggestedUsers.ts index 9ca2c558a..b1f906409 100644 --- a/src/screens/Search/util/useSuggestedUsers.ts +++ b/src/screens/Search/util/useSuggestedUsers.ts @@ -1,8 +1,8 @@ import {useMemo} from 'react' +import {useInterestsDisplayNames} from '#/lib/interests' import {useActorSearchPaginated} from '#/state/queries/actor-search' import {useGetSuggestedUsersQuery} from '#/state/queries/trending/useGetSuggestedUsersQuery' -import {useInterestsDisplayNames} from '#/screens/Onboarding/state' /** * Conditional hook, used in case a user is a non-english speaker, in which diff --git a/src/screens/Settings/InterestsSettings.tsx b/src/screens/Settings/InterestsSettings.tsx index 4ecaba288..074a423ec 100644 --- a/src/screens/Settings/InterestsSettings.tsx +++ b/src/screens/Settings/InterestsSettings.tsx @@ -6,6 +6,11 @@ import {type NativeStackScreenProps} from '@react-navigation/native-stack' import {useQueryClient} from '@tanstack/react-query' import debounce from 'lodash.debounce' +import { + type Interest, + interests as allInterests, + useInterestsDisplayNames, +} from '#/lib/interests' import {type CommonNavigatorParams} from '#/lib/routes/types' import { preferencesQueryKey, @@ -17,7 +22,6 @@ import {createGetSuggestedUsersQueryKey} from '#/state/queries/trending/useGetSu import {createSuggestedStarterPacksQueryKey} from '#/state/queries/useSuggestedStarterPacksQuery' import {useAgent} from '#/state/session' import * as Toast from '#/view/com/util/Toast' -import {useInterestsDisplayNames} from '#/screens/Onboarding/state' import {atoms as a, useGutters, useTheme} from '#/alf' import {Admonition} from '#/components/Admonition' import {Divider} from '#/components/Divider' @@ -160,7 +164,7 @@ function Inner({ onChange={onChangeInterests} label={_(msg`Select your interests from the options below`)}> - {INTERESTS.map(interest => { + {allInterests.map(interest => { const name = interestsDisplayNames[interest] if (!name) return null return ( @@ -178,7 +182,7 @@ function Inner({ ) } -export function InterestButton({interest}: {interest: string}) { +export function InterestButton({interest}: {interest: Interest}) { const t = useTheme() const interestsDisplayNames = useInterestsDisplayNames() const ctx = Toggle.useItemContext() @@ -230,29 +234,3 @@ export function InterestButton({interest}: {interest: string}) { ) } - -const INTERESTS = [ - 'animals', - 'art', - 'books', - 'comedy', - 'comics', - 'culture', - 'dev', - 'education', - 'food', - 'gaming', - 'journalism', - 'movies', - 'music', - 'nature', - 'news', - 'pets', - 'photography', - 'politics', - 'science', - 'sports', - 'tech', - 'tv', - 'writers', -] diff --git a/src/state/queries/trending/useGetSuggestedUsersQuery.ts b/src/state/queries/trending/useGetSuggestedUsersQuery.ts index 4ecee2986..547d7f44f 100644 --- a/src/state/queries/trending/useGetSuggestedUsersQuery.ts +++ b/src/state/queries/trending/useGetSuggestedUsersQuery.ts @@ -8,6 +8,7 @@ import { aggregateUserInterests, createBskyTopicsHeader, } from '#/lib/api/feed/utils' +import {logger} from '#/logger' import {getContentLanguages} from '#/state/preferences/languages' import {STALE} from '#/state/queries' import {usePreferencesQuery} from '#/state/queries/preferences' @@ -38,7 +39,13 @@ export function useGetSuggestedUsersQuery(props: QueryProps) { queryKey: createGetSuggestedUsersQueryKey(props), queryFn: async () => { const contentLangs = getContentLanguages().join(',') - const interests = aggregateUserInterests(preferences) + const userInterests = aggregateUserInterests(preferences) + + const interests = + props.overrideInterests && props.overrideInterests.length > 0 + ? props.overrideInterests.join(',') + : userInterests + const {data} = await agent.app.bsky.unspecced.getSuggestedUsers( { category: props.category ?? undefined, @@ -46,15 +53,30 @@ export function useGetSuggestedUsersQuery(props: QueryProps) { }, { headers: { - ...createBskyTopicsHeader( - props.overrideInterests && props.overrideInterests.length > 0 - ? props.overrideInterests.join(',') - : interests, - ), + ...createBskyTopicsHeader(interests), 'Accept-Language': contentLangs, }, }, ) + // FALLBACK: if no results for 'all', try again with no interests specified + if (!props.category && data.actors.length === 0) { + logger.error( + `Did not get any suggested users, falling back - interests: ${interests}`, + ) + const {data: fallbackData} = + await agent.app.bsky.unspecced.getSuggestedUsers( + { + category: props.category ?? undefined, + limit: props.limit || 10, + }, + { + headers: { + 'Accept-Language': contentLangs, + }, + }, + ) + return fallbackData + } return data }, -- 2.51.2 From 7861cd153d932d1eb28b6f926bacc81fe9eeefad Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 15 Oct 2025 13:56:29 -0500 Subject: [PATCH 13/14] Remove notice in create account flow (#9209) * Remove notice of policy updates * Rm debug code --- src/lib/statsig/gates.ts | 1 - src/screens/Signup/StepInfo/Policies.tsx | 34 ------------------------ 2 files changed, 35 deletions(-) diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index 10dda8ba3..2bb94b889 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -3,7 +3,6 @@ export type Gate = | 'alt_share_icon' | 'debug_show_feedcontext' | 'debug_subscriptions' - | 'disable_onboarding_policy_update_notice' | 'explore_show_suggested_feeds' | 'feed_reply_button_open_thread' | 'old_postonboarding' diff --git a/src/screens/Signup/StepInfo/Policies.tsx b/src/screens/Signup/StepInfo/Policies.tsx index 754f15e7e..2c609cfc4 100644 --- a/src/screens/Signup/StepInfo/Policies.tsx +++ b/src/screens/Signup/StepInfo/Policies.tsx @@ -4,42 +4,11 @@ import {type ComAtprotoServerDescribeServer} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {webLinks} from '#/lib/constants' -import {useGate} from '#/lib/statsig/statsig' import {atoms as a, useTheme} from '#/alf' import {Admonition} from '#/components/Admonition' import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' -function CommunityGuidelinesNotice({}: {}) { - const {_} = useLingui() - const gate = useGate() - - if (gate('disable_onboarding_policy_update_notice')) return null - - return ( - - - - You also agree to{' '} - - Bluesky’s Community Guidelines - - . An{' '} - - updated version of our Community Guidelines - {' '} - will take effect on October 15th. - - - - ) -} - export const Policies = ({ serviceDescription, needsGuardian, @@ -67,7 +36,6 @@ export const Policies = ({ This service has not provided terms of service or a privacy policy. - ) } @@ -145,8 +113,6 @@ export const Policies = ({ ) : undefined} - - ) } -- 2.51.2 From e7801a0b76c3360e8446911d95bdb0755ce6178f Mon Sep 17 00:00:00 2001 From: pfrazee <1270099+pfrazee@users.noreply.github.com> Date: Thu, 16 Oct 2025 02:37:46 +0000 Subject: [PATCH 14/14] Nightly source-language update --- src/locale/locales/en/messages.po | 612 +++++++++++++++--------------- 1 file changed, 303 insertions(+), 309 deletions(-) diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index a34d0e071..ed6e23320 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -493,6 +493,7 @@ msgstr "" msgid "<0>{date} at {time}" msgstr "" +#: src/screens/Hashtag.tsx:223 #: src/screens/Search/SearchResults.tsx:257 msgid "<0>Sign in<1> or <2>create an account<3> <4>to search for news, sports, politics, and everything else happening on Bluesky." msgstr "" @@ -590,7 +591,7 @@ msgstr "" msgid "Account" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:386 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:393 #: src/screens/Messages/components/RequestButtons.tsx:90 #: src/view/com/profile/ProfileMenu.tsx:166 msgctxt "toast" @@ -602,7 +603,7 @@ msgctxt "toast" msgid "Account followed" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:409 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:416 #: src/view/com/profile/ProfileMenu.tsx:142 msgctxt "toast" msgid "Account muted" @@ -625,7 +626,7 @@ msgstr "" msgid "Account removed from quick access" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:132 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:137 #: src/view/com/profile/ProfileMenu.tsx:156 msgctxt "toast" msgid "Account unblocked" @@ -636,7 +637,7 @@ msgctxt "toast" msgid "Account unfollowed" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:399 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:406 #: src/view/com/profile/ProfileMenu.tsx:132 msgctxt "toast" msgid "Account unmuted" @@ -677,7 +678,7 @@ msgstr "" msgid "Add a content warning" msgstr "" -#: src/components/live/GoLiveDialog.tsx:101 +#: src/components/live/GoLiveDialog.tsx:98 msgid "Add a temporary live status to your profile. When someone clicks on your avatar, they’ll see information about your live event." msgstr "" @@ -712,11 +713,11 @@ msgstr "" msgid "Add another account" msgstr "" -#: src/view/com/composer/Composer.tsx:852 +#: src/view/com/composer/Composer.tsx:854 msgid "Add another post" msgstr "" -#: src/view/com/composer/Composer.tsx:1489 +#: src/view/com/composer/Composer.tsx:1491 msgid "Add another post to thread" msgstr "" @@ -871,11 +872,12 @@ msgid "alice@example.com" msgstr "" #. the default tab in the interests tab bar -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:154 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:153 #: src/view/screens/Notifications.tsx:88 msgid "All" msgstr "" +#: src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx:91 #: src/screens/StarterPack/StarterPackScreen.tsx:386 msgid "All accounts have been followed!" msgstr "" @@ -983,11 +985,12 @@ msgstr "" msgid "An error occurred while compressing the video." msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:176 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:175 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:75 msgid "An error occurred while fetching suggested accounts." msgstr "" -#: src/state/queries/explore-feed-previews.tsx:173 +#: src/state/queries/explore-feed-previews.tsx:183 msgid "An error occurred while fetching the feed." msgstr "" @@ -1007,6 +1010,8 @@ msgstr "" msgid "An error occurred while saving the QR code!" msgstr "" +#: src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx:51 +#: src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx:76 #: src/screens/StarterPack/StarterPackScreen.tsx:352 #: src/screens/StarterPack/StarterPackScreen.tsx:374 msgid "An error occurred while trying to follow all" @@ -1051,10 +1056,6 @@ msgstr "" msgid "An mockup of a iPhone showing the Bluesky app open to the profile of a verified user with a blue checkmark next to their display name." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:194 -msgid "an unknown error occurred" -msgstr "" - #: src/components/moderation/ModerationDetailsDialog.tsx:136 #: src/lib/moderation/useModerationCauseDescription.ts:144 msgid "an unknown labeler" @@ -1064,8 +1065,8 @@ msgstr "" msgid "and" msgstr "" -#: src/screens/Onboarding/index.tsx:42 -#: src/screens/Onboarding/state.ts:102 +#: src/lib/interests.ts:52 +#: src/screens/Onboarding/index.tsx:60 msgid "Animals" msgstr "" @@ -1225,11 +1226,11 @@ msgstr "" msgid "Are you sure you want to remove this from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:801 +#: src/view/com/composer/Composer.tsx:803 msgid "Are you sure you'd like to discard this draft?" msgstr "" -#: src/view/com/composer/Composer.tsx:991 +#: src/view/com/composer/Composer.tsx:993 msgid "Are you sure you'd like to discard this post?" msgstr "" @@ -1241,8 +1242,8 @@ msgstr "" msgid "Are you writing in <0>{suggestedLanguageName}?" msgstr "" -#: src/screens/Onboarding/index.tsx:36 -#: src/screens/Onboarding/state.ts:103 +#: src/lib/interests.ts:53 +#: src/screens/Onboarding/index.tsx:54 msgid "Art" msgstr "" @@ -1254,8 +1255,8 @@ msgstr "" msgid "As a small team, we cannot justify building the expensive infrastructure this requirement demands while legal challenges to this law are pending." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:522 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:524 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:529 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:531 msgid "Assign topic for algo" msgstr "" @@ -1349,16 +1350,16 @@ msgstr "" msgid "Birthday" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:785 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:328 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:792 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:333 #: src/view/com/profile/ProfileMenu.tsx:495 msgid "Block" msgstr "" #: src/components/dms/ConvoMenu.tsx:247 #: src/components/dms/ConvoMenu.tsx:250 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:670 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:672 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:677 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:679 #: src/screens/Messages/components/RequestButtons.tsx:142 #: src/screens/Messages/components/RequestButtons.tsx:144 #: src/view/com/profile/ProfileMenu.tsx:401 @@ -1366,7 +1367,7 @@ msgstr "" msgid "Block account" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:780 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:787 #: src/view/com/profile/ProfileMenu.tsx:478 msgid "Block Account?" msgstr "" @@ -1418,7 +1419,7 @@ msgstr "" msgid "Blocked Accounts" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:782 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:789 #: src/view/com/profile/ProfileMenu.tsx:490 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" @@ -1486,14 +1487,6 @@ msgstr "" msgid "Bluesky will proactively verify notable and authentic accounts." msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:26 -msgid "Bluesky's Community Guidelines" -msgstr "" - -#: src/screens/Signup/StepInfo/Policies.tsx:32 -msgid "Bluesky's Updated Community Guidelines" -msgstr "" - #: src/screens/Settings/AppIconSettings/index.tsx:99 msgid "Bluesky+" msgstr "" @@ -1510,8 +1503,8 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:43 -#: src/screens/Onboarding/state.ts:104 +#: src/lib/interests.ts:54 +#: src/screens/Onboarding/index.tsx:61 msgid "Books" msgstr "" @@ -1564,7 +1557,7 @@ msgstr "" #: src/components/LabelingServiceCard/index.tsx:62 #: src/components/moderation/ReportDialog/index.tsx:686 #: src/screens/Search/components/StarterPackCard.tsx:106 -#: src/screens/Search/Explore.tsx:940 +#: src/screens/Search/Explore.tsx:937 msgid "By {0}" msgstr "" @@ -1580,15 +1573,15 @@ msgstr "" msgid "By continuing, you agree to the <0>KWS Terms of Use and acknowledge that KWS will store your verified status with your hashed email address in accordance with the <1>KWS Privacy Policy. This means you won’t need to verify again the next time you use this email for other apps, games, and services powered by KWS technology." msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:111 +#: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "By creating an account you agree to the <0>Privacy Policy." msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:78 +#: src/screens/Signup/StepInfo/Policies.tsx:46 msgid "By creating an account you agree to the <0>Terms of Service and <1>Privacy Policy." msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:98 +#: src/screens/Signup/StepInfo/Policies.tsx:66 msgid "By creating an account you agree to the <0>Terms of Service." msgstr "" @@ -1611,8 +1604,8 @@ msgstr "" #: src/components/dialogs/InAppBrowserConsent.tsx:104 #: src/components/dialogs/lists/CreateOrEditListDialog.tsx:274 #: src/components/dialogs/lists/CreateOrEditListDialog.tsx:282 -#: src/components/live/GoLiveDialog.tsx:247 -#: src/components/live/GoLiveDialog.tsx:253 +#: src/components/live/GoLiveDialog.tsx:244 +#: src/components/live/GoLiveDialog.tsx:250 #: src/components/Menu/index.tsx:350 #: src/components/PostControls/RepostButton.tsx:210 #: src/components/Prompt.tsx:144 @@ -1630,8 +1623,8 @@ msgstr "" #: src/screens/Settings/Settings.tsx:289 #: src/screens/Takendown.tsx:108 #: src/screens/Takendown.tsx:111 -#: src/view/com/composer/Composer.tsx:1046 -#: src/view/com/composer/Composer.tsx:1057 +#: src/view/com/composer/Composer.tsx:1048 +#: src/view/com/composer/Composer.tsx:1059 #: src/view/com/composer/photos/EditImageDialog.web.tsx:43 #: src/view/com/composer/photos/EditImageDialog.web.tsx:52 #: src/view/shell/desktop/LeftNav.tsx:213 @@ -1900,7 +1893,7 @@ msgstr "" msgid "Click to retry failed message" msgstr "" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:63 msgid "Climate" msgstr "" @@ -1929,7 +1922,7 @@ msgstr "" #: src/components/NewskieDialog.tsx:167 #: src/components/NewskieDialog.tsx:173 #: src/components/Post/Embed/ExternalEmbed/Gif.tsx:197 -#: src/components/ProgressGuide/FollowDialog.tsx:379 +#: src/components/ProgressGuide/FollowDialog.tsx:376 #: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:118 #: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:124 #: src/components/verification/VerificationsDialog.tsx:144 @@ -2007,7 +2000,7 @@ msgstr "" msgid "Closes password update alert" msgstr "" -#: src/view/com/composer/Composer.tsx:1054 +#: src/view/com/composer/Composer.tsx:1056 msgid "Closes post composer and discards post draft" msgstr "" @@ -2037,13 +2030,13 @@ msgstr "" msgid "Color theme" msgstr "" -#: src/screens/Onboarding/index.tsx:51 -#: src/screens/Onboarding/state.ts:105 +#: src/lib/interests.ts:55 +#: src/screens/Onboarding/index.tsx:69 msgid "Comedy" msgstr "" -#: src/screens/Onboarding/index.tsx:37 -#: src/screens/Onboarding/state.ts:106 +#: src/lib/interests.ts:56 +#: src/screens/Onboarding/index.tsx:55 msgid "Comics" msgstr "" @@ -2066,7 +2059,7 @@ msgstr "" msgid "Compose new post" msgstr "" -#: src/view/com/composer/Composer.tsx:955 +#: src/view/com/composer/Composer.tsx:957 msgid "Compose posts up to {0, plural, other {# characters}} in length" msgstr "" @@ -2074,7 +2067,7 @@ msgstr "" msgid "Compose reply" msgstr "" -#: src/view/com/composer/Composer.tsx:1884 +#: src/view/com/composer/Composer.tsx:1886 msgid "Compressing video..." msgstr "" @@ -2207,9 +2200,10 @@ msgstr "" #: src/components/PolicyUpdateOverlay/updates/202508/index.tsx:162 #: src/components/PolicyUpdateOverlay/updates/202508/index.tsx:170 -#: src/screens/Onboarding/StepInterests/index.tsx:254 +#: src/screens/Onboarding/StepInterests/index.tsx:94 #: src/screens/Onboarding/StepProfile/index.tsx:280 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:246 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:253 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:123 msgid "Continue" msgstr "" @@ -2225,9 +2219,10 @@ msgstr "" msgid "Continue thread..." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:251 +#: src/screens/Onboarding/StepInterests/index.tsx:91 #: src/screens/Onboarding/StepProfile/index.tsx:277 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:243 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:250 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:120 #: src/screens/Signup/BackNextButtons.tsx:60 msgid "Continue to next step" msgstr "" @@ -2246,7 +2241,7 @@ msgstr "" msgid "Conversation deleted" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:72 msgid "Cooking" msgstr "" @@ -2345,8 +2340,8 @@ msgstr "" msgid "Copy post at:// URI" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:477 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:479 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:484 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:486 msgid "Copy post text" msgstr "" @@ -2449,6 +2444,7 @@ msgstr "" #: src/components/dialogs/Signin.tsx:86 #: src/components/dialogs/Signin.tsx:88 +#: src/screens/Hashtag.tsx:232 #: src/screens/Search/SearchResults.tsx:268 msgid "Create an account" msgstr "" @@ -2497,8 +2493,8 @@ msgstr "" msgid "Creator has been blocked" msgstr "" -#: src/screens/Onboarding/index.tsx:39 -#: src/screens/Onboarding/state.ts:107 +#: src/lib/interests.ts:57 +#: src/screens/Onboarding/index.tsx:57 msgid "Culture" msgstr "" @@ -2566,7 +2562,7 @@ msgid "Default icons" msgstr "" #: src/components/dms/MessageContextMenu.tsx:185 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:729 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:736 #: src/screens/Messages/components/ChatStatusInfo.tsx:55 #: src/screens/ProfileList/components/MoreOptionsMenu.tsx:280 #: src/screens/Settings/AppPasswords.tsx:212 @@ -2634,9 +2630,9 @@ msgstr "" msgid "Delete my account" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:710 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:712 -#: src/view/com/composer/Composer.tsx:965 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:717 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:719 +#: src/view/com/composer/Composer.tsx:967 msgid "Delete post" msgstr "" @@ -2653,7 +2649,7 @@ msgstr "" msgid "Delete this list?" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:724 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:731 msgid "Delete this post?" msgstr "" @@ -2684,12 +2680,12 @@ msgstr "" msgid "Descriptive alt text" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:614 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:624 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:621 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:631 msgid "Detach quote" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:760 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:767 msgid "Detach quote post?" msgstr "" @@ -2749,8 +2745,8 @@ msgstr "" #: src/components/dialogs/lists/CreateOrEditListDialog.tsx:92 #: src/screens/Profile/Header/EditProfileDialog.tsx:82 -#: src/view/com/composer/Composer.tsx:803 -#: src/view/com/composer/Composer.tsx:998 +#: src/view/com/composer/Composer.tsx:805 +#: src/view/com/composer/Composer.tsx:1000 msgid "Discard" msgstr "" @@ -2759,11 +2755,11 @@ msgstr "" msgid "Discard changes?" msgstr "" -#: src/view/com/composer/Composer.tsx:800 +#: src/view/com/composer/Composer.tsx:802 msgid "Discard draft?" msgstr "" -#: src/view/com/composer/Composer.tsx:990 +#: src/view/com/composer/Composer.tsx:992 msgid "Discard post?" msgstr "" @@ -2777,7 +2773,7 @@ msgstr "" msgid "Discover new custom feeds" msgstr "" -#: src/screens/Search/Explore.tsx:435 +#: src/screens/Search/Explore.tsx:432 #: src/view/screens/Feeds.tsx:730 msgid "Discover New Feeds" msgstr "" @@ -2786,7 +2782,7 @@ msgstr "" msgid "Dismiss" msgstr "" -#: src/view/com/composer/Composer.tsx:1808 +#: src/view/com/composer/Composer.tsx:1810 msgid "Dismiss error" msgstr "" @@ -2971,8 +2967,8 @@ msgstr "" msgid "Edit image" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:691 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:704 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:698 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:711 msgid "Edit interaction settings" msgstr "" @@ -3015,13 +3011,13 @@ msgstr "" #: src/screens/Profile/Header/EditProfileDialog.tsx:268 #: src/screens/Profile/Header/EditProfileDialog.tsx:274 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:190 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:195 msgid "Edit profile" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:186 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:198 msgid "Edit Profile" msgstr "" @@ -3041,8 +3037,8 @@ msgstr "" msgid "Edit your starter pack" msgstr "" -#: src/screens/Onboarding/index.tsx:44 -#: src/screens/Onboarding/state.ts:109 +#: src/lib/interests.ts:59 +#: src/screens/Onboarding/index.tsx:62 msgid "Education" msgstr "" @@ -3228,7 +3224,7 @@ msgstr "" msgid "Entertainment" msgstr "" -#: src/view/com/composer/Composer.tsx:1893 +#: src/view/com/composer/Composer.tsx:1895 #: src/view/com/util/error/ErrorScreen.tsx:42 msgid "Error" msgstr "" @@ -3253,10 +3249,6 @@ msgstr "" msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:192 -msgid "Error:" -msgstr "" - #: src/screens/Search/SearchResults.tsx:146 msgid "Error: {error}" msgstr "" @@ -3459,7 +3451,7 @@ msgstr "" msgid "Failed to delete starter pack" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:126 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:125 msgid "Failed to follow all suggested accounts, please try again" msgstr "" @@ -3468,10 +3460,10 @@ msgstr "" msgid "Failed to load conversations" msgstr "" -#: src/screens/Search/Explore.tsx:471 -#: src/screens/Search/Explore.tsx:523 -#: src/screens/Search/Explore.tsx:561 -#: src/screens/Search/Explore.tsx:600 +#: src/screens/Search/Explore.tsx:468 +#: src/screens/Search/Explore.tsx:520 +#: src/screens/Search/Explore.tsx:558 +#: src/screens/Search/Explore.tsx:597 msgid "Failed to load feeds preferences" msgstr "" @@ -3501,14 +3493,14 @@ msgstr "" msgid "Failed to load preference." msgstr "" -#: src/screens/Search/Explore.tsx:464 -#: src/screens/Search/Explore.tsx:516 -#: src/screens/Search/Explore.tsx:554 -#: src/screens/Search/Explore.tsx:593 +#: src/screens/Search/Explore.tsx:461 +#: src/screens/Search/Explore.tsx:513 +#: src/screens/Search/Explore.tsx:551 +#: src/screens/Search/Explore.tsx:590 msgid "Failed to load suggested feeds" msgstr "" -#: src/screens/Search/Explore.tsx:374 +#: src/screens/Search/Explore.tsx:371 msgid "Failed to load suggested follows" msgstr "" @@ -3546,7 +3538,7 @@ msgstr "" msgid "Failed to save settings. Please try again." msgstr "" -#: src/screens/Settings/InterestsSettings.tsx:132 +#: src/screens/Settings/InterestsSettings.tsx:136 msgctxt "toast" msgid "Failed to save your interests." msgstr "" @@ -3644,8 +3636,8 @@ msgstr "" msgid "Feedback" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:275 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:293 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:276 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:294 msgctxt "toast" msgid "Feedback sent to feed operator" msgstr "" @@ -3712,15 +3704,19 @@ msgstr "" msgid "Finally! Keep track of posts that matter to you. Save them to revisit anytime." msgstr "" +#: src/lib/interests.ts:60 +msgid "Finance" +msgstr "" + #: src/view/com/posts/CustomFeedEmptyState.tsx:48 #: src/view/com/posts/FollowingEmptyState.tsx:53 #: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "" -#: src/components/ProgressGuide/FollowDialog.tsx:69 -#: src/components/ProgressGuide/FollowDialog.tsx:79 -#: src/components/ProgressGuide/FollowDialog.tsx:367 +#: src/components/ProgressGuide/FollowDialog.tsx:66 +#: src/components/ProgressGuide/FollowDialog.tsx:76 +#: src/components/ProgressGuide/FollowDialog.tsx:364 msgid "Find people to follow" msgstr "" @@ -3736,7 +3732,7 @@ msgstr "" msgid "Finish" msgstr "" -#: src/screens/Onboarding/index.tsx:48 +#: src/screens/Onboarding/index.tsx:66 msgid "Fitness" msgstr "" @@ -3764,7 +3760,7 @@ msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:496 #: src/components/ProfileHoverCard/index.web.tsx:507 #: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:131 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:257 #: src/screens/VideoFeed/index.tsx:856 msgid "Follow" msgstr "" @@ -3775,7 +3771,7 @@ msgid "Follow" msgstr "" #: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:113 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 msgid "Follow {0}" msgstr "" @@ -3797,20 +3793,22 @@ msgstr "" msgid "Follow account" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:235 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:242 +#: src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx:156 +#: src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx:163 #: src/screens/StarterPack/StarterPackScreen.tsx:438 #: src/screens/StarterPack/StarterPackScreen.tsx:446 msgid "Follow all" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:232 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:239 msgid "Follow all accounts" msgstr "" #. User is not following this account, click to follow back #: src/components/ProfileCard.tsx:518 #: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:129 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:255 msgid "Follow back" msgstr "" @@ -3819,7 +3817,7 @@ msgctxt "action" msgid "Follow back" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:121 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:120 msgid "Followed all accounts!" msgstr "" @@ -3853,7 +3851,7 @@ msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:495 #: src/components/ProfileHoverCard/index.web.tsx:506 #: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:134 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:248 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:253 #: src/screens/VideoFeed/index.tsx:854 msgid "Following" msgstr "" @@ -3865,7 +3863,7 @@ msgid "Following" msgstr "" #: src/components/ProfileCard.tsx:474 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:95 msgid "Following {0}" msgstr "" @@ -3899,8 +3897,8 @@ msgstr "" msgid "Font size" msgstr "" -#: src/screens/Onboarding/index.tsx:53 -#: src/screens/Onboarding/state.ts:110 +#: src/lib/interests.ts:61 +#: src/screens/Onboarding/index.tsx:71 msgid "Food" msgstr "" @@ -3920,8 +3918,8 @@ msgstr "" msgid "For the best experience, we recommend using the theme font." msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:293 -#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:94 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:300 +#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:91 msgid "For You" msgstr "" @@ -3959,7 +3957,7 @@ msgstr "" msgid "From" msgstr "" -#: src/screens/Hashtag.tsx:120 +#: src/screens/Hashtag.tsx:126 msgid "From @{sanitizedAuthor}" msgstr "" @@ -4109,14 +4107,14 @@ msgstr "" msgid "Go live" msgstr "" -#: src/components/live/GoLiveDialog.tsx:93 -#: src/components/live/GoLiveDialog.tsx:98 -#: src/components/live/GoLiveDialog.tsx:232 -#: src/components/live/GoLiveDialog.tsx:241 +#: src/components/live/GoLiveDialog.tsx:90 +#: src/components/live/GoLiveDialog.tsx:95 +#: src/components/live/GoLiveDialog.tsx:229 +#: src/components/live/GoLiveDialog.tsx:238 msgid "Go Live" msgstr "" -#: src/components/live/GoLiveDialog.tsx:174 +#: src/components/live/GoLiveDialog.tsx:171 msgid "Go live for" msgstr "" @@ -4248,7 +4246,7 @@ msgstr "" #: src/components/moderation/ContentHider.tsx:203 #: src/components/moderation/LabelPreference.tsx:140 #: src/components/moderation/PostHider.tsx:137 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:740 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:747 #: src/lib/moderation/useLabelBehaviorDescription.ts:18 #: src/lib/moderation/useLabelBehaviorDescription.ts:23 #: src/lib/moderation/useLabelBehaviorDescription.ts:28 @@ -4266,18 +4264,18 @@ msgstr "" msgid "Hide customization options" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:571 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:577 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:578 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:584 msgid "Hide post for me" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:588 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:598 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:595 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:605 msgid "Hide reply for everyone" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:570 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:576 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:577 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:583 msgid "Hide reply for me" msgstr "" @@ -4285,12 +4283,12 @@ msgstr "" msgid "Hide this card" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:735 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:742 msgid "Hide this post?" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:735 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:770 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:742 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:777 msgid "Hide this reply?" msgstr "" @@ -4399,7 +4397,7 @@ msgstr "" msgid "If alt text is long, toggles alt text expanded state" msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:142 +#: src/screens/Signup/StepInfo/Policies.tsx:110 msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" @@ -4415,7 +4413,7 @@ msgstr "" msgid "If you need to update your email, <0>click here." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:726 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:733 msgid "If you remove this post, you won't be able to recover it." msgstr "" @@ -4563,7 +4561,7 @@ msgstr "" msgid "Invalid handle. Please try a different one." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:358 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:365 msgctxt "toast" msgid "Invalid interaction settings." msgstr "" @@ -4612,7 +4610,7 @@ msgstr "" msgid "It's just you right now! Add more people to your starter pack by searching above." msgstr "" -#: src/view/com/composer/Composer.tsx:1827 +#: src/view/com/composer/Composer.tsx:1829 msgid "Job ID: {0}" msgstr "" @@ -4633,8 +4631,8 @@ msgstr "" msgid "Join the conversation" msgstr "" -#: src/screens/Onboarding/index.tsx:34 -#: src/screens/Onboarding/state.ts:112 +#: src/lib/interests.ts:63 +#: src/screens/Onboarding/index.tsx:52 msgid "Journalism" msgstr "" @@ -4705,7 +4703,7 @@ msgstr "" msgid "Last initiated just now" msgstr "" -#: src/screens/Hashtag.tsx:95 +#: src/screens/Hashtag.tsx:101 #: src/screens/Search/SearchResults.tsx:59 #: src/screens/Topic.tsx:77 msgid "Latest" @@ -4856,7 +4854,7 @@ msgstr "" msgid "Like this feed" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:270 msgid "Like this labeler" msgstr "" @@ -4878,8 +4876,8 @@ msgstr "" #: src/components/LabelingServiceCard/index.tsx:96 #: src/screens/Profile/components/ProfileFeedHeader.tsx:493 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:292 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:306 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:290 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:304 msgid "Liked by {likeCount, plural, one {# user} other {# users}}" msgstr "" @@ -5013,17 +5011,17 @@ msgstr "" #: src/components/live/EditLiveDialog.tsx:148 #: src/components/live/EditLiveDialog.tsx:152 -#: src/components/live/GoLiveDialog.tsx:124 -#: src/components/live/GoLiveDialog.tsx:128 +#: src/components/live/GoLiveDialog.tsx:121 +#: src/components/live/GoLiveDialog.tsx:125 msgid "Live link" msgstr "" -#: src/screens/Search/Explore.tsx:87 +#: src/screens/Search/Explore.tsx:84 msgid "Load more" msgstr "" -#: src/screens/Search/Explore.tsx:505 -#: src/screens/Search/Explore.tsx:582 +#: src/screens/Search/Explore.tsx:502 +#: src/screens/Search/Explore.tsx:579 msgid "Load more suggested feeds" msgstr "" @@ -5298,11 +5296,11 @@ msgstr "" msgid "Move feed up" msgstr "" -#: src/screens/Onboarding/state.ts:113 +#: src/lib/interests.ts:64 msgid "Movies" msgstr "" -#: src/screens/Onboarding/state.ts:114 +#: src/lib/interests.ts:65 msgid "Music" msgstr "" @@ -5317,8 +5315,8 @@ msgstr "" msgid "Mute {tag}" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:653 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:659 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:660 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:666 #: src/view/com/profile/ProfileMenu.tsx:380 #: src/view/com/profile/ProfileMenu.tsx:387 msgid "Mute account" @@ -5370,13 +5368,13 @@ msgstr "" msgid "Mute this word until you unmute it" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:537 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:541 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:544 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:548 msgid "Mute thread" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:551 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:553 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:558 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:560 msgid "Mute words & tags" msgstr "" @@ -5429,8 +5427,8 @@ msgstr "" msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:35 -#: src/screens/Onboarding/state.ts:115 +#: src/lib/interests.ts:66 +#: src/screens/Onboarding/index.tsx:53 msgid "Nature" msgstr "" @@ -5576,8 +5574,8 @@ msgstr "" msgid "Newest replies first" msgstr "" -#: src/screens/Onboarding/index.tsx:33 -#: src/screens/Onboarding/state.ts:116 +#: src/lib/interests.ts:67 +#: src/screens/Onboarding/index.tsx:51 #: src/screens/Search/modules/ExploreTrendingTopics.tsx:238 msgid "News" msgstr "" @@ -5644,7 +5642,7 @@ msgid "No likes yet" msgstr "" #: src/components/ProfileCard.tsx:496 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:118 msgid "No longer following {0}" msgstr "" @@ -5694,11 +5692,11 @@ msgid "No result" msgstr "" #: src/components/dialogs/SearchablePeopleList.tsx:223 -#: src/components/ProgressGuide/FollowDialog.tsx:204 +#: src/components/ProgressGuide/FollowDialog.tsx:201 msgid "No results" msgstr "" -#: src/screens/Search/Explore.tsx:797 +#: src/screens/Search/Explore.tsx:794 msgid "No results for \"{0}\"." msgstr "" @@ -5716,7 +5714,7 @@ msgstr "" msgid "No results found for {query}" msgstr "" -#: src/screens/Search/Explore.tsx:801 +#: src/screens/Search/Explore.tsx:798 msgid "No results." msgstr "" @@ -5861,12 +5859,8 @@ msgstr "" msgid "Oh no!" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:124 -msgid "Oh no! Something went wrong." -msgstr "" - #. Confirm button text. -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:349 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:347 #: src/screens/Search/modules/ExploreInterestsCard.tsx:48 #: src/screens/Settings/AppIconSettings/index.tsx:48 #: src/screens/Settings/AppIconSettings/index.tsx:234 @@ -5966,7 +5960,7 @@ msgid "Open drawer menu" msgstr "" #: src/screens/Messages/components/MessageInput.web.tsx:181 -#: src/view/com/composer/Composer.tsx:1474 +#: src/view/com/composer/Composer.tsx:1476 msgid "Open emoji picker" msgstr "" @@ -6066,7 +6060,7 @@ msgstr "" msgid "Opens device gallery to select up to {MAX_IMAGES, plural, other {# images}}, or a single video or GIF." msgstr "" -#: src/view/com/composer/Composer.tsx:1475 +#: src/view/com/composer/Composer.tsx:1477 msgid "Opens emoji picker" msgstr "" @@ -6239,12 +6233,12 @@ msgstr "" msgid "Person toggle" msgstr "" -#: src/screens/Onboarding/index.tsx:41 -#: src/screens/Onboarding/state.ts:117 +#: src/lib/interests.ts:68 +#: src/screens/Onboarding/index.tsx:59 msgid "Pets" msgstr "" -#: src/screens/Onboarding/state.ts:118 +#: src/lib/interests.ts:69 msgid "Photography" msgstr "" @@ -6271,8 +6265,8 @@ msgstr "" msgid "Pin to Home" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:445 #: src/components/PostControls/PostMenu/PostMenuItems.tsx:452 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:459 msgid "Pin to your profile" msgstr "" @@ -6468,8 +6462,8 @@ msgstr "" msgid "Please write your message below:" msgstr "" -#: src/screens/Onboarding/index.tsx:47 -#: src/screens/Onboarding/state.ts:119 +#: src/lib/interests.ts:70 +#: src/screens/Onboarding/index.tsx:65 #: src/screens/Search/modules/ExploreTrendingTopics.tsx:232 msgid "Politics" msgstr "" @@ -6483,12 +6477,12 @@ msgctxt "description" msgid "Post" msgstr "" -#: src/view/com/composer/Composer.tsx:1117 +#: src/view/com/composer/Composer.tsx:1119 msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/composer/Composer.tsx:1115 +#: src/view/com/composer/Composer.tsx:1117 msgctxt "action" msgid "Post All" msgstr "" @@ -6653,7 +6647,7 @@ msgstr "" msgid "Privacy Policy" msgstr "" -#: src/view/com/composer/Composer.tsx:1890 +#: src/view/com/composer/Composer.tsx:1892 msgid "Processing video..." msgstr "" @@ -6692,22 +6686,22 @@ msgid "Public, sharable lists which can be used to drive feeds." msgstr "" #. Accessibility label for button to publish a single post -#: src/view/com/composer/Composer.tsx:1097 +#: src/view/com/composer/Composer.tsx:1099 msgid "Publish post" msgstr "" #. Accessibility label for button to publish multiple posts in a thread -#: src/view/com/composer/Composer.tsx:1090 +#: src/view/com/composer/Composer.tsx:1092 msgid "Publish posts" msgstr "" #. Accessibility label for button to publish multiple replies in a thread -#: src/view/com/composer/Composer.tsx:1075 +#: src/view/com/composer/Composer.tsx:1077 msgid "Publish replies" msgstr "" #. Accessibility label for button to publish a single reply -#: src/view/com/composer/Composer.tsx:1082 +#: src/view/com/composer/Composer.tsx:1084 msgid "Publish reply" msgstr "" @@ -6750,11 +6744,11 @@ msgstr "" msgid "Quote post" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:313 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:314 msgid "Quote post was re-attached" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:312 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:313 msgid "Quote post was successfully detached" msgstr "" @@ -6784,8 +6778,8 @@ msgstr "" msgid "Rate limit exceeded – you've tried to change your handle too many times in a short period. Please wait a minute before trying again." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:613 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:623 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:620 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:630 msgid "Re-attach quote" msgstr "" @@ -6827,13 +6821,13 @@ msgstr "" msgid "Read the Bluesky blog" msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:88 -#: src/screens/Signup/StepInfo/Policies.tsx:114 +#: src/screens/Signup/StepInfo/Policies.tsx:56 +#: src/screens/Signup/StepInfo/Policies.tsx:82 msgid "Read the Bluesky Privacy Policy" msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:81 -#: src/screens/Signup/StepInfo/Policies.tsx:101 +#: src/screens/Signup/StepInfo/Policies.tsx:49 +#: src/screens/Signup/StepInfo/Policies.tsx:69 msgid "Read the Bluesky Terms of Service" msgstr "" @@ -7097,7 +7091,7 @@ msgstr "" msgid "Replies to this post are disabled." msgstr "" -#: src/view/com/composer/Composer.tsx:1113 +#: src/view/com/composer/Composer.tsx:1115 msgctxt "action" msgid "Reply" msgstr "" @@ -7133,12 +7127,12 @@ msgstr "" msgid "Reply sorting" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:344 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:351 msgctxt "toast" msgid "Reply visibility updated" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:343 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:350 msgid "Reply was successfully hidden" msgstr "" @@ -7181,8 +7175,8 @@ msgstr "" msgid "Report message" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:679 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:681 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:686 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:688 msgid "Report post" msgstr "" @@ -7370,10 +7364,10 @@ msgstr "" #: src/screens/Messages/ChatList.tsx:292 #: src/screens/Messages/components/MessageListError.tsx:25 #: src/screens/Messages/Inbox.tsx:219 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:209 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:212 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:216 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:219 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:98 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:101 #: src/screens/PostThread/components/ThreadError.tsx:80 #: src/screens/PostThread/components/ThreadError.tsx:86 #: src/screens/Signup/BackNextButtons.tsx:53 @@ -7493,8 +7487,8 @@ msgstr "" msgid "Say hello!" msgstr "" -#: src/screens/Onboarding/index.tsx:46 -#: src/screens/Onboarding/state.ts:120 +#: src/lib/interests.ts:71 +#: src/screens/Onboarding/index.tsx:64 msgid "Science" msgstr "" @@ -7524,7 +7518,7 @@ msgstr "" msgid "Search @{0}'s posts" msgstr "" -#: src/components/ProgressGuide/FollowDialog.tsx:595 +#: src/components/ProgressGuide/FollowDialog.tsx:592 msgid "Search by name or interest" msgstr "" @@ -7533,12 +7527,12 @@ msgid "Search feeds" msgstr "" #. Accessibility label for a tab that searches for accounts in a category (e.g. Art, Video Games, Sports, etc.) that are suggested for the user to follow. The tab is not currently active and can be selected. -#: src/components/ProgressGuide/FollowDialog.tsx:425 +#: src/components/ProgressGuide/FollowDialog.tsx:422 msgid "Search for \"{interestsDisplayName}\"" msgstr "" #. Accessibility label for a tab that searches for accounts in a category (e.g. Art, Video Games, Sports, etc.) that are suggested for the user to follow. The tab is currently selected. -#: src/components/ProgressGuide/FollowDialog.tsx:418 +#: src/components/ProgressGuide/FollowDialog.tsx:415 msgid "Search for \"{interestsDisplayName}\" (active)" msgstr "" @@ -7554,11 +7548,11 @@ msgstr "" msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/screens/Search/Explore.tsx:361 +#: src/screens/Search/Explore.tsx:358 msgid "Search for more accounts" msgstr "" -#: src/screens/Search/Explore.tsx:438 +#: src/screens/Search/Explore.tsx:435 msgid "Search for more feeds" msgstr "" @@ -7570,6 +7564,7 @@ msgstr "" msgid "Search GIFs" msgstr "" +#: src/screens/Hashtag.tsx:221 #: src/screens/Search/SearchResults.tsx:255 msgid "Search is currently unavailable when logged out" msgstr "" @@ -7589,7 +7584,7 @@ msgid "Search posts" msgstr "" #: src/components/dialogs/SearchablePeopleList.tsx:534 -#: src/components/ProgressGuide/FollowDialog.tsx:614 +#: src/components/ProgressGuide/FollowDialog.tsx:611 msgid "Search profiles" msgstr "" @@ -7602,7 +7597,7 @@ msgid "Search..." msgstr "" #: src/components/dialogs/SearchablePeopleList.tsx:535 -#: src/components/ProgressGuide/FollowDialog.tsx:615 +#: src/components/ProgressGuide/FollowDialog.tsx:612 msgid "Searches for profiles" msgstr "" @@ -7693,7 +7688,7 @@ msgstr "" msgid "Select content languages" msgstr "" -#: src/components/live/GoLiveDialog.tsx:179 +#: src/components/live/GoLiveDialog.tsx:176 msgid "Select duration" msgstr "" @@ -7776,8 +7771,8 @@ msgstr "" msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:201 -#: src/screens/Settings/InterestsSettings.tsx:161 +#: src/screens/Onboarding/StepInterests/index.tsx:70 +#: src/screens/Settings/InterestsSettings.tsx:165 msgid "Select your interests from the options below" msgstr "" @@ -7947,7 +7942,7 @@ msgid "Sexually Suggestive" msgstr "" #: src/components/StarterPack/QrCodeDialog.tsx:192 -#: src/screens/Hashtag.tsx:126 +#: src/screens/Hashtag.tsx:132 #: src/screens/StarterPack/StarterPackScreen.tsx:433 #: src/screens/Topic.tsx:102 msgid "Share" @@ -8058,8 +8053,8 @@ msgstr "" msgid "Show customization options" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:508 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:510 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:515 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:517 msgid "Show less like this" msgstr "" @@ -8071,8 +8066,8 @@ msgstr "" msgid "Show More" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:500 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:502 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:507 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:509 msgid "Show more like this" msgstr "" @@ -8102,8 +8097,8 @@ msgstr "" msgid "Show replies by people you follow before all other replies" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:587 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:597 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:594 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:604 msgid "Show reply for everyone" msgstr "" @@ -8142,6 +8137,7 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/components/WelcomeModal.tsx:194 #: src/components/WelcomeModal.tsx:206 +#: src/screens/Hashtag.tsx:225 #: src/screens/Login/index.tsx:136 #: src/screens/Login/index.tsx:157 #: src/screens/Login/LoginForm.tsx:181 @@ -8184,8 +8180,8 @@ msgstr "" msgid "Sign in to Bluesky or create a new account" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:486 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:488 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:493 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:495 msgid "Sign in to view post" msgstr "" @@ -8226,8 +8222,8 @@ msgstr "" #: src/screens/Onboarding/StepFinished/index.tsx:306 #: src/screens/Onboarding/StepFinished/index.tsx:328 -#: src/screens/Onboarding/StepInterests/index.tsx:240 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:222 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:229 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:111 #: src/screens/StarterPack/Wizard/index.tsx:218 msgid "Skip" msgstr "" @@ -8237,8 +8233,8 @@ msgstr "" msgid "Skip introduction and start using your account" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:237 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:219 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:226 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:108 msgid "Skip this flow" msgstr "" @@ -8254,8 +8250,8 @@ msgstr "" msgid "Social media you control." msgstr "" -#: src/screens/Onboarding/index.tsx:50 -#: src/screens/Onboarding/state.ts:108 +#: src/lib/interests.ts:58 +#: src/screens/Onboarding/index.tsx:68 msgid "Software Dev" msgstr "" @@ -8317,6 +8313,10 @@ msgstr "" msgid "Something wrong? Let us know." msgstr "" +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:183 +msgid "Sorry, we're unable to load account suggestions at this time." +msgstr "" + #: src/App.native.tsx:128 #: src/App.web.tsx:100 msgid "Sorry! Your session expired. Please sign in again." @@ -8351,8 +8351,8 @@ msgstr "" msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:40 -#: src/screens/Onboarding/state.ts:121 +#: src/lib/interests.ts:72 +#: src/screens/Onboarding/index.tsx:58 #: src/screens/Search/modules/ExploreTrendingTopics.tsx:230 msgid "Sports" msgstr "" @@ -8402,7 +8402,7 @@ msgstr "" msgid "Starter pack is invalid" msgstr "" -#: src/screens/Search/Explore.tsx:629 +#: src/screens/Search/Explore.tsx:626 #: src/view/screens/Profile.tsx:231 msgid "Starter Packs" msgstr "" @@ -8464,11 +8464,11 @@ msgstr "" msgid "Subscribe to account activity" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:233 msgid "Subscribe to Labeler" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:201 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:199 msgid "Subscribe to this labeler" msgstr "" @@ -8489,13 +8489,15 @@ msgstr "" msgid "Successfully verified" msgstr "" -#: src/screens/Search/Explore.tsx:358 +#: src/screens/Search/Explore.tsx:355 msgid "Suggested Accounts" msgstr "" +#. Accounts suggested to the user for them to follow #. Accounts suggested to the user for them to follow #: src/components/FeedInterstitials.tsx:385 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:137 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 +#: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:48 msgid "Suggested for you" msgstr "" @@ -8596,8 +8598,8 @@ msgstr "" msgid "Teach our algorithm what you like" msgstr "" -#: src/screens/Onboarding/index.tsx:49 -#: src/screens/Onboarding/state.ts:122 +#: src/lib/interests.ts:73 +#: src/screens/Onboarding/index.tsx:67 msgid "Tech" msgstr "" @@ -8696,7 +8698,7 @@ msgstr "" msgid "That's everything!" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:324 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:329 #: src/view/com/profile/ProfileMenu.tsx:483 msgid "The account will be able to interact with you after unblocking." msgstr "" @@ -8821,7 +8823,7 @@ msgid "There was an issue contacting the server" msgstr "" #: src/screens/Profile/components/ProfileFeedHeader.tsx:418 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:109 msgid "There was an issue contacting the server, please check your internet connection and try again." msgstr "" @@ -8829,7 +8831,7 @@ msgstr "" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/screens/Search/Explore.tsx:996 +#: src/screens/Search/Explore.tsx:993 #: src/view/com/posts/PostFeed.tsx:709 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -8866,14 +8868,14 @@ msgstr "" msgid "There was an issue updating your feeds, please check your internet connection and try again." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:390 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:403 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:413 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:397 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:410 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:420 #: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:90 #: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:101 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:101 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:123 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:127 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:141 #: src/view/com/profile/ProfileMenu.tsx:136 #: src/view/com/profile/ProfileMenu.tsx:146 #: src/view/com/profile/ProfileMenu.tsx:160 @@ -9022,7 +9024,7 @@ msgid "This information is private and not shared with other users." msgstr "" #: src/components/live/EditLiveDialog.tsx:189 -#: src/components/live/GoLiveDialog.tsx:160 +#: src/components/live/GoLiveDialog.tsx:157 msgid "This is not a valid link" msgstr "" @@ -9074,7 +9076,7 @@ msgstr "" msgid "This post was deleted by its author" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:737 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:744 msgid "This post will be hidden from feeds and threads. This cannot be undone." msgstr "" @@ -9086,11 +9088,11 @@ msgstr "" msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't signed in." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:772 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:779 msgid "This reply will be sorted into a hidden section at the bottom of your thread and will mute notifications for subsequent replies - both for yourself and others." msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:66 +#: src/screens/Signup/StepInfo/Policies.tsx:35 msgid "This service has not provided terms of service or a privacy policy." msgstr "" @@ -9147,7 +9149,7 @@ msgstr "" msgid "This will remove @{0} from the quick access list." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:762 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:769 msgid "This will remove your post from this quote post for all users, and replace it with a placeholder." msgstr "" @@ -9207,7 +9209,7 @@ msgstr "" msgid "Toggles the sound" msgstr "" -#: src/screens/Hashtag.tsx:84 +#: src/screens/Hashtag.tsx:90 #: src/screens/Search/SearchResults.tsx:49 #: src/screens/Topic.tsx:71 msgid "Top" @@ -9226,8 +9228,8 @@ msgstr "" #: src/components/dms/MessageContextMenu.tsx:137 #: src/components/dms/MessageContextMenu.tsx:139 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:469 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:471 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:476 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:478 #: src/screens/PostThread/components/ThreadItemAnchor.tsx:589 #: src/screens/PostThread/components/ThreadItemAnchor.tsx:592 msgid "Translate" @@ -9255,7 +9257,7 @@ msgctxt "action" msgid "Try again" msgstr "" -#: src/screens/Onboarding/state.ts:123 +#: src/lib/interests.ts:74 msgid "TV" msgstr "" @@ -9317,15 +9319,15 @@ msgstr "" #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:112 #: src/components/dms/MessagesListBlockedFooter.tsx:119 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:208 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:328 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:333 #: src/screens/ProfileList/components/Header.tsx:171 #: src/screens/ProfileList/components/Header.tsx:178 #: src/view/com/profile/ProfileMenu.tsx:495 msgid "Unblock" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:218 msgctxt "action" msgid "Unblock" msgstr "" @@ -9337,7 +9339,7 @@ msgstr "" msgid "Unblock account" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:322 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:327 #: src/view/com/profile/ProfileMenu.tsx:477 msgid "Unblock Account?" msgstr "" @@ -9367,7 +9369,7 @@ msgctxt "action" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:236 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:241 msgid "Unfollow {0}" msgstr "" @@ -9417,8 +9419,8 @@ msgstr "" msgid "Unmute {tag}" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:652 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:658 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:659 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:665 #: src/view/com/profile/ProfileMenu.tsx:379 #: src/view/com/profile/ProfileMenu.tsx:385 msgid "Unmute account" @@ -9433,8 +9435,8 @@ msgstr "" msgid "Unmute list" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:537 -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:541 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:544 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:548 msgid "Unmute thread" msgstr "" @@ -9462,8 +9464,8 @@ msgstr "" msgid "Unpin from home" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:444 #: src/components/PostControls/PostMenu/PostMenuItems.tsx:451 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:458 msgid "Unpin from profile" msgstr "" @@ -9489,7 +9491,7 @@ msgstr "" msgid "Unsnooze email reminder" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:233 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:231 msgid "Unsubscribe" msgstr "" @@ -9498,7 +9500,7 @@ msgstr "" msgid "Unsubscribe from list" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:198 msgid "Unsubscribe from this labeler" msgstr "" @@ -9506,7 +9508,7 @@ msgstr "" msgid "Unsubscribed from list" msgstr "" -#: src/view/com/composer/Composer.tsx:893 +#: src/view/com/composer/Composer.tsx:895 msgid "Unsupported video type: {mimeType}" msgstr "" @@ -9542,12 +9544,12 @@ msgstr "" msgid "Update your email" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:317 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:318 msgctxt "toast" msgid "Updating quote attachment failed" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:363 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:370 msgctxt "toast" msgid "Updating reply visibility failed" msgstr "" @@ -9592,7 +9594,7 @@ msgstr "" msgid "Uploading link thumbnail..." msgstr "" -#: src/view/com/composer/Composer.tsx:1887 +#: src/view/com/composer/Composer.tsx:1889 msgid "Uploading video..." msgstr "" @@ -9828,8 +9830,8 @@ msgstr "" msgid "Video from {0}: {text}" msgstr "" -#: src/screens/Onboarding/index.tsx:52 -#: src/screens/Onboarding/state.ts:111 +#: src/lib/interests.ts:62 +#: src/screens/Onboarding/index.tsx:70 #: src/screens/Search/modules/ExploreTrendingTopics.tsx:234 msgid "Video Games" msgstr "" @@ -9850,7 +9852,7 @@ msgstr "" msgid "Video settings" msgstr "" -#: src/view/com/composer/Composer.tsx:1897 +#: src/view/com/composer/Composer.tsx:1899 msgid "Video uploaded" msgstr "" @@ -9866,7 +9868,7 @@ msgstr "" msgid "Videos must be less than 3 minutes long." msgstr "" -#: src/view/com/composer/Composer.tsx:584 +#: src/view/com/composer/Composer.tsx:585 msgctxt "Action to view the post the user just created" msgid "View" msgstr "" @@ -9928,7 +9930,7 @@ msgstr "" msgid "View more trending videos" msgstr "" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:580 msgid "View post" msgstr "" @@ -10035,7 +10037,7 @@ msgstr "" msgid "We could not find this list. It was probably deleted." msgstr "" -#: src/screens/Hashtag.tsx:205 +#: src/screens/Hashtag.tsx:256 msgid "We couldn't find any results for that hashtag." msgstr "" @@ -10067,7 +10069,7 @@ msgstr "" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "" -#: src/screens/Settings/InterestsSettings.tsx:154 +#: src/screens/Settings/InterestsSettings.tsx:158 msgid "We recommend selecting at least two interests." msgstr "" @@ -10091,10 +10093,6 @@ msgstr "" msgid "We were unable to receive the verification due to a connection issue. It may arrive later. If it does, your account will update automatically." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:129 -msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." -msgstr "" - #: src/screens/SignupQueued.tsx:164 msgid "We will let you know when your account is ready." msgstr "" @@ -10103,7 +10101,7 @@ msgstr "" msgid "We'll send an email to <0>{0} containing a link. Please click on it to complete the email verification process." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:134 +#: src/screens/Onboarding/StepInterests/index.tsx:63 msgid "We'll use this to help customize your experience." msgstr "" @@ -10124,7 +10122,7 @@ msgid "We're having issues initializing the age assurance process for your accou msgstr "" #: src/components/dialogs/SearchablePeopleList.tsx:107 -#: src/components/ProgressGuide/FollowDialog.tsx:164 +#: src/components/ProgressGuide/FollowDialog.tsx:161 msgid "We're having network issues, try again" msgstr "" @@ -10165,7 +10163,7 @@ msgstr "" msgid "We're sorry! We can't find the page you were looking for." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:341 msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." msgstr "" @@ -10197,7 +10195,7 @@ msgstr "" msgid "Welcome, friend!" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:126 +#: src/screens/Onboarding/StepInterests/index.tsx:60 msgid "What are your interests?" msgstr "" @@ -10207,7 +10205,7 @@ msgstr "" #: src/view/com/auth/SplashScreen.tsx:51 #: src/view/com/auth/SplashScreen.web.tsx:103 -#: src/view/com/composer/Composer.tsx:853 +#: src/view/com/composer/Composer.tsx:855 msgid "What's up?" msgstr "" @@ -10285,17 +10283,17 @@ msgstr "" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:953 +#: src/view/com/composer/Composer.tsx:955 msgid "Write post" msgstr "" #: src/screens/PostThread/components/ThreadComposePrompt.tsx:90 -#: src/view/com/composer/Composer.tsx:851 +#: src/view/com/composer/Composer.tsx:853 msgid "Write your reply" msgstr "" -#: src/screens/Onboarding/index.tsx:38 -#: src/screens/Onboarding/state.ts:124 +#: src/lib/interests.ts:75 +#: src/screens/Onboarding/index.tsx:56 msgid "Writers" msgstr "" @@ -10304,7 +10302,7 @@ msgid "Wrong DID returned from server. Received: {0}" msgstr "" #: src/components/live/EditLiveDialog.tsx:153 -#: src/components/live/GoLiveDialog.tsx:129 +#: src/components/live/GoLiveDialog.tsx:126 msgid "www.mylivestream.tv" msgstr "" @@ -10321,11 +10319,11 @@ msgstr "" msgid "Yes, delete this starter pack" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:765 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:772 msgid "Yes, detach" msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:775 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:782 msgid "Yes, hide" msgstr "" @@ -10337,10 +10335,6 @@ msgstr "" msgid "Yesterday" msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:23 -msgid "You also agree to <0>Bluesky’s Community Guidelines. An <1>updated version of our Community Guidelines will take effect on October 15th." -msgstr "" - #: src/components/verification/VerifierDialog.tsx:59 msgid "You are a trusted verifier" msgstr "" @@ -10415,7 +10409,7 @@ msgstr "" msgid "You can continue ongoing conversations regardless of which setting you choose." msgstr "" -#: src/components/PostControls/PostMenu/PostMenuItems.tsx:350 +#: src/components/PostControls/PostMenu/PostMenuItems.tsx:357 msgctxt "toast" msgid "You can hide a maximum of {MAX_HIDDEN_REPLIES} replies." msgstr "" @@ -10591,7 +10585,7 @@ msgstr "" msgid "You may only add up to 3 feeds" msgstr "" -#: src/screens/Signup/StepInfo/Policies.tsx:136 +#: src/screens/Signup/StepInfo/Policies.tsx:104 msgid "You must be 13 years of age or older to create an account." msgstr "" @@ -10844,11 +10838,11 @@ msgstr "" #: src/screens/Search/modules/ExploreInterestsCard.tsx:67 #: src/screens/Settings/ContentAndMediaSettings.tsx:92 #: src/screens/Settings/ContentAndMediaSettings.tsx:95 -#: src/screens/Settings/InterestsSettings.tsx:42 +#: src/screens/Settings/InterestsSettings.tsx:46 msgid "Your interests" msgstr "" -#: src/screens/Settings/InterestsSettings.tsx:123 +#: src/screens/Settings/InterestsSettings.tsx:127 msgctxt "toast" msgid "Your interests have been updated!" msgstr "" @@ -10873,11 +10867,11 @@ msgstr "" msgid "Your password must be at least 8 characters long." msgstr "" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:576 msgid "Your post was sent" msgstr "" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:573 msgid "Your posts were sent" msgstr "" @@ -10902,7 +10896,7 @@ msgstr "" msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." msgstr "" -#: src/view/com/composer/Composer.tsx:574 +#: src/view/com/composer/Composer.tsx:575 msgid "Your reply was sent" msgstr "" @@ -10914,7 +10908,7 @@ msgstr "" msgid "Your report will be sent to the Bluesky Moderation Service" msgstr "" -#: src/screens/Settings/InterestsSettings.tsx:56 +#: src/screens/Settings/InterestsSettings.tsx:60 msgid "Your selected interests help us serve you content you care about." msgstr "" -- 2.51.2