Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: More robust token validation #7407

Merged
merged 1 commit into from Feb 21, 2024
Merged

fix: More robust token validation #7407

merged 1 commit into from Feb 21, 2024

Conversation

Zertsov
Copy link
Contributor

@Zertsov Zertsov commented Feb 16, 2024

Description

Some more modularization and better checking of validity for tokens.

Testing Instructions

Try logins as normal, then login while logged in. If you can expire a token manually, try logging in again and it should do the normal login route again.

Closes TURBO-2391

Copy link

vercel bot commented Feb 16, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
examples-basic-web 🔄 Building (Inspect) Visit Preview 💬 Add feedback Feb 21, 2024 0:39am
rust-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 21, 2024 0:39am
9 Ignored Deployments
Name Status Preview Comments Updated (UTC)
examples-designsystem-docs ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
examples-gatsby-web ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
examples-kitchensink-blog ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
examples-native-web ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
examples-nonmonorepo ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
examples-svelte-web ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
examples-tailwind-web ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
examples-vite-web ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am
turbo-site ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2024 0:39am

Copy link
Contributor Author

Zertsov commented Feb 16, 2024

Copy link
Contributor

github-actions bot commented Feb 16, 2024

🟢 Turbopack Benchmark CI successful 🟢

Thanks

Copy link
Contributor

github-actions bot commented Feb 16, 2024

🟢 CI successful 🟢

Thanks

@@ -267,6 +293,60 @@ mod tests {
}
}

#[async_trait]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps out of scope for this PR but as of rust 1.75 we don't need async_trait any more. If you need to specify things like Send (the default for async_trait traits) you can use return position impl instead.

async fn get_artifact(...) -> Result<Option<Response>, turborepo_api_client::Error>
// or
fn get_artifact(...) -> impl Future<Output=Result<Option<Response>, turborepo_api_client::Error>> + Send

The side effect being no more Pin<Box<dyn Future>> :)

See here: https://github.com/vercel/turbo/blob/main/crates/turborepo-repository/src/discovery.rs#L43-L57

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I quickly tried to swap out [async_trait] but I had a bunch of errors around the Output not being a Future, so I'll migrate these in another PR

Copy link
Contributor

@chris-olszewski chris-olszewski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing blocking, just a few thoughts.

Comment on lines +47 to +54
let valid_token_callback = |message: &str, ui: &UI| {
let message = message.to_string();
let ui = *ui;
move |user_email: &str| {
println!("{}", ui.apply(BOLD.apply_to(message)));
ui::print_cli_authorized(user_email, &ui);
}
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this might be too clever as opposed to having is_valid return a Result<Option<String>> which contains the email if the token is valid and None if it isn't valid.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I plan on doing some refactoring later to make it so is_valid can still just return a bool, since I think it's quicker and easier to grok than is_valid returning anything other than a bool

Comment on lines +65 to +67
let is_active = self.is_active(client).await?;
let has_cache_access = self.has_cache_access(client, None).await?;
if !is_active || !has_cache_access {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can just do these at the same time

Suggested change
let is_active = self.is_active(client).await?;
let has_cache_access = self.has_cache_access(client, None).await?;
if !is_active || !has_cache_access {
let (is_active, has_cache_access) = tokio::try_join!(self.is_active(client), self.has_cache_access(client, None))?;
if !is_active || !has_cache_access {

/// * `client` - The client to use for API calls.
/// * `valid_message_fn` - An optional callback that gets called if the
/// token is valid. It will be passed the user's email.
// TODO(voz): This should do a `get_user` or `get_teams` instead of the caller
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this TODO still apply now that we're calling self.user?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, missed this before merging, so I'll clean it up somewhere in this stack.

@Zertsov Zertsov merged commit 1745f9c into main Feb 21, 2024
60 checks passed
@Zertsov Zertsov deleted the voz/more-validation branch February 21, 2024 19:05
kodiakhq bot added a commit to weareinreach/TransMascFutures that referenced this pull request Mar 6, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.11.24` -> `20.11.25`](https://renovatebot.com/diffs/npm/@types%2fnode/20.11.24/20.11.25) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.11.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.11.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.11.24/20.11.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.11.24/20.11.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`18.2.63` -> `18.2.64`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.63/18.2.64) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.64?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.64?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.63/18.2.64?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.63/18.2.64?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [chromatic](https://www.chromatic.com) ([source](https://togithub.com/chromaui/chromatic-cli)) | [`11.0.1` -> `11.0.4`](https://renovatebot.com/diffs/npm/chromatic/11.0.1/11.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/chromatic/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/chromatic/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/chromatic/11.0.1/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/chromatic/11.0.1/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [eslint-plugin-turbo](https://togithub.com/vercel/turbo) ([source](https://togithub.com/vercel/turbo/tree/HEAD/packages/eslint-plugin-turbo)) | [`1.12.4` -> `1.12.5`](https://renovatebot.com/diffs/npm/eslint-plugin-turbo/1.12.4/1.12.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-turbo/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-turbo/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-turbo/1.12.4/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-turbo/1.12.4/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [react-i18next](https://togithub.com/i18next/react-i18next) | [`14.0.5` -> `14.0.8`](https://renovatebot.com/diffs/npm/react-i18next/14.0.5/14.0.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-i18next/14.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-i18next/14.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-i18next/14.0.5/14.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-i18next/14.0.5/14.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [turbo](https://turbo.build/repo) ([source](https://togithub.com/vercel/turbo)) | [`1.12.4` -> `1.12.5`](https://renovatebot.com/diffs/npm/turbo/1.12.4/1.12.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/turbo/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/turbo/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/turbo/1.12.4/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/turbo/1.12.4/1.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`5.3.3` -> `5.4.2`](https://renovatebot.com/diffs/npm/typescript/5.3.3/5.4.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.3.3/5.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.3.3/5.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>chromaui/chromatic-cli (chromatic)</summary>

### [`v11.0.4`](https://togithub.com/chromaui/chromatic-cli/blob/HEAD/CHANGELOG.md#v1104-Wed-Mar-06-2024)

[Compare Source](https://togithub.com/chromaui/chromatic-cli/compare/v11.0.3...v11.0.4)

##### 🐛 Bug Fix

-   Do not prompt to install chromatic script during E2E builds [#&#8203;941](https://togithub.com/chromaui/chromatic-cli/pull/941) ([@&#8203;tevanoff](https://togithub.com/tevanoff))

##### Authors: 1

-   Todd Evanoff ([@&#8203;tevanoff](https://togithub.com/tevanoff))

***

### [`v11.0.3`](https://togithub.com/chromaui/chromatic-cli/blob/HEAD/CHANGELOG.md#v1103-Wed-Mar-06-2024)

[Compare Source](https://togithub.com/chromaui/chromatic-cli/compare/v11.0.2...v11.0.3)

##### 🐛 Bug Fix

-   Display full error message when storybookBaseDir is invalid [#&#8203;932](https://togithub.com/chromaui/chromatic-cli/pull/932) ([@&#8203;andrewortwein](https://togithub.com/andrewortwein))

##### Authors: 1

-   Andrew Ortwein ([@&#8203;andrewortwein](https://togithub.com/andrewortwein))

***

### [`v11.0.2`](https://togithub.com/chromaui/chromatic-cli/blob/HEAD/CHANGELOG.md#v1102-Tue-Mar-05-2024)

[Compare Source](https://togithub.com/chromaui/chromatic-cli/compare/v11.0.1...v11.0.2)

##### 🐛 Bug Fix

-   Fix support for boolean value to `junitReport` option [#&#8203;937](https://togithub.com/chromaui/chromatic-cli/pull/937) ([@&#8203;thafryer](https://togithub.com/thafryer))

##### Authors: 1

-   Jarel Fryer ([@&#8203;thafryer](https://togithub.com/thafryer))

***

</details>

<details>
<summary>vercel/turbo (eslint-plugin-turbo)</summary>

### [`v1.12.5`](https://togithub.com/vercel/turbo/releases/tag/v1.12.5): Turborepo v1.12.5

[Compare Source](https://togithub.com/vercel/turbo/compare/v1.12.4...v1.12.5)



#### What's Changed

##### Docs

-   Name the file in Prisma doc. by [@&#8203;anthonyshew](https://togithub.com/anthonyshew) in [vercel/turbo#7426
-   chore(docs): update github actions versions to support node 20 by [@&#8203;robinsmith-source](https://togithub.com/robinsmith-source) in [vercel/turbo#7434
-   chore: update docs to no longer suggest verbosity for `--profile` by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7521
-   Add version to package in internal packages docs for yarn by [@&#8203;loctn](https://togithub.com/loctn) in [vercel/turbo#7626

##### create-turbo

-   release(turborepo): 1.12.4 by [@&#8203;github-actions](https://togithub.com/github-actions) in [vercel/turbo#7383

##### [@&#8203;turbo/repository](https://togithub.com/turbo/repository)

-   chore(Turborepo): bump versions in prep for a release by [@&#8203;gsoltis](https://togithub.com/gsoltis) in [vercel/turbo#7385
-   refactor(turborepo): Package Detection by [@&#8203;NicholasLYang](https://togithub.com/NicholasLYang) in [vercel/turbo#7549
-   feat([@&#8203;turbo/repository](https://togithub.com/turbo/repository)): return dependencies in graph by [@&#8203;mehulkar](https://togithub.com/mehulkar) in [vercel/turbo#7616
-   chore([@&#8203;turbo/repository](https://togithub.com/turbo/repository)): bump version to 0.0.1-canary.8 by [@&#8203;mehulkar](https://togithub.com/mehulkar) in [vercel/turbo#7636

##### Examples

-   fix(examples): basic generator by [@&#8203;dangbt](https://togithub.com/dangbt) in [vercel/turbo#7400
-   Remove barrel file from design-system-example by [@&#8203;anthonyshew](https://togithub.com/anthonyshew) in [vercel/turbo#7580
-   Dependabot updates for examples. by [@&#8203;anthonyshew](https://togithub.com/anthonyshew) in [vercel/turbo#7615
-   Bug fix on with-npm by [@&#8203;zsh77](https://togithub.com/zsh77) in [vercel/turbo#7587
-   dev script of ui package in example with rollup by [@&#8203;zsh77](https://togithub.com/zsh77) in [vercel/turbo#7550
-   Cleanup of with-vite example by [@&#8203;zsh77](https://togithub.com/zsh77) in [vercel/turbo#7585
-   Cleanup of with-yarn example by [@&#8203;zsh77](https://togithub.com/zsh77) in [vercel/turbo#7589
-   Guarantee typescript-eslint parser resolving. by [@&#8203;anthonyshew](https://togithub.com/anthonyshew) in [vercel/turbo#7634

##### Changelog

-   perf: parse and walk globs in parallel by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7244
-   fix: do better validation for existing tokens by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7358
-   chore(ci): remove Makefile targets to build Go binaries by [@&#8203;mehulkar](https://togithub.com/mehulkar) in [vercel/turbo#7389
-   add error enum to `turborepo-dirs` by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7277
-   fix: Clippy errors by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7392
-   docs: Refresh daemon documentation by [@&#8203;NicholasLYang](https://togithub.com/NicholasLYang) in [vercel/turbo#7386
-   Break up Client trait by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7387
-   chore(turbo): delete unused goreleaser configs by [@&#8203;mehulkar](https://togithub.com/mehulkar) in [vercel/turbo#7393
-   Improve daemon startup times by [@&#8203;arlyon](https://togithub.com/arlyon) in [vercel/turbo#7322
-   fix: reading output from orphan process by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7402
-   Add optionalwatch cookie support by [@&#8203;arlyon](https://togithub.com/arlyon) in [vercel/turbo#7379
-   chore: add force flag to login command by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7378
-   Audit daemon error paths and ensure we are doing everything we can to handle by [@&#8203;arlyon](https://togithub.com/arlyon) in [vercel/turbo#7334
-   chore: lower log level for noisy crates by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7439
-   chore: Rename daemon code by [@&#8203;NicholasLYang](https://togithub.com/NicholasLYang) in [vercel/turbo#7440
-   fix: support yarn4 semver resolutions by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7442
-   fix: More robust token validation by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7407
-   chore: Change daemon log location to be in repo by [@&#8203;NicholasLYang](https://togithub.com/NicholasLYang) in [vercel/turbo#7468
-   chore: remove unnecessary result on join_unix_path by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7506
-   chore: remove unused features from config crate by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7531
-   feat: task table widget by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7470
-   fix: Remove extra login popup for Vercel by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7469
-   feat(turborepo): Convert even more errors by [@&#8203;NicholasLYang](https://togithub.com/NicholasLYang) in [vercel/turbo#7513
-   fix: correctly call teams api by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7533
-   chore: add read_existing_to_string by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7532
-   feat: allow for faux comments at top level of turbo.json by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7546
-   fix: Load vercel token into command base by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7545
-   fix: support pnpm workspace path aliasing by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7512
-   chore: remove unused import from dep_splitter by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7555
-   fix: Respect globalDependencies when determining changed packages by [@&#8203;NicholasLYang](https://togithub.com/NicholasLYang) in [vercel/turbo#7557
-   feat(Turborepo): Renaming, additional cookiewriter constructor by [@&#8203;gsoltis](https://togithub.com/gsoltis) in [vercel/turbo#7553
-   fix: vercel auth file borks login by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7556
-   fix: login success page redirect by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7558
-   chore: move logout functionality into auth crate by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7443
-   chore: Change  to use borrowed path by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7569
-   Handle logging story better on daemon by [@&#8203;arlyon](https://togithub.com/arlyon) in [vercel/turbo#7526
-   fix: sso login duplicate popup by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7575
-   chore(Turborepo): refactor telemetry to use turbopath by [@&#8203;gsoltis](https://togithub.com/gsoltis) in [vercel/turbo#7567
-   chore(Turborepo): move test filesystem setup into test code by [@&#8203;gsoltis](https://togithub.com/gsoltis) in [vercel/turbo#7568
-   chore(Turborepo): Switch tests to use filesystem, remove unused generics by [@&#8203;gsoltis](https://togithub.com/gsoltis) in [vercel/turbo#7610
-   fix(cache): fix restoration issues of directories with very long paths by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7628
-   chore: vendor vt100 crate by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7591
-   fix(cache): restoration symlink by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7633
-   fix: reject empty cache dir path by [@&#8203;chris-olszewski](https://togithub.com/chris-olszewski) in [vercel/turbo#7630
-   fix: add more caching status tests by [@&#8203;Zertsov](https://togithub.com/Zertsov) in [vercel/turbo#7574

#### New Contributors

-   [@&#8203;dangbt](https://togithub.com/dangbt) made their first contribution in [vercel/turbo#7400
-   [@&#8203;robinsmith-source](https://togithub.com/robinsmith-source) made their first contribution in [vercel/turbo#7434
-   [@&#8203;nnmax](https://togithub.com/nnmax) made their first contribution in [vercel/turbo#6651
-   [@&#8203;bgw](https://togithub.com/bgw) made their first contribution in [vercel/turbo#7206
-   [@&#8203;loctn](https://togithub.com/loctn) made their first contribution in [vercel/turbo#7626
-   [@&#8203;zsh77](https://togithub.com/zsh77) made their first contribution in [vercel/turbo#7587

**Full Changelog**: vercel/turbo@v1.12.4...v1.12.5

</details>

<details>
<summary>i18next/react-i18next (react-i18next)</summary>

### [`v14.0.8`](https://togithub.com/i18next/react-i18next/blob/HEAD/CHANGELOG.md#1408)

[Compare Source](https://togithub.com/i18next/react-i18next/compare/v14.0.7...v14.0.8)

-   fix: issue [1728](https://togithub.com/i18next/react-i18next/issues/1728) when useSuspense is false and default ns [1731](https://togithub.com/i18next/react-i18next/pull/1731)

### [`v14.0.7`](https://togithub.com/i18next/react-i18next/blob/HEAD/CHANGELOG.md#1407)

[Compare Source](https://togithub.com/i18next/react-i18next/compare/v14.0.6...v14.0.7)

-   try to get rid of internal interpolationOverride handling for Trans component, fixes [1729](https://togithub.com/i18next/react-i18next/issues/1729)

### [`v14.0.6`](https://togithub.com/i18next/react-i18next/blob/HEAD/CHANGELOG.md#1406)

[Compare Source](https://togithub.com/i18next/react-i18next/compare/v14.0.5...v14.0.6)

-   align context handling of Trans component with t function, fixes [1729](https://togithub.com/i18next/react-i18next/issues/1729)

</details>

<details>
<summary>vercel/turbo (turbo)</summary>

### [`v1.12.5`](https://togithub.com/vercel/turbo/compare/v1.12.4...v1.12.5)

[Compare Source](https://togithub.com/vercel/turbo/compare/v1.12.4...v1.12.5)

</details>

<details>
<summary>Microsoft/TypeScript (typescript)</summary>

### [`v5.4.2`](https://togithub.com/microsoft/TypeScript/releases/tag/v5.4.2): TypeScript 5.4

[Compare Source](https://togithub.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.2)

For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/).

For the complete list of fixed issues, check out the

-   [fixed issues query for Typescript 5.4.0 (Beta)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+).
-   [fixed issues query for Typescript 5.4.1 (RC)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+).
-   [fixed issues query for Typescript 5.4.2 (Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+).

Downloads are available on:

-   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday,before 4am on Thursday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/weareinreach/GLAAD).



PR-URL: #356
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants