-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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: do better validation for existing tokens #7358
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
6 Ignored Deployments
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
🟢 Turbopack Benchmark CI successful 🟢Thanks |
🟢 CI successful 🟢Thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.error_for_status()?; | ||
|
||
Ok(response.json().await?) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Between these two conversions, I think it might be beneficial to handle errors from Vercel API. Like we do with 403 errors
a96f143
to
8f3b544
Compare
8f3b544
to
827a123
Compare
#[test] | ||
fn test_is_token_active() { | ||
let current_time = current_unix_time(); | ||
let quick_scope = |expiry| Scope { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MW2 had it right all along: quick scopes on Rust are the way 😤
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some minor suggestions
crates/turborepo-auth/src/lib.rs
Outdated
let all_scopes_active = metadata.scopes.iter().all(|scope| { | ||
scope | ||
.expires_at | ||
.map_or(true, |expires_at| expires_at > current_time) | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Complete bikeshed. My brain understands this a lil faster, something about an all
that contains map_or
confuses me.
Feel free to ignore if you disagree
let all_scopes_active = metadata.scopes.iter().all(|scope| { | |
scope | |
.expires_at | |
.map_or(true, |expires_at| expires_at > current_time) | |
}); | |
let earliest_expiration = metadata | |
.scopes | |
.iter() | |
.filter_map(|scope| scope.expires_at) | |
.max(); | |
let all_scopes_active = | |
earliest_expiration.map_or(true, |expiration| current_time < expiration); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no problem here, I'll take your suggestion since I have no strong preference either way.
), | ||
]; | ||
|
||
for (active_at, scopes, expected) in cases { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do think using test_case instead of manual table tests has some benefits, primarily it'll run all of the test cases on failure and not bail after the first failure.
Not blocking, just sharing my 2 cents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah I've been experimenting with different ways to write tests, and originally this was a tokio::test
which I wasn't sure of how it'd interact with test_case
, so I went back to my old Go route. I'll probably make this use test_case
in a future PR
crates/turborepo-auth/src/lib.rs
Outdated
), | ||
// Case: Token inactive (future `active_at`) | ||
( | ||
current_time + 10, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I realize that this is unlikely, but I think we should proactively bump this threshold since there's a chance this could fail if it takes 10ms or more to perform the previous 4 test cases.
Also, I don't think this affects us, but the big "SystemTime is not monotonic" warning on the docs makes a little concerned about some possible drift that causes these tests fail.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll just do like, 1000 since this is a test that's supposed to be inactive.
The monotonic issue is valid, and I'm purely going off of vibes and instinct in saying that I don't think it'll be an issue. If it does become an issue I can hard code something, but that feels a little more flakey / less exhaustive as a test
crates/turborepo-auth/src/lib.rs
Outdated
fn is_token_active(metadata: &ResponseTokenMetadata) -> bool { | ||
let current_time = current_unix_time(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Passing in the current time makes this a pure function which might make testing a little more reliable.
fn is_token_active(metadata: &ResponseTokenMetadata) -> bool { | |
let current_time = current_unix_time(); | |
fn is_token_active(metadata: &ResponseTokenMetadata, current_time: u128) -> bool { |
827a123
to
5afd5c2
Compare
5afd5c2
to
d3a7cdb
Compare
[![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 [#​941](https://togithub.com/chromaui/chromatic-cli/pull/941) ([@​tevanoff](https://togithub.com/tevanoff)) ##### Authors: 1 - Todd Evanoff ([@​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 [#​932](https://togithub.com/chromaui/chromatic-cli/pull/932) ([@​andrewortwein](https://togithub.com/andrewortwein)) ##### Authors: 1 - Andrew Ortwein ([@​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 [#​937](https://togithub.com/chromaui/chromatic-cli/pull/937) ([@​thafryer](https://togithub.com/thafryer)) ##### Authors: 1 - Jarel Fryer ([@​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 [@​anthonyshew](https://togithub.com/anthonyshew) in [https://github.com/vercel/turbo/pull/7426](https://togithub.com/vercel/turbo/pull/7426) - chore(docs): update github actions versions to support node 20 by [@​robinsmith-source](https://togithub.com/robinsmith-source) in [https://github.com/vercel/turbo/pull/7434](https://togithub.com/vercel/turbo/pull/7434) - chore: update docs to no longer suggest verbosity for `--profile` by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7521](https://togithub.com/vercel/turbo/pull/7521) - Add version to package in internal packages docs for yarn by [@​loctn](https://togithub.com/loctn) in [https://github.com/vercel/turbo/pull/7626](https://togithub.com/vercel/turbo/pull/7626) ##### create-turbo - release(turborepo): 1.12.4 by [@​github-actions](https://togithub.com/github-actions) in [https://github.com/vercel/turbo/pull/7383](https://togithub.com/vercel/turbo/pull/7383) ##### [@​turbo/repository](https://togithub.com/turbo/repository) - chore(Turborepo): bump versions in prep for a release by [@​gsoltis](https://togithub.com/gsoltis) in [https://github.com/vercel/turbo/pull/7385](https://togithub.com/vercel/turbo/pull/7385) - refactor(turborepo): Package Detection by [@​NicholasLYang](https://togithub.com/NicholasLYang) in [https://github.com/vercel/turbo/pull/7549](https://togithub.com/vercel/turbo/pull/7549) - feat([@​turbo/repository](https://togithub.com/turbo/repository)): return dependencies in graph by [@​mehulkar](https://togithub.com/mehulkar) in [https://github.com/vercel/turbo/pull/7616](https://togithub.com/vercel/turbo/pull/7616) - chore([@​turbo/repository](https://togithub.com/turbo/repository)): bump version to 0.0.1-canary.8 by [@​mehulkar](https://togithub.com/mehulkar) in [https://github.com/vercel/turbo/pull/7636](https://togithub.com/vercel/turbo/pull/7636) ##### Examples - fix(examples): basic generator by [@​dangbt](https://togithub.com/dangbt) in [https://github.com/vercel/turbo/pull/7400](https://togithub.com/vercel/turbo/pull/7400) - Remove barrel file from design-system-example by [@​anthonyshew](https://togithub.com/anthonyshew) in [https://github.com/vercel/turbo/pull/7580](https://togithub.com/vercel/turbo/pull/7580) - Dependabot updates for examples. by [@​anthonyshew](https://togithub.com/anthonyshew) in [https://github.com/vercel/turbo/pull/7615](https://togithub.com/vercel/turbo/pull/7615) - Bug fix on with-npm by [@​zsh77](https://togithub.com/zsh77) in [https://github.com/vercel/turbo/pull/7587](https://togithub.com/vercel/turbo/pull/7587) - dev script of ui package in example with rollup by [@​zsh77](https://togithub.com/zsh77) in [https://github.com/vercel/turbo/pull/7550](https://togithub.com/vercel/turbo/pull/7550) - Cleanup of with-vite example by [@​zsh77](https://togithub.com/zsh77) in [https://github.com/vercel/turbo/pull/7585](https://togithub.com/vercel/turbo/pull/7585) - Cleanup of with-yarn example by [@​zsh77](https://togithub.com/zsh77) in [https://github.com/vercel/turbo/pull/7589](https://togithub.com/vercel/turbo/pull/7589) - Guarantee typescript-eslint parser resolving. by [@​anthonyshew](https://togithub.com/anthonyshew) in [https://github.com/vercel/turbo/pull/7634](https://togithub.com/vercel/turbo/pull/7634) ##### Changelog - perf: parse and walk globs in parallel by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7244](https://togithub.com/vercel/turbo/pull/7244) - fix: do better validation for existing tokens by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7358](https://togithub.com/vercel/turbo/pull/7358) - chore(ci): remove Makefile targets to build Go binaries by [@​mehulkar](https://togithub.com/mehulkar) in [https://github.com/vercel/turbo/pull/7389](https://togithub.com/vercel/turbo/pull/7389) - add error enum to `turborepo-dirs` by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7277](https://togithub.com/vercel/turbo/pull/7277) - fix: Clippy errors by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7392](https://togithub.com/vercel/turbo/pull/7392) - docs: Refresh daemon documentation by [@​NicholasLYang](https://togithub.com/NicholasLYang) in [https://github.com/vercel/turbo/pull/7386](https://togithub.com/vercel/turbo/pull/7386) - Break up Client trait by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7387](https://togithub.com/vercel/turbo/pull/7387) - chore(turbo): delete unused goreleaser configs by [@​mehulkar](https://togithub.com/mehulkar) in [https://github.com/vercel/turbo/pull/7393](https://togithub.com/vercel/turbo/pull/7393) - Improve daemon startup times by [@​arlyon](https://togithub.com/arlyon) in [https://github.com/vercel/turbo/pull/7322](https://togithub.com/vercel/turbo/pull/7322) - fix: reading output from orphan process by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7402](https://togithub.com/vercel/turbo/pull/7402) - Add optionalwatch cookie support by [@​arlyon](https://togithub.com/arlyon) in [https://github.com/vercel/turbo/pull/7379](https://togithub.com/vercel/turbo/pull/7379) - chore: add force flag to login command by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7378](https://togithub.com/vercel/turbo/pull/7378) - Audit daemon error paths and ensure we are doing everything we can to handle by [@​arlyon](https://togithub.com/arlyon) in [https://github.com/vercel/turbo/pull/7334](https://togithub.com/vercel/turbo/pull/7334) - chore: lower log level for noisy crates by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7439](https://togithub.com/vercel/turbo/pull/7439) - chore: Rename daemon code by [@​NicholasLYang](https://togithub.com/NicholasLYang) in [https://github.com/vercel/turbo/pull/7440](https://togithub.com/vercel/turbo/pull/7440) - fix: support yarn4 semver resolutions by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7442](https://togithub.com/vercel/turbo/pull/7442) - fix: More robust token validation by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7407](https://togithub.com/vercel/turbo/pull/7407) - chore: Change daemon log location to be in repo by [@​NicholasLYang](https://togithub.com/NicholasLYang) in [https://github.com/vercel/turbo/pull/7468](https://togithub.com/vercel/turbo/pull/7468) - chore: remove unnecessary result on join_unix_path by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7506](https://togithub.com/vercel/turbo/pull/7506) - chore: remove unused features from config crate by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7531](https://togithub.com/vercel/turbo/pull/7531) - feat: task table widget by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7470](https://togithub.com/vercel/turbo/pull/7470) - fix: Remove extra login popup for Vercel by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7469](https://togithub.com/vercel/turbo/pull/7469) - feat(turborepo): Convert even more errors by [@​NicholasLYang](https://togithub.com/NicholasLYang) in [https://github.com/vercel/turbo/pull/7513](https://togithub.com/vercel/turbo/pull/7513) - fix: correctly call teams api by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7533](https://togithub.com/vercel/turbo/pull/7533) - chore: add read_existing_to_string by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7532](https://togithub.com/vercel/turbo/pull/7532) - feat: allow for faux comments at top level of turbo.json by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7546](https://togithub.com/vercel/turbo/pull/7546) - fix: Load vercel token into command base by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7545](https://togithub.com/vercel/turbo/pull/7545) - fix: support pnpm workspace path aliasing by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7512](https://togithub.com/vercel/turbo/pull/7512) - chore: remove unused import from dep_splitter by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7555](https://togithub.com/vercel/turbo/pull/7555) - fix: Respect globalDependencies when determining changed packages by [@​NicholasLYang](https://togithub.com/NicholasLYang) in [https://github.com/vercel/turbo/pull/7557](https://togithub.com/vercel/turbo/pull/7557) - feat(Turborepo): Renaming, additional cookiewriter constructor by [@​gsoltis](https://togithub.com/gsoltis) in [https://github.com/vercel/turbo/pull/7553](https://togithub.com/vercel/turbo/pull/7553) - fix: vercel auth file borks login by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7556](https://togithub.com/vercel/turbo/pull/7556) - fix: login success page redirect by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7558](https://togithub.com/vercel/turbo/pull/7558) - chore: move logout functionality into auth crate by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7443](https://togithub.com/vercel/turbo/pull/7443) - chore: Change to use borrowed path by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7569](https://togithub.com/vercel/turbo/pull/7569) - Handle logging story better on daemon by [@​arlyon](https://togithub.com/arlyon) in [https://github.com/vercel/turbo/pull/7526](https://togithub.com/vercel/turbo/pull/7526) - fix: sso login duplicate popup by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7575](https://togithub.com/vercel/turbo/pull/7575) - chore(Turborepo): refactor telemetry to use turbopath by [@​gsoltis](https://togithub.com/gsoltis) in [https://github.com/vercel/turbo/pull/7567](https://togithub.com/vercel/turbo/pull/7567) - chore(Turborepo): move test filesystem setup into test code by [@​gsoltis](https://togithub.com/gsoltis) in [https://github.com/vercel/turbo/pull/7568](https://togithub.com/vercel/turbo/pull/7568) - chore(Turborepo): Switch tests to use filesystem, remove unused generics by [@​gsoltis](https://togithub.com/gsoltis) in [https://github.com/vercel/turbo/pull/7610](https://togithub.com/vercel/turbo/pull/7610) - fix(cache): fix restoration issues of directories with very long paths by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7628](https://togithub.com/vercel/turbo/pull/7628) - chore: vendor vt100 crate by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7591](https://togithub.com/vercel/turbo/pull/7591) - fix(cache): restoration symlink by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7633](https://togithub.com/vercel/turbo/pull/7633) - fix: reject empty cache dir path by [@​chris-olszewski](https://togithub.com/chris-olszewski) in [https://github.com/vercel/turbo/pull/7630](https://togithub.com/vercel/turbo/pull/7630) - fix: add more caching status tests by [@​Zertsov](https://togithub.com/Zertsov) in [https://github.com/vercel/turbo/pull/7574](https://togithub.com/vercel/turbo/pull/7574) #### New Contributors - [@​dangbt](https://togithub.com/dangbt) made their first contribution in [https://github.com/vercel/turbo/pull/7400](https://togithub.com/vercel/turbo/pull/7400) - [@​robinsmith-source](https://togithub.com/robinsmith-source) made their first contribution in [https://github.com/vercel/turbo/pull/7434](https://togithub.com/vercel/turbo/pull/7434) - [@​nnmax](https://togithub.com/nnmax) made their first contribution in [https://github.com/vercel/turbo/pull/6651](https://togithub.com/vercel/turbo/pull/6651) - [@​bgw](https://togithub.com/bgw) made their first contribution in [https://github.com/vercel/turbo/pull/7206](https://togithub.com/vercel/turbo/pull/7206) - [@​loctn](https://togithub.com/loctn) made their first contribution in [https://github.com/vercel/turbo/pull/7626](https://togithub.com/vercel/turbo/pull/7626) - [@​zsh77](https://togithub.com/zsh77) made their first contribution in [https://github.com/vercel/turbo/pull/7587](https://togithub.com/vercel/turbo/pull/7587) **Full Changelog**: vercel/turborepo@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>
Description
Found a path in which a token can be invalid but we claim it isn't. The user would have to run
turbo logout
and then login to get a new token.Testing Instructions
turbo login
againCloses TURBO-2334