mirror of
https://github.com/SrIzan10/next-auth.git
synced 2026-05-01 10:55:20 +00:00
* chore: add beta to release flow/GH actions * feat(ts): expose types from the package (#1665) * chore(types): move existing types to the repo * feat(ts): expose types from the main package * chore(deps): bring back `react-dom` version range * chore(ts): cleanup deps and comments * chore(ci): run types tests on a separate workflow * chore(ci): fix typo on types workflow * fix(ts): correctly export sub-module types (#1677) * chore(types): build types script Adds a script that moves the declaration files we have in `./types` to `./dist` relative to the files they intend to type. This is the first step, we still need to change what we declare in `package.json`, add the script to the CI pipeline if we're happy with it and figure out how to type `next-auth/jwt`. * refactor(lint): fix build-types script * fix(ts): add .d.ts sub-module files to package.json #1677 seemed to miss this * fix(built): typo in package.json * fix(build): fix release * feat(ts): support module augmentation (#1681) * chore(ts): remove unused imports * refactor(ts): clean up CallbackOptions * docs(ts): explain Module Augmentation * docs(ts): don't use @ in folder name "types" * test(ts): make jwt params optional * docs(ts): fix typo (TypeScript -> NextAuth.js) * style: replace ts-standard with eslint/prettier (#1724) * style: move from ts-standard to eslint/prettier * fix: install remaining eslint-config-standard peer deps * fix: add remaining missing dependencies/config Co-authored-by: Balázs Orbán <info@balazsorban.com> * docs(lint): update contributing.md (#1760) Regarding ESLint / Prettier use and link to their VSCode extensions * refactor(ts): de-duplicate types (#1690) * refactor(ts): deduplicate internal types * refactor(ts): ease up providers typings * test(ts): fix failing TS tests * test(ts): rename TS property to fix test * docs(ts): mention TS docs in README.md * feat(ts): move/update client types * refactor(TS): rename some types * test(ts): fix client tests * docs(ts): move function descriptions to .d.ts * chore: fix lint error * refactor(ts): separate internal types * chore: simplify build-types script * chore: update type import paths in src * chore(build): create root files at build * chore: remove unnecessary .npmignore * chore: run prettier on types * fix(ts): clean up jwt types * fix(ts): make getToken return type depend on raw param * docs(page): explain page errors, add theming note * docs(ts): add JSDoc to NextAuthOptions props * chore(ts): remove unused import * docs(ts): change JSDOC docs notation * refactor(build): extract module entries into enum * chore(ts): move ClientSafeProvider * chore(ts): simplify GetTokenParams generic * style(lint): fix linting errors * chore: re-add generic extension to GetTokenParams * fix(ts): extract EmailConfigServerOptions to interface * fix(ts): use relative imports * Merge branch 'main' into beta * Merge main into beta * fix(ts): fix typos, add more links to documentation * test(ts): update JWT getToken test * fix(build): fix tsconfig.json formatting * test(ts): use absolute imports in test files * fix(ts): add missing callbacks JSDoc * docs: mention TS in FAQ, fix typos * docs: fix some typos in the docs Co-authored-by: Lluis Agusti <hi@llu.lu> Co-authored-by: Nico Domino <yo@ndo.dev>
98 lines
2.3 KiB
TypeScript
98 lines
2.3 KiB
TypeScript
import * as client from "next-auth/client"
|
|
import { nextReq } from "./test-helpers"
|
|
|
|
const clientSession = {
|
|
user: {
|
|
name: "Bruce",
|
|
email: "bruce@lee.com",
|
|
image: "path/to/img",
|
|
},
|
|
accessToken: "123z",
|
|
expires: "1234",
|
|
}
|
|
|
|
// $ExpectType [Session | null, boolean]
|
|
client.useSession()
|
|
|
|
// $ExpectType Promise<Session | null>
|
|
client.getSession({ req: nextReq })
|
|
|
|
// $ExpectType Promise<Session | null>
|
|
client.session({ req: nextReq })
|
|
|
|
// $ExpectType Promise<Record<string, ClientSafeProvider> | null>
|
|
client.getProviders()
|
|
|
|
// $ExpectType Promise<Record<string, ClientSafeProvider> | null>
|
|
client.providers()
|
|
|
|
// $ExpectType Promise<string | null>
|
|
client.getCsrfToken({ req: nextReq })
|
|
|
|
// $ExpectType Promise<string | null>
|
|
client.csrfToken({ req: nextReq })
|
|
|
|
// $ExpectType Promise<string | null>
|
|
client.csrfToken({ ctx: { req: nextReq } })
|
|
|
|
// $ExpectType Promise<undefined>
|
|
client.signin("github", { callbackUrl: "foo" }, { login: "username" })
|
|
|
|
// $ExpectType Promise<SignInResponse | undefined>
|
|
client.signin("credentials", { callbackUrl: "foo", redirect: true })
|
|
|
|
// $ExpectType Promise<SignInResponse | undefined>
|
|
client.signin("credentials", { redirect: false })
|
|
|
|
// $ExpectType Promise<SignInResponse | undefined>
|
|
client.signin("email", { callbackUrl: "foo", redirect: false })
|
|
|
|
// $ExpectType Promise<SignInResponse | undefined>
|
|
client.signin("email", { callbackUrl: "foo", redirect: true })
|
|
|
|
// $ExpectType Promise<undefined>
|
|
client.signout()
|
|
|
|
// $ExpectType Promise<undefined>
|
|
client.signout({ callbackUrl: "https://foo.com/callback", redirect: true })
|
|
|
|
// $ExpectType Promise<SignOutResponse>
|
|
client.signOut({ callbackUrl: "https://foo.com/callback", redirect: false })
|
|
|
|
// $ExpectType ReactElement<any, any> | null
|
|
client.Provider({
|
|
children: null,
|
|
session: clientSession,
|
|
options: {
|
|
baseUrl: "https://foo.com",
|
|
basePath: "/",
|
|
clientMaxAge: 1234,
|
|
},
|
|
})
|
|
|
|
// $ExpectType ReactElement<any, any> | null
|
|
client.Provider({
|
|
children: null,
|
|
session: clientSession,
|
|
})
|
|
|
|
// $ExpectType ReactElement<any, any> | null
|
|
client.Provider({
|
|
children: null,
|
|
options: {},
|
|
})
|
|
|
|
// $ExpectType ReactElement<any, any> | null
|
|
client.Provider({
|
|
children: null,
|
|
session: {
|
|
expires: "",
|
|
},
|
|
options: {
|
|
baseUrl: "https://foo.com",
|
|
basePath: "/",
|
|
clientMaxAge: 1234,
|
|
keepAlive: 4321,
|
|
},
|
|
})
|