gitextract_erfprbrg/ ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ ├── main.yml │ └── release.yml ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .npmignore ├── .releaserc.yaml ├── .swcrc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── commitlint.config.js ├── docs/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── README.md │ ├── components/ │ │ ├── Chip.tsx │ │ ├── CommunityLink.tsx │ │ ├── Example.tsx │ │ ├── FeaturePanel.tsx │ │ ├── Footer.tsx │ │ ├── FooterLink.tsx │ │ ├── FooterSeparator.tsx │ │ ├── Hero.tsx │ │ ├── HeroCode.tsx │ │ ├── Link.tsx │ │ ├── LinkButton.tsx │ │ ├── Section.tsx │ │ ├── Steps.module.css │ │ ├── Steps.tsx │ │ └── Wrapper.tsx │ ├── config.js │ ├── next-env.d.ts │ ├── next-sitemap.config.js │ ├── next.config.js │ ├── package.json │ ├── pages/ │ │ ├── _app.tsx │ │ ├── _document.tsx │ │ ├── _meta.json │ │ ├── docs/ │ │ │ ├── _meta.json │ │ │ ├── app-check.mdx │ │ │ ├── emulator.mdx │ │ │ ├── errors.mdx │ │ │ ├── faq.mdx │ │ │ ├── getting-started/ │ │ │ │ ├── _meta.json │ │ │ │ ├── auth-context.mdx │ │ │ │ ├── auth-provider.mdx │ │ │ │ ├── index.mdx │ │ │ │ ├── layout.mdx │ │ │ │ ├── login-page.mdx │ │ │ │ ├── login-with-server-action.mdx │ │ │ │ ├── logout-with-server-action.mdx │ │ │ │ └── middleware.mdx │ │ │ └── usage/ │ │ │ ├── _meta.json │ │ │ ├── advanced-usage.mdx │ │ │ ├── app-router-api-routes.mdx │ │ │ ├── client-side-apis.mdx │ │ │ ├── cloud-run.mdx │ │ │ ├── debug-mode.mdx │ │ │ ├── domain-restriction.mdx │ │ │ ├── firebase-hosting.mdx │ │ │ ├── get-server-side-props.mdx │ │ │ ├── index.mdx │ │ │ ├── middleware.mdx │ │ │ ├── pages-router-api-routes.mdx │ │ │ ├── redirect-functions.mdx │ │ │ ├── refresh-credentials.mdx │ │ │ ├── remove-credentials.mdx │ │ │ └── server-components.mdx │ │ ├── examples/ │ │ │ └── index.mdx │ │ └── index.mdx │ ├── postcss.config.js │ ├── prettier.config.js │ ├── public/ │ │ └── favicon/ │ │ └── site.webmanifest │ ├── services/ │ │ ├── BrowserTracker.tsx │ │ └── ServerTracker.tsx │ ├── styles.css │ ├── tailwind.config.js │ ├── theme.config.tsx │ └── tsconfig.json ├── eslint.config.mjs ├── examples/ │ ├── next-typescript-minimal/ │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app/ │ │ │ ├── HomePage.tsx │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ ├── login/ │ │ │ │ └── page.tsx │ │ │ ├── page.tsx │ │ │ └── register/ │ │ │ └── page.tsx │ │ ├── config.ts │ │ ├── firebase.ts │ │ ├── middleware.ts │ │ ├── next.config.mjs │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── tailwind.config.ts │ │ └── tsconfig.json │ └── next-typescript-starter/ │ ├── .dockerignore │ ├── .firebaserc │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── api/ │ │ └── index.ts │ ├── app/ │ │ ├── actions/ │ │ │ ├── login.ts │ │ │ ├── refresh-cookies.ts │ │ │ └── user-counters.ts │ │ ├── api/ │ │ │ ├── check-email-verification/ │ │ │ │ └── route.ts │ │ │ ├── custom-claims/ │ │ │ │ └── route.ts │ │ │ ├── test-app-check/ │ │ │ │ └── route.ts │ │ │ ├── token-test/ │ │ │ │ └── route.ts │ │ │ └── user-counters/ │ │ │ └── route.ts │ │ ├── auth/ │ │ │ ├── AuthContext.ts │ │ │ ├── AuthProvider.tsx │ │ │ └── firebase.ts │ │ ├── firebase.ts │ │ ├── globals.css │ │ ├── layout.module.css │ │ ├── layout.tsx │ │ ├── login/ │ │ │ ├── LoginPage.tsx │ │ │ ├── firebase.ts │ │ │ ├── login.module.css │ │ │ └── page.tsx │ │ ├── page.module.css │ │ ├── page.tsx │ │ ├── profile/ │ │ │ ├── UserProfile/ │ │ │ │ ├── UserProfile.module.css │ │ │ │ ├── UserProfile.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── user-counters-server.ts │ │ │ │ └── user-counters.ts │ │ │ ├── page.module.css │ │ │ └── page.tsx │ │ ├── register/ │ │ │ ├── RegisterPage.tsx │ │ │ ├── firebase.ts │ │ │ ├── page.tsx │ │ │ └── register.module.css │ │ ├── reset-password/ │ │ │ ├── ResetPasswordPage.module.css │ │ │ ├── ResetPasswordPage.tsx │ │ │ ├── firebase.ts │ │ │ └── page.tsx │ │ └── shared/ │ │ ├── redirect.ts │ │ ├── useRedirectAfterLogin.ts │ │ ├── useRedirectParam.ts │ │ └── user.ts │ ├── app-check/ │ │ └── index.ts │ ├── config/ │ │ ├── client-config.ts │ │ └── server-config.ts │ ├── eslint.config.mjs │ ├── firebase.json │ ├── next-env.d.ts │ ├── next.config.js │ ├── package.json │ ├── pages/ │ │ └── api/ │ │ └── tokens.ts │ ├── proxy.ts │ ├── tsconfig.json │ └── ui/ │ ├── Badge/ │ │ ├── Badge.module.css │ │ ├── Badge.tsx │ │ └── index.ts │ ├── Button/ │ │ ├── Button.module.css │ │ ├── Button.tsx │ │ └── index.ts │ ├── ButtonGroup/ │ │ ├── ButtonGroup.module.css │ │ ├── ButtonGroup.tsx │ │ └── index.ts │ ├── Card/ │ │ ├── Card.module.css │ │ ├── Card.tsx │ │ └── index.ts │ ├── FormError/ │ │ ├── FormError.module.css │ │ ├── FormError.tsx │ │ └── index.ts │ ├── HomeLink/ │ │ ├── HomeLink.module.css │ │ ├── HomeLink.tsx │ │ └── index.ts │ ├── IconButton/ │ │ ├── IconButton.module.css │ │ ├── IconButton.tsx │ │ └── index.ts │ ├── Input/ │ │ ├── Input.module.css │ │ ├── Input.tsx │ │ └── index.ts │ ├── MainTitle/ │ │ ├── MainTitle.module.css │ │ ├── MainTitle.tsx │ │ └── index.ts │ ├── PasswordForm/ │ │ ├── PasswordForm.module.css │ │ ├── PasswordForm.tsx │ │ └── index.ts │ ├── Switch/ │ │ ├── Switch.module.css │ │ ├── Switch.tsx │ │ ├── index.ts │ │ └── vars.css │ ├── classNames.ts │ └── icons/ │ ├── HiddenIcon.tsx │ ├── HomeIcon.tsx │ ├── LoadingIcon.tsx │ ├── VisibleIcon.tsx │ ├── icons.module.css │ └── index.ts ├── jest.config.js ├── jest.setup.ts ├── package.json ├── prettier.config.js ├── src/ │ ├── app-check/ │ │ ├── api-client.ts │ │ ├── index.ts │ │ ├── test/ │ │ │ └── app-check.integration.test.ts │ │ ├── token-generator.ts │ │ ├── token-verifier.ts │ │ └── types.ts │ ├── auth/ │ │ ├── auth-request-handler.ts │ │ ├── claims.ts │ │ ├── credential.ts │ │ ├── custom-token/ │ │ │ ├── index.test.ts │ │ │ └── index.ts │ │ ├── default-credential.ts │ │ ├── error.ts │ │ ├── firebase.ts │ │ ├── index.ts │ │ ├── jwt/ │ │ │ ├── consts.ts │ │ │ ├── crypto-signer.ts │ │ │ ├── sign.test.ts │ │ │ ├── sign.ts │ │ │ ├── verify.test.ts │ │ │ └── verify.ts │ │ ├── rotating-credential.test.ts │ │ ├── rotating-credential.ts │ │ ├── signature-verifier.test.ts │ │ ├── signature-verifier.ts │ │ ├── test/ │ │ │ ├── create-custom-token.integration.test.ts │ │ │ ├── no-matching-kid.integration.test.ts │ │ │ ├── session-cookie.test.ts │ │ │ ├── set-custom-user-claims.integration.test.ts │ │ │ ├── user.integration.test.ts │ │ │ └── verify-token.integration.test.ts │ │ ├── token-generator.ts │ │ ├── token-verifier.ts │ │ ├── types.ts │ │ ├── user-record.ts │ │ ├── utils.ts │ │ └── validator.ts │ ├── debug/ │ │ └── index.ts │ ├── index.ts │ └── next/ │ ├── api.ts │ ├── client.ts │ ├── cookies/ │ │ ├── AuthCookies.test.ts │ │ ├── AuthCookies.ts │ │ ├── builder/ │ │ │ ├── CookieBuilder.ts │ │ │ ├── CookieBuilderFactory.ts │ │ │ ├── MultipleCookieBuilder.test.ts │ │ │ ├── MultipleCookieBuilder.ts │ │ │ ├── SingleCookieBuilder.test.ts │ │ │ └── SingleCookieBuilder.ts │ │ ├── expiration/ │ │ │ ├── CombinedCookieExpiration.ts │ │ │ ├── CookieExpiration.ts │ │ │ ├── CookieExpirationFactory.test.ts │ │ │ ├── CookieExpirationFactory.ts │ │ │ ├── MultipleCookieExpiration.test.ts │ │ │ ├── MultipleCookieExpiration.ts │ │ │ ├── SingleCookieExpiration.test.ts │ │ │ └── SingleCookieExpiration.ts │ │ ├── index.test.ts │ │ ├── index.ts │ │ ├── parser/ │ │ │ ├── CookieParser.ts │ │ │ ├── CookieParserFactory.test.ts │ │ │ ├── CookieParserFactory.ts │ │ │ ├── CookiesProvider.ts │ │ │ ├── MultipleCookiesParser.test.ts │ │ │ ├── MultipleCookiesParser.ts │ │ │ ├── ObjectCookiesProvider.ts │ │ │ ├── RequestCookiesProvider.test.ts │ │ │ ├── RequestCookiesProvider.ts │ │ │ ├── SingleCookieParser.test.ts │ │ │ └── SingleCookieParser.ts │ │ ├── remover/ │ │ │ ├── CombinedCookieRemover.ts │ │ │ ├── CookieRemover.ts │ │ │ ├── CookieRemoverFactory.test.ts │ │ │ ├── CookieRemoverFactory.ts │ │ │ ├── MultipleCookieRemover.test.ts │ │ │ ├── MultipleCookieRemover.ts │ │ │ └── SingleCookieRemover.ts │ │ ├── setter/ │ │ │ ├── CookieSetter.ts │ │ │ ├── CookieSetterFactory.ts │ │ │ ├── HeadersCookieSetter.test.ts │ │ │ ├── HeadersCookieSetter.ts │ │ │ ├── NextApiResponseHeadersCookieSetter.ts │ │ │ ├── RequestCookieSetter.test.ts │ │ │ └── RequestCookieSetter.ts │ │ └── types.ts │ ├── metadata.ts │ ├── middleware.ts │ ├── refresh-token.ts │ ├── tokens.ts │ └── utils.ts ├── tsconfig.base.json ├── tsconfig.browser.json ├── tsconfig.esm.json ├── tsconfig.json └── tsconfig.test.json