You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: add loose auto complete to string literals where applicable (#966)
## What kind of change does this PR introduce?
Add "loose autocomplete" to`WeakPasswordReasons`, `AMREntry.method`,
`Factor.factor_type`, `SignInWithIdTokenCredentials.provider` and
`AuthError.code `
## What is the current behavior?
The above types define possible string literal values, which is great,
but they're unioned with `string`. As a regular `"literal" | string`
just ends up as a `string` this foregoes the benefit of defining the
literals in the first place.
## What is the new behavior?
TypeScript still allows any possible string as a valid value (notice no
error on the "not in there"), but now the predefined literals show up as
hints. This is done by using `"literal" | string & {}`. While this seems
hacky, it's something that works and something the TS team test against
meaning they won't "fix" it in future releases.
<img width="632" alt="image"
src="https://github.com/user-attachments/assets/a6bd07c1-c460-4b80-87ae-2c855e996157">
Currently these hints aren't shown as the type just ends up as a simple
`string`.
## Additional context
I believe this can be quite helpful for people when trying to handle
errors etc. I know `string & {}` might look somewhat weird for
maintainers, if preferable I can create a `LooseAutocomplete<T>` or
something and wrap them in there but this seemed cleaner.
* Timestamp when the method was successfully used. Represents number of
@@ -310,7 +310,7 @@ export interface Factor {
310
310
/**
311
311
* Type of factor. `totp` and `phone` supported with this version
312
312
*/
313
-
factor_type: 'totp'|'phone'|string
313
+
factor_type: 'totp'|'phone'|(string&{})
314
314
315
315
/** Factor's status. */
316
316
status: 'verified'|'unverified'
@@ -604,7 +604,7 @@ export type SignInWithOAuthCredentials = {
604
604
605
605
exporttypeSignInWithIdTokenCredentials={
606
606
/** Provider name or OIDC `iss` value identifying which provider should be used to verify the provided token. Supported names: `google`, `apple`, `azure`, `facebook`, `kakao`, `keycloak` (deprecated). */
/** OIDC ID token issued by the specified provider. The `iss` claim in the ID token must match the supplied provider. Some ID tokens contain an `at_hash` which require that you provide an `access_token` value to be accepted properly. If the token contains a `nonce` claim you must supply the nonce used to obtain the ID token. */
609
609
token: string
610
610
/** If the ID token contains an `at_hash` claim, then the hash of this value is compared to the value in the ID token. */
0 commit comments