gitextract_vbasb9xy/ ├── .dockerignore ├── .github/ │ ├── CODEOWNERS │ ├── DISCUSSION_TEMPLATE/ │ │ ├── ideas.yml │ │ └── questions.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── 1_bug_framework.yml │ │ ├── 2_bug_provider.yml │ │ ├── 3_bug_adapter.yml │ │ ├── 4_documentation.yml │ │ └── config.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── broken-link-checker/ │ │ ├── action.yml │ │ ├── index.d.ts │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── dependabot.yml │ ├── good-first-issue.md │ ├── help-needed.md │ ├── invalid-reproduction.md │ ├── pr-labeler.yml │ ├── stale.yml │ ├── sync.yml │ ├── version-pr/ │ │ ├── action.yml │ │ └── index.js │ └── workflows/ │ ├── broken-link-checker.yml │ ├── codeql-analysis.yml │ ├── pr-labeler.yml │ ├── release.yml │ ├── sync-examples.yml │ └── triage.yml ├── .gitignore ├── .nvmrc ├── .prettierignore ├── .vscode/ │ ├── extensions.json │ ├── settings.json │ └── snippets.code-snippets ├── LICENSE ├── README.md ├── apps/ │ ├── dev/ │ │ ├── express/ │ │ │ ├── .gitignore │ │ │ ├── .prettierignore │ │ │ ├── README.md │ │ │ ├── api/ │ │ │ │ └── index.js │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── css/ │ │ │ │ └── style.css │ │ │ ├── src/ │ │ │ │ ├── app.ts │ │ │ │ ├── config/ │ │ │ │ │ └── auth.config.ts │ │ │ │ ├── errors.ts │ │ │ │ ├── middleware/ │ │ │ │ │ ├── auth.middleware.ts │ │ │ │ │ └── error.middleware.ts │ │ │ │ └── server.ts │ │ │ ├── tsconfig.json │ │ │ └── views/ │ │ │ ├── error.pug │ │ │ ├── index.pug │ │ │ ├── layout.pug │ │ │ └── protected.pug │ │ ├── nextjs/ │ │ │ ├── .gitignore │ │ │ ├── .vscode/ │ │ │ │ └── settings.json │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── api/ │ │ │ │ │ └── protected/ │ │ │ │ │ └── route.ts │ │ │ │ ├── auth/ │ │ │ │ │ └── [...nextauth]/ │ │ │ │ │ └── route.ts │ │ │ │ ├── client.tsx │ │ │ │ ├── dashboard/ │ │ │ │ │ └── page.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── styles.css │ │ │ ├── auth.ts │ │ │ ├── components/ │ │ │ │ ├── access-denied.tsx │ │ │ │ ├── footer.module.css │ │ │ │ ├── footer.tsx │ │ │ │ ├── header.module.css │ │ │ │ └── header.tsx │ │ │ ├── middleware.ts │ │ │ ├── next-env.d.ts │ │ │ ├── next.config.js │ │ │ ├── package.json │ │ │ ├── pages/ │ │ │ │ ├── _app.tsx │ │ │ │ ├── api/ │ │ │ │ │ └── examples/ │ │ │ │ │ ├── protected.ts │ │ │ │ │ └── session.ts │ │ │ │ ├── client.tsx │ │ │ │ ├── credentials.tsx │ │ │ │ ├── email.tsx │ │ │ │ ├── policy.tsx │ │ │ │ ├── protected-ssr.tsx │ │ │ │ ├── protected.tsx │ │ │ │ └── styles.css │ │ │ ├── prisma/ │ │ │ │ ├── migrations/ │ │ │ │ │ ├── 20231023165117_/ │ │ │ │ │ │ └── migration.sql │ │ │ │ │ ├── 20240124035029_init/ │ │ │ │ │ │ └── migration.sql │ │ │ │ │ └── migration_lock.toml │ │ │ │ └── schema.prisma │ │ │ ├── tests/ │ │ │ │ └── signin.spec.ts │ │ │ └── tsconfig.json │ │ ├── qwik/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── manifest.json │ │ │ │ └── robots.txt │ │ │ ├── qwik.env.d.ts │ │ │ ├── src/ │ │ │ │ ├── components/ │ │ │ │ │ └── router-head/ │ │ │ │ │ └── router-head.tsx │ │ │ │ ├── entry.dev.tsx │ │ │ │ ├── entry.preview.tsx │ │ │ │ ├── entry.ssr.tsx │ │ │ │ ├── global.css │ │ │ │ ├── root.tsx │ │ │ │ └── routes/ │ │ │ │ ├── index.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── plugin@auth.ts │ │ │ │ └── service-worker.ts │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ └── sveltekit/ │ │ ├── .env.example │ │ ├── .eslintignore │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ ├── auth.ts │ │ │ ├── components/ │ │ │ │ └── header.svelte │ │ │ ├── hooks.server.ts │ │ │ ├── routes/ │ │ │ │ ├── +layout.server.ts │ │ │ │ ├── +layout.svelte │ │ │ │ ├── +page.svelte │ │ │ │ ├── protected/ │ │ │ │ │ └── +page.svelte │ │ │ │ ├── signin/ │ │ │ │ │ └── +page.server.ts │ │ │ │ └── signout/ │ │ │ │ └── +page.server.ts │ │ │ └── style.css │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.js │ ├── examples/ │ │ ├── express/ │ │ │ ├── .eslintrc.cjs │ │ │ ├── .gitignore │ │ │ ├── .prettierignore │ │ │ ├── .prettierrc │ │ │ ├── README.md │ │ │ ├── api/ │ │ │ │ └── index.js │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── css/ │ │ │ │ └── style.css │ │ │ ├── src/ │ │ │ │ ├── app.ts │ │ │ │ ├── config/ │ │ │ │ │ └── auth.config.ts │ │ │ │ ├── errors.ts │ │ │ │ ├── middleware/ │ │ │ │ │ ├── auth.middleware.ts │ │ │ │ │ └── error.middleware.ts │ │ │ │ └── server.ts │ │ │ ├── tailwind.config.js │ │ │ ├── tsconfig.json │ │ │ ├── types/ │ │ │ │ └── express/ │ │ │ │ └── index.d.ts │ │ │ ├── vercel.json │ │ │ └── views/ │ │ │ ├── error.pug │ │ │ ├── index.pug │ │ │ ├── layout.pug │ │ │ └── protected.pug │ │ ├── nextjs/ │ │ │ ├── .gitignore │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── [...proxy]/ │ │ │ │ │ └── route.tsx │ │ │ │ ├── api/ │ │ │ │ │ └── protected/ │ │ │ │ │ └── route.ts │ │ │ │ ├── api-example/ │ │ │ │ │ └── page.tsx │ │ │ │ ├── auth/ │ │ │ │ │ └── [...nextauth]/ │ │ │ │ │ └── route.ts │ │ │ │ ├── client-example/ │ │ │ │ │ └── page.tsx │ │ │ │ ├── globals.css │ │ │ │ ├── layout.tsx │ │ │ │ ├── middleware-example/ │ │ │ │ │ └── page.tsx │ │ │ │ ├── page.tsx │ │ │ │ ├── policy/ │ │ │ │ │ └── page.tsx │ │ │ │ └── server-example/ │ │ │ │ └── page.tsx │ │ │ ├── auth.ts │ │ │ ├── components/ │ │ │ │ ├── auth-components.tsx │ │ │ │ ├── client-example.tsx │ │ │ │ ├── custom-link.tsx │ │ │ │ ├── footer.tsx │ │ │ │ ├── header.tsx │ │ │ │ ├── main-nav.tsx │ │ │ │ ├── session-data.tsx │ │ │ │ ├── ui/ │ │ │ │ │ ├── avatar.tsx │ │ │ │ │ ├── button.tsx │ │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ │ ├── input.tsx │ │ │ │ │ └── navigation-menu.tsx │ │ │ │ └── user-button.tsx │ │ │ ├── components.json │ │ │ ├── docker-compose.yml │ │ │ ├── lib/ │ │ │ │ └── utils.ts │ │ │ ├── middleware.ts │ │ │ ├── next.config.js │ │ │ ├── package.json │ │ │ ├── postcss.config.js │ │ │ ├── tailwind.config.js │ │ │ ├── test-docker.sh │ │ │ └── tsconfig.json │ │ ├── nextjs-pages/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ └── api/ │ │ │ │ └── auth/ │ │ │ │ └── [...nextauth]/ │ │ │ │ └── route.ts │ │ │ ├── auth.ts │ │ │ ├── components/ │ │ │ │ ├── auth-components.tsx │ │ │ │ ├── client-example.tsx │ │ │ │ ├── custom-link.tsx │ │ │ │ ├── footer.tsx │ │ │ │ ├── header.tsx │ │ │ │ ├── main-nav.tsx │ │ │ │ ├── session-data.tsx │ │ │ │ ├── ui/ │ │ │ │ │ ├── avatar.tsx │ │ │ │ │ ├── button.tsx │ │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ │ ├── input.tsx │ │ │ │ │ └── navigation-menu.tsx │ │ │ │ └── user-button.tsx │ │ │ ├── components.json │ │ │ ├── lib/ │ │ │ │ └── utils.ts │ │ │ ├── middleware.ts │ │ │ ├── next.config.js │ │ │ ├── package.json │ │ │ ├── pages/ │ │ │ │ ├── _app.tsx │ │ │ │ ├── api/ │ │ │ │ │ └── protected.ts │ │ │ │ ├── api-example/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── client-example/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── globals.css │ │ │ │ ├── index.tsx │ │ │ │ ├── middleware-example/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── policy/ │ │ │ │ │ └── index.tsx │ │ │ │ └── server-example/ │ │ │ │ └── index.tsx │ │ │ ├── postcss.config.js │ │ │ ├── tailwind.config.js │ │ │ └── tsconfig.json │ │ ├── qwik/ │ │ │ ├── .eslintignore │ │ │ ├── .eslintrc.cjs │ │ │ ├── .gitignore │ │ │ ├── .prettierignore │ │ │ ├── .prettierrc.js │ │ │ ├── .vscode/ │ │ │ │ ├── launch.json │ │ │ │ ├── qwik-city.code-snippets │ │ │ │ └── qwik.code-snippets │ │ │ ├── README.md │ │ │ ├── adapters/ │ │ │ │ └── vercel-edge/ │ │ │ │ └── vite.config.ts │ │ │ ├── package.json │ │ │ ├── postcss.config.cjs │ │ │ ├── public/ │ │ │ │ ├── manifest.json │ │ │ │ └── robots.txt │ │ │ ├── qwik.env.d.ts │ │ │ ├── src/ │ │ │ │ ├── components/ │ │ │ │ │ ├── avatar/ │ │ │ │ │ │ └── avatar.tsx │ │ │ │ │ ├── header/ │ │ │ │ │ │ └── header.tsx │ │ │ │ │ ├── icones/ │ │ │ │ │ │ └── qwik.tsx │ │ │ │ │ └── router-head/ │ │ │ │ │ └── router-head.tsx │ │ │ │ ├── entry.dev.tsx │ │ │ │ ├── entry.preview.tsx │ │ │ │ ├── entry.ssr.tsx │ │ │ │ ├── entry.vercel-edge.tsx │ │ │ │ ├── global.css │ │ │ │ ├── root.tsx │ │ │ │ └── routes/ │ │ │ │ ├── index.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── plugin@auth.ts │ │ │ │ ├── protected/ │ │ │ │ │ └── index.tsx │ │ │ │ └── service-worker.ts │ │ │ ├── tailwind.config.js │ │ │ ├── tsconfig.json │ │ │ ├── vercel.json │ │ │ └── vite.config.ts │ │ ├── solid-start/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── postcss.config.cjs │ │ │ ├── src/ │ │ │ │ ├── components/ │ │ │ │ │ ├── NavBar/ │ │ │ │ │ │ ├── NavBar.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Protected/ │ │ │ │ │ │ ├── Protected.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── entry-client.tsx │ │ │ │ ├── entry-server.tsx │ │ │ │ ├── env/ │ │ │ │ │ ├── client.ts │ │ │ │ │ ├── schema.ts │ │ │ │ │ └── server.ts │ │ │ │ ├── root.css │ │ │ │ ├── root.tsx │ │ │ │ └── routes/ │ │ │ │ ├── api/ │ │ │ │ │ └── auth/ │ │ │ │ │ └── [...solidauth].ts │ │ │ │ ├── index.tsx │ │ │ │ └── protected.tsx │ │ │ ├── tailwind.config.cjs │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ └── sveltekit/ │ │ ├── .env.example │ │ ├── .eslintignore │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ ├── auth.ts │ │ │ ├── components/ │ │ │ │ ├── external-icon.svelte │ │ │ │ ├── footer.svelte │ │ │ │ └── header.svelte │ │ │ ├── hooks.server.ts │ │ │ └── routes/ │ │ │ ├── +layout.server.ts │ │ │ ├── +layout.svelte │ │ │ ├── +page.svelte │ │ │ ├── protected/ │ │ │ │ └── +page.svelte │ │ │ ├── signin/ │ │ │ │ └── +page.server.ts │ │ │ └── signout/ │ │ │ └── +page.server.ts │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.js │ ├── playgrounds/ │ │ └── README.md │ └── proxy/ │ ├── .gitignore │ ├── README.md │ ├── api/ │ │ ├── [auth].ts │ │ └── callback/ │ │ └── [auth].ts │ ├── package.json │ └── tsconfig.json ├── docs/ │ ├── .gitignore │ ├── .vscode/ │ │ └── settings.json │ ├── LICENSE │ ├── README.md │ ├── app/ │ │ └── api/ │ │ ├── cron/ │ │ │ └── route.ts │ │ └── og/ │ │ └── route.tsx │ ├── components/ │ │ ├── Accordion/ │ │ │ └── index.tsx │ │ ├── Blur/ │ │ │ └── index.tsx │ │ ├── Code/ │ │ │ └── index.tsx │ │ ├── DocSearch/ │ │ │ ├── index.tsx │ │ │ └── wrapper.tsx │ │ ├── Footer/ │ │ │ └── index.tsx │ │ ├── FrameworkLink/ │ │ │ └── index.tsx │ │ ├── Guides/ │ │ │ └── index.tsx │ │ ├── Icons/ │ │ │ ├── ArrowRight.tsx │ │ │ ├── ArrowSquareOut.tsx │ │ │ ├── Browser.tsx │ │ │ ├── CaretRight.tsx │ │ │ ├── ChatCircleText.tsx │ │ │ ├── Check.tsx │ │ │ ├── Flask.tsx │ │ │ ├── GitBranch.tsx │ │ │ ├── GithubLogo.tsx │ │ │ ├── Link.tsx │ │ │ ├── Plus.tsx │ │ │ ├── SealWarning.tsx │ │ │ ├── ShieldStar.tsx │ │ │ ├── Sparkle.tsx │ │ │ └── index.tsx │ │ ├── InkeepSearch/ │ │ │ └── index.tsx │ │ ├── Link/ │ │ │ └── index.tsx │ │ ├── ListDisclosure/ │ │ │ ├── index.tsx │ │ │ └── useListDisclosure.ts │ │ ├── LogosMarquee/ │ │ │ ├── index.tsx │ │ │ └── logo.tsx │ │ ├── OAuthProviderInstructions/ │ │ │ ├── OAuthProviderSelect.tsx │ │ │ ├── content/ │ │ │ │ ├── components/ │ │ │ │ │ ├── SetupCode.tsx │ │ │ │ │ ├── SignInCode.tsx │ │ │ │ │ ├── StepTitle.tsx │ │ │ │ │ └── TSIcon.tsx │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ ├── RichTabs/ │ │ │ ├── index.tsx │ │ │ └── useRichTabs.ts │ │ ├── Screenshot/ │ │ │ └── index.tsx │ │ └── SearchBarProviders/ │ │ └── PreviewProviders.tsx │ ├── hooks/ │ │ └── use-select-combobox.ts │ ├── next-env.d.ts │ ├── next-sitemap.config.cjs │ ├── next.config.js │ ├── package.json │ ├── pages/ │ │ ├── 404.mdx │ │ ├── _app.tsx │ │ ├── _document.tsx │ │ ├── _meta.js │ │ ├── animated-stars.css │ │ ├── concepts/ │ │ │ ├── _meta.js │ │ │ ├── database-models.mdx │ │ │ ├── index.mdx │ │ │ ├── oauth.mdx │ │ │ └── session-strategies.mdx │ │ ├── contributors.mdx │ │ ├── data/ │ │ │ └── manifest.json │ │ ├── getting-started/ │ │ │ ├── _meta.js │ │ │ ├── adapters/ │ │ │ │ ├── _meta.js │ │ │ │ ├── azure-tables.mdx │ │ │ │ ├── d1.mdx │ │ │ │ ├── dgraph.mdx │ │ │ │ ├── drizzle.mdx │ │ │ │ ├── dynamodb.mdx │ │ │ │ ├── edgedb.mdx │ │ │ │ ├── fauna.mdx │ │ │ │ ├── firebase.mdx │ │ │ │ ├── hasura.mdx │ │ │ │ ├── kysely.mdx │ │ │ │ ├── mikro-orm.mdx │ │ │ │ ├── mongodb.mdx │ │ │ │ ├── neo4j.mdx │ │ │ │ ├── neon.mdx │ │ │ │ ├── pg.mdx │ │ │ │ ├── pouchdb.mdx │ │ │ │ ├── prisma.mdx │ │ │ │ ├── sequelize.mdx │ │ │ │ ├── supabase.mdx │ │ │ │ ├── surrealdb.mdx │ │ │ │ ├── typeorm.mdx │ │ │ │ ├── unstorage.mdx │ │ │ │ ├── upstash-redis.mdx │ │ │ │ └── xata.mdx │ │ │ ├── authentication/ │ │ │ │ ├── _meta.js │ │ │ │ ├── credentials.mdx │ │ │ │ ├── email.mdx │ │ │ │ ├── oauth.mdx │ │ │ │ └── webauthn.mdx │ │ │ ├── authentication.mdx │ │ │ ├── database.mdx │ │ │ ├── deployment.mdx │ │ │ ├── index.mdx │ │ │ ├── installation.mdx │ │ │ ├── integrations.mdx │ │ │ ├── migrate-to-better-auth.mdx │ │ │ ├── migrating-to-v5.mdx │ │ │ ├── providers/ │ │ │ │ ├── 42-school.mdx │ │ │ │ ├── apple.mdx │ │ │ │ ├── asgardeo.mdx │ │ │ │ ├── auth0.mdx │ │ │ │ ├── authentik.mdx │ │ │ │ ├── azure-ad-b2c.mdx │ │ │ │ ├── azure-ad.mdx │ │ │ │ ├── azure-devops.mdx │ │ │ │ ├── bankid-no.mdx │ │ │ │ ├── battlenet.mdx │ │ │ │ ├── beyondidentity.mdx │ │ │ │ ├── bitbucket.mdx │ │ │ │ ├── box.mdx │ │ │ │ ├── boxyhq-saml.mdx │ │ │ │ ├── bungie.mdx │ │ │ │ ├── click-up.mdx │ │ │ │ ├── cognito.mdx │ │ │ │ ├── coinbase.mdx │ │ │ │ ├── credentials.mdx │ │ │ │ ├── descope.mdx │ │ │ │ ├── discord.mdx │ │ │ │ ├── dribbble.mdx │ │ │ │ ├── dropbox.mdx │ │ │ │ ├── duende-identity-server6.mdx │ │ │ │ ├── eveonline.mdx │ │ │ │ ├── facebook.mdx │ │ │ │ ├── faceit.mdx │ │ │ │ ├── figma.mdx │ │ │ │ ├── forwardemail.mdx │ │ │ │ ├── foursquare.mdx │ │ │ │ ├── freshbooks.mdx │ │ │ │ ├── frontegg.mdx │ │ │ │ ├── fusionauth.mdx │ │ │ │ ├── github.mdx │ │ │ │ ├── gitlab.mdx │ │ │ │ ├── google.mdx │ │ │ │ ├── hubspot.mdx │ │ │ │ ├── identity-server4.mdx │ │ │ │ ├── instagram.mdx │ │ │ │ ├── kakao.mdx │ │ │ │ ├── keycloak.mdx │ │ │ │ ├── line.mdx │ │ │ │ ├── linkedin.mdx │ │ │ │ ├── logto.mdx │ │ │ │ ├── loops.mdx │ │ │ │ ├── mailchimp.mdx │ │ │ │ ├── mailgun.mdx │ │ │ │ ├── mailru.mdx │ │ │ │ ├── mastodon.mdx │ │ │ │ ├── mattermost.mdx │ │ │ │ ├── medium.mdx │ │ │ │ ├── microsoft-entra-id.mdx │ │ │ │ ├── naver.mdx │ │ │ │ ├── netlify.mdx │ │ │ │ ├── netsuite.mdx │ │ │ │ ├── nextcloud.mdx │ │ │ │ ├── nodemailer.mdx │ │ │ │ ├── notion.mdx │ │ │ │ ├── okta.mdx │ │ │ │ ├── onelogin.mdx │ │ │ │ ├── osso.mdx │ │ │ │ ├── osu.mdx │ │ │ │ ├── passage.mdx │ │ │ │ ├── passkey.mdx │ │ │ │ ├── patreon.mdx │ │ │ │ ├── pinterest.mdx │ │ │ │ ├── pipedrive.mdx │ │ │ │ ├── postmark.mdx │ │ │ │ ├── reddit.mdx │ │ │ │ ├── resend.mdx │ │ │ │ ├── sailpoint.mdx │ │ │ │ ├── salesforce.mdx │ │ │ │ ├── sendgrid.mdx │ │ │ │ ├── simplelogin.mdx │ │ │ │ ├── slack.mdx │ │ │ │ ├── spotify.mdx │ │ │ │ ├── strava.mdx │ │ │ │ ├── threads.mdx │ │ │ │ ├── tiktok.mdx │ │ │ │ ├── todoist.mdx │ │ │ │ ├── trakt.mdx │ │ │ │ ├── twitch.mdx │ │ │ │ ├── twitter.mdx │ │ │ │ ├── united-effects.mdx │ │ │ │ ├── vipps-mobilepay.mdx │ │ │ │ ├── vk.mdx │ │ │ │ ├── webex.mdx │ │ │ │ ├── wikimedia.mdx │ │ │ │ ├── wordpress.mdx │ │ │ │ ├── workos.mdx │ │ │ │ ├── yandex.mdx │ │ │ │ ├── zitadel.mdx │ │ │ │ ├── zoho.mdx │ │ │ │ └── zoom.mdx │ │ │ ├── session-management/ │ │ │ │ ├── _meta.js │ │ │ │ ├── custom-pages.mdx │ │ │ │ ├── get-session.mdx │ │ │ │ ├── login.mdx │ │ │ │ └── protecting.mdx │ │ │ └── typescript.mdx │ │ ├── global.css │ │ ├── guides/ │ │ │ ├── _meta.js │ │ │ ├── configuring-github.mdx │ │ │ ├── configuring-http-email.mdx │ │ │ ├── configuring-oauth-providers.mdx │ │ │ ├── configuring-resend.mdx │ │ │ ├── corporate-proxy.mdx │ │ │ ├── creating-a-database-adapter.mdx │ │ │ ├── creating-a-framework-integration.mdx │ │ │ ├── debugging.mdx │ │ │ ├── edge-compatibility.mdx │ │ │ ├── environment-variables.mdx │ │ │ ├── extending-the-session.mdx │ │ │ ├── integrating-third-party-backends.mdx │ │ │ ├── pages/ │ │ │ │ ├── _meta.js │ │ │ │ ├── built-in-pages.mdx │ │ │ │ ├── error.mdx │ │ │ │ ├── signin.mdx │ │ │ │ └── signout.mdx │ │ │ ├── refresh-token-rotation.mdx │ │ │ ├── restricting-user-access.mdx │ │ │ ├── role-based-access-control.mdx │ │ │ └── testing.mdx │ │ ├── index.mdx │ │ ├── reference/ │ │ │ └── _meta.js │ │ └── security.mdx │ ├── postcss.config.cjs │ ├── public/ │ │ └── .well-known/ │ │ └── security.txt │ ├── tailwind.config.js │ ├── theme.config.tsx │ ├── tsconfig.json │ ├── typedoc-nextauth.js │ ├── typedoc.config.cjs │ ├── types.d.ts │ ├── utils/ │ │ ├── types.ts │ │ ├── useCopyButton.ts │ │ └── useInkeepSettings.ts │ └── vercel.json ├── eslint.config.mjs ├── lefthook.yml ├── package.json ├── packages/ │ ├── adapter-azure-tables/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-d1/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── migrations.ts │ │ │ └── queries.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-dgraph/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── lib/ │ │ │ ├── client.ts │ │ │ └── graphql/ │ │ │ ├── fragments.ts │ │ │ └── schema.gql │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ ├── private.key │ │ │ ├── public.key │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-drizzle/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── lib/ │ │ │ ├── mysql.ts │ │ │ ├── pg.ts │ │ │ ├── sqlite.ts │ │ │ └── utils.ts │ │ ├── test/ │ │ │ ├── fixtures.ts │ │ │ ├── mysql/ │ │ │ │ ├── drizzle.config.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── migrator.ts │ │ │ │ ├── schema.ts │ │ │ │ └── test.sh │ │ │ ├── mysql-multi-project-schema/ │ │ │ │ ├── drizzle.config.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── migrator.ts │ │ │ │ ├── schema.ts │ │ │ │ └── test.sh │ │ │ ├── pg/ │ │ │ │ ├── drizzle.config.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── migrator.ts │ │ │ │ ├── schema.ts │ │ │ │ └── test.sh │ │ │ ├── pg-multi-project-schema/ │ │ │ │ ├── drizzle.config.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── migrator.ts │ │ │ │ ├── schema.ts │ │ │ │ └── test.sh │ │ │ ├── sqlite/ │ │ │ │ ├── drizzle.config.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── migrator.ts │ │ │ │ ├── schema.ts │ │ │ │ └── test.sh │ │ │ └── sqlite-multi-project-schema/ │ │ │ ├── drizzle.config.ts │ │ │ ├── index.test.ts │ │ │ ├── migrator.ts │ │ │ ├── schema.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-dynamodb/ │ │ ├── README.md │ │ ├── jest-dynamodb-config.cjs │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── format.test.ts │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-edgedb/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-fauna/ │ │ ├── .fauna-project │ │ ├── README.md │ │ ├── fauna/ │ │ │ ├── account.fsl │ │ │ ├── session.fsl │ │ │ ├── user.fsl │ │ │ └── verificationToken.fsl │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-firebase/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── firestore.rules │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ ├── typedoc.config.cjs │ │ └── vitest.config.ts │ ├── adapter-hasura/ │ │ ├── README.md │ │ ├── codegen.ts │ │ ├── docker-compose.yml │ │ ├── hasura/ │ │ │ ├── config.yaml │ │ │ ├── metadata/ │ │ │ │ ├── actions.graphql │ │ │ │ ├── actions.yaml │ │ │ │ ├── allow_list.yaml │ │ │ │ ├── api_limits.yaml │ │ │ │ ├── cron_triggers.yaml │ │ │ │ ├── databases/ │ │ │ │ │ ├── databases.yaml │ │ │ │ │ └── default/ │ │ │ │ │ └── tables/ │ │ │ │ │ ├── public_accounts.yaml │ │ │ │ │ ├── public_provider_type.yaml │ │ │ │ │ ├── public_sessions.yaml │ │ │ │ │ ├── public_users.yaml │ │ │ │ │ ├── public_verification_tokens.yaml │ │ │ │ │ └── tables.yaml │ │ │ │ ├── graphql_schema_introspection.yaml │ │ │ │ ├── inherited_roles.yaml │ │ │ │ ├── network.yaml │ │ │ │ ├── query_collections.yaml │ │ │ │ ├── remote_schemas.yaml │ │ │ │ ├── rest_endpoints.yaml │ │ │ │ └── version.yaml │ │ │ └── migrations/ │ │ │ └── default/ │ │ │ └── 1666885939998_init_nextauth_models/ │ │ │ └── up.sql │ │ ├── package.json │ │ ├── schema.gql │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ └── client.ts │ │ │ └── queries/ │ │ │ ├── account.graphql │ │ │ ├── delete.graphql │ │ │ ├── fragments.graphql │ │ │ ├── session.graphql │ │ │ ├── user.graphql │ │ │ └── verification-token.graphql │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-kysely/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ ├── scripts/ │ │ │ │ └── mysql-init.sql │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-mikro-orm/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── lib/ │ │ │ └── entities.ts │ │ ├── test/ │ │ │ ├── __snapshots__/ │ │ │ │ └── schema.test.ts.snap │ │ │ ├── entities.test.ts │ │ │ └── schema.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-mongodb/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── custom.test.ts │ │ │ ├── index.test.ts │ │ │ ├── serverless.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-neo4j/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ ├── resources/ │ │ │ │ └── statements.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-neon/ │ │ ├── README.md │ │ ├── package.json │ │ ├── schema.sql │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-pg/ │ │ ├── README.md │ │ ├── package.json │ │ ├── schema.sql │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-pouchdb/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-prisma/ │ │ ├── README.md │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── custom.prisma │ │ │ ├── mongodb.prisma │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── mongodb.test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.js │ ├── adapter-sequelize/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── models.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-supabase/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── supabase/ │ │ │ ├── config.toml │ │ │ └── migrations/ │ │ │ ├── 20221108043803_create_next_auth_schema.sql │ │ │ └── 20221108044627_create_public_users_table.sql │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-surrealdb/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── common.ts │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-typeorm/ │ │ ├── .dockerignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── entities.ts │ │ │ ├── index.ts │ │ │ └── utils.ts │ │ ├── test/ │ │ │ ├── custom-entities.ts │ │ │ ├── helpers.ts │ │ │ ├── index.test.ts │ │ │ ├── mysql/ │ │ │ │ ├── index.custom.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── test.sh │ │ │ ├── postgresql/ │ │ │ │ ├── index.custom.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── test.sh │ │ │ └── sqlite/ │ │ │ ├── index.custom.test.ts │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-unstorage/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── filesystem.test.ts │ │ │ ├── memory.test.ts │ │ │ ├── redis-json.test.ts │ │ │ ├── redis.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-upstash-redis/ │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test.sh │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── adapter-xata/ │ │ ├── README.md │ │ ├── package.json │ │ ├── schema.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── xata.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── core/ │ │ ├── README.md │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── generate-css.js │ │ │ └── generate-providers.js │ │ ├── src/ │ │ │ ├── adapters.ts │ │ │ ├── errors.ts │ │ │ ├── index.ts │ │ │ ├── jwt.ts │ │ │ ├── lib/ │ │ │ │ ├── actions/ │ │ │ │ │ ├── callback/ │ │ │ │ │ │ ├── handle-login.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── oauth/ │ │ │ │ │ │ ├── callback.ts │ │ │ │ │ │ ├── checks.ts │ │ │ │ │ │ └── csrf-token.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── session.ts │ │ │ │ │ ├── signin/ │ │ │ │ │ │ ├── authorization-url.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── send-token.ts │ │ │ │ │ ├── signout.ts │ │ │ │ │ └── webauthn-options.ts │ │ │ │ ├── index.ts │ │ │ │ ├── init.ts │ │ │ │ ├── pages/ │ │ │ │ │ ├── error.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── signin.tsx │ │ │ │ │ ├── signout.tsx │ │ │ │ │ ├── styles.css │ │ │ │ │ └── verify-request.tsx │ │ │ │ ├── symbols.ts │ │ │ │ ├── utils/ │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── assert.ts │ │ │ │ │ ├── callback-url.ts │ │ │ │ │ ├── cookie.ts │ │ │ │ │ ├── date.ts │ │ │ │ │ ├── email.ts │ │ │ │ │ ├── env.ts │ │ │ │ │ ├── logger.ts │ │ │ │ │ ├── merge.ts │ │ │ │ │ ├── providers.ts │ │ │ │ │ ├── session.ts │ │ │ │ │ ├── web.ts │ │ │ │ │ ├── webauthn-client.js │ │ │ │ │ └── webauthn-utils.ts │ │ │ │ └── vendored/ │ │ │ │ └── cookie.ts │ │ │ ├── providers/ │ │ │ │ ├── 42-school.ts │ │ │ │ ├── apple.ts │ │ │ │ ├── asgardeo.ts │ │ │ │ ├── atlassian.ts │ │ │ │ ├── auth0.ts │ │ │ │ ├── authentik.ts │ │ │ │ ├── azure-ad-b2c.ts │ │ │ │ ├── azure-ad.ts │ │ │ │ ├── azure-devops.ts │ │ │ │ ├── bankid-no.ts │ │ │ │ ├── battlenet.ts │ │ │ │ ├── beyondidentity.ts │ │ │ │ ├── bitbucket.ts │ │ │ │ ├── box.ts │ │ │ │ ├── boxyhq-saml.ts │ │ │ │ ├── bungie.ts │ │ │ │ ├── click-up.ts │ │ │ │ ├── cognito.ts │ │ │ │ ├── coinbase.ts │ │ │ │ ├── concept2.ts │ │ │ │ ├── credentials.ts │ │ │ │ ├── descope.ts │ │ │ │ ├── discord.ts │ │ │ │ ├── dribbble.ts │ │ │ │ ├── dropbox.ts │ │ │ │ ├── duende-identity-server6.ts │ │ │ │ ├── email.ts │ │ │ │ ├── eventbrite.ts │ │ │ │ ├── eveonline.ts │ │ │ │ ├── facebook.ts │ │ │ │ ├── faceit.ts │ │ │ │ ├── figma.ts │ │ │ │ ├── forwardemail.ts │ │ │ │ ├── foursquare.ts │ │ │ │ ├── freshbooks.ts │ │ │ │ ├── frontegg.ts │ │ │ │ ├── fusionauth.ts │ │ │ │ ├── github.ts │ │ │ │ ├── gitlab.ts │ │ │ │ ├── google.ts │ │ │ │ ├── hubspot.ts │ │ │ │ ├── huggingface.ts │ │ │ │ ├── identity-server4.ts │ │ │ │ ├── index.ts │ │ │ │ ├── instagram.ts │ │ │ │ ├── kakao.ts │ │ │ │ ├── keycloak.ts │ │ │ │ ├── kinde.ts │ │ │ │ ├── line.ts │ │ │ │ ├── linkedin.ts │ │ │ │ ├── logto.ts │ │ │ │ ├── loops.ts │ │ │ │ ├── mailchimp.ts │ │ │ │ ├── mailgun.ts │ │ │ │ ├── mailru.ts │ │ │ │ ├── mastodon.ts │ │ │ │ ├── mattermost.ts │ │ │ │ ├── medium.ts │ │ │ │ ├── microsoft-entra-id.ts │ │ │ │ ├── naver.ts │ │ │ │ ├── netlify.ts │ │ │ │ ├── netsuite.ts │ │ │ │ ├── nextcloud.ts │ │ │ │ ├── nodemailer.ts │ │ │ │ ├── notion.ts │ │ │ │ ├── oauth.ts │ │ │ │ ├── okta.ts │ │ │ │ ├── onelogin.ts │ │ │ │ ├── ory-hydra.ts │ │ │ │ ├── osso.ts │ │ │ │ ├── osu.ts │ │ │ │ ├── passage.ts │ │ │ │ ├── passkey.ts │ │ │ │ ├── patreon.ts │ │ │ │ ├── ping-id.ts │ │ │ │ ├── pinterest.ts │ │ │ │ ├── pipedrive.ts │ │ │ │ ├── postmark.ts │ │ │ │ ├── reddit.ts │ │ │ │ ├── resend.ts │ │ │ │ ├── roblox.ts │ │ │ │ ├── salesforce.ts │ │ │ │ ├── sendgrid.ts │ │ │ │ ├── simplelogin.ts │ │ │ │ ├── slack.ts │ │ │ │ ├── spotify.ts │ │ │ │ ├── strava.ts │ │ │ │ ├── threads.ts │ │ │ │ ├── tiktok.ts │ │ │ │ ├── todoist.ts │ │ │ │ ├── trakt.ts │ │ │ │ ├── twitch.ts │ │ │ │ ├── twitter.ts │ │ │ │ ├── united-effects.ts │ │ │ │ ├── vipps.ts │ │ │ │ ├── vk.ts │ │ │ │ ├── webauthn.ts │ │ │ │ ├── webex.ts │ │ │ │ ├── wechat.ts │ │ │ │ ├── wikimedia.ts │ │ │ │ ├── wordpress.ts │ │ │ │ ├── workos.ts │ │ │ │ ├── yandex.ts │ │ │ │ ├── zitadel.ts │ │ │ │ ├── zoho.ts │ │ │ │ └── zoom.ts │ │ │ ├── types.ts │ │ │ └── warnings.ts │ │ ├── test/ │ │ │ ├── actions/ │ │ │ │ ├── callback.test.ts │ │ │ │ ├── csrf.test.ts │ │ │ │ └── session.test.ts │ │ │ ├── assert-config.test.ts │ │ │ ├── authorize.test.ts │ │ │ ├── env.test.ts │ │ │ ├── fixtures/ │ │ │ │ ├── oauth-callback.ts │ │ │ │ └── pages.ts │ │ │ ├── jwt.test.ts │ │ │ ├── memory-adapter.ts │ │ │ ├── merge.test.ts │ │ │ ├── pages.test.ts │ │ │ ├── providers/ │ │ │ │ └── gitlab.test.ts │ │ │ ├── url-parsing.test.ts │ │ │ ├── utils.ts │ │ │ └── webauthn-utils.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── frameworks-express/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── adapters.ts │ │ │ ├── index.ts │ │ │ └── lib/ │ │ │ ├── http-api-adapters.ts │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── http-api-adapters/ │ │ │ │ ├── request.test.ts │ │ │ │ └── response.test.ts │ │ │ ├── login.test.ts │ │ │ ├── routing.test.ts │ │ │ └── session.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── frameworks-qwik/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── adapters.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ ├── typedoc.config.cjs │ │ └── vite.config.ts │ ├── frameworks-solid-start/ │ │ ├── .gitignore │ │ ├── README.MD │ │ ├── package.json │ │ ├── src/ │ │ │ ├── adapters.ts │ │ │ ├── client.ts │ │ │ └── index.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── frameworks-sveltekit/ │ │ ├── README.md │ │ ├── package.json │ │ ├── playwright.config.ts │ │ ├── scripts/ │ │ │ └── postbuild.js │ │ ├── src/ │ │ │ └── lib/ │ │ │ ├── actions.ts │ │ │ ├── adapters.ts │ │ │ ├── client.ts │ │ │ ├── components/ │ │ │ │ ├── SignIn.svelte │ │ │ │ ├── SignOut.svelte │ │ │ │ └── index.ts │ │ │ ├── env.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── webauthn.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── frameworks-template/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ ├── next-auth/ │ │ ├── README.md │ │ ├── package.json │ │ ├── playwright.config.ts │ │ ├── src/ │ │ │ ├── adapters.ts │ │ │ ├── index.ts │ │ │ ├── jwt.ts │ │ │ ├── lib/ │ │ │ │ ├── actions.ts │ │ │ │ ├── client.ts │ │ │ │ ├── env.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── middleware.ts │ │ │ ├── next.ts │ │ │ ├── react.tsx │ │ │ └── webauthn.ts │ │ ├── test/ │ │ │ ├── actions.test.ts │ │ │ ├── e2e/ │ │ │ │ ├── fixtures/ │ │ │ │ │ ├── auth.ts │ │ │ │ │ └── webApp.ts │ │ │ │ ├── helpers/ │ │ │ │ │ └── authTest.ts │ │ │ │ ├── poms/ │ │ │ │ │ └── keycloakLoginPom.ts │ │ │ │ └── tests/ │ │ │ │ ├── api/ │ │ │ │ │ └── session.spec.ts │ │ │ │ └── providers/ │ │ │ │ ├── credentials.spec.ts │ │ │ │ └── keycloak.spec.ts │ │ │ └── env.test.ts │ │ ├── tsconfig.json │ │ └── typedoc.config.cjs │ └── utils/ │ ├── adapter.ts │ ├── package.json │ ├── scripts/ │ │ ├── providers.js │ │ └── setup-fw-integration.js │ ├── tsconfig.eslint.json │ ├── tsconfig.json │ ├── vitest-setup.ts │ └── vitest.config.ts ├── patches/ │ └── @balazsorban__monorepo-release@0.5.1.patch ├── pnpm-workspace.yaml └── turbo.json