#
tokens: 129897/50000 1/3458 files (page 3451/3458)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 3451 of 3458. Use http://codebase.md/clerk/javascript?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .changeset
│   ├── changelog.js
│   ├── config.json
│   ├── fix-expo-apple-auth-optional.md
│   ├── great-cobras-give.md
│   ├── puny-places-shine.md
│   ├── README.md
│   ├── ripe-parks-find.md
│   ├── shiny-taxis-give.md
│   └── slimy-maps-read.md
├── .coderabbit.yaml
├── .cursor
│   └── rules
│       ├── clerk-js-ui.mdc
│       ├── development.mdc
│       ├── global.mdc
│       ├── monorepo.mdc
│       ├── nextjs.mdc
│       ├── react.mdc
│       └── typescript.mdc
├── .dockerignore
├── .editorconfig
├── .github
│   ├── .cache-version
│   ├── actions
│   │   ├── ensure-stable-pr
│   │   │   └── action.yml
│   │   ├── init
│   │   │   └── action.yml
│   │   ├── init-blacksmith
│   │   │   └── action.yml
│   │   ├── verdaccio
│   │   │   └── action.yml
│   │   └── version-prepatch
│   │       └── action.yml
│   ├── ISSUE_TEMPLATE
│   │   ├── BUG_REPORT.yml
│   │   └── config.yml
│   ├── labeler.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows
│       ├── ci.yml
│       ├── e2e-cleanups.yml
│       ├── labeler.yml
│       ├── lock-threads.yml
│       ├── major-version-check.yml
│       ├── nightly-checks.yml
│       ├── pr-title-linter.yml
│       ├── preview.retheme.yml
│       ├── preview.yml
│       ├── release-canary.yml
│       ├── release-snapshot.yml
│       ├── release.yml
│       └── validate-renovate-config.yml
├── .gitignore
├── .husky
│   └── pre-commit
├── .jit
│   └── config.yml
├── .lintstagedrc.json
├── .npmrc
├── .nvmrc
├── .prettierignore
├── .typedoc
│   ├── __tests__
│   │   ├── __snapshots__
│   │   │   └── file-structure.test.ts.snap
│   │   └── file-structure.test.ts
│   ├── custom-plugin.mjs
│   ├── custom-router.mjs
│   ├── custom-theme.mjs
│   ├── README.md
│   ├── tsconfig.json
│   └── typedoc-prettier-config.json
├── .vscode
│   ├── extensions.json
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── commitlint.config.ts
├── docs
│   ├── CICD.md
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── PUBLISH.md
│   └── SECURITY.md
├── eslint.config.mjs
├── integration
│   ├── .env.local.sample
│   ├── .keys.json.sample
│   ├── certs
│   │   └── README.md
│   ├── cleanup
│   │   └── cleanup.setup.ts
│   ├── constants.ts
│   ├── deployments
│   │   └── vercel.test.ts
│   ├── models
│   │   ├── application.ts
│   │   ├── applicationConfig.ts
│   │   ├── deployment.ts
│   │   ├── environment.ts
│   │   ├── helpers.ts
│   │   ├── longRunningApplication.ts
│   │   └── stateFile.ts
│   ├── playwright.cleanup.config.ts
│   ├── playwright.config.ts
│   ├── playwright.deployments.config.ts
│   ├── presets
│   │   ├── astro.ts
│   │   ├── custom-flows.ts
│   │   ├── elements.ts
│   │   ├── envs.ts
│   │   ├── expo.ts
│   │   ├── express.ts
│   │   ├── index.ts
│   │   ├── longRunningApps.ts
│   │   ├── next.ts
│   │   ├── nuxt.ts
│   │   ├── react-router.ts
│   │   ├── react.ts
│   │   ├── tanstack.ts
│   │   ├── utils.ts
│   │   └── vue.ts
│   ├── README.md
│   ├── scripts
│   │   ├── awaitableTreekill.ts
│   │   ├── clerkJsServer.ts
│   │   ├── index.ts
│   │   ├── logger.ts
│   │   ├── proxyServer.ts
│   │   ├── range.ts
│   │   ├── run.ts
│   │   ├── setup.ts
│   │   ├── waitForIdleProcess.ts
│   │   └── waitForServer.ts
│   ├── templates
│   │   ├── astro-hybrid
│   │   │   ├── .gitignore
│   │   │   ├── astro.config.mjs
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   └── favicon.svg
│   │   │   ├── src
│   │   │   │   ├── layouts
│   │   │   │   │   └── Layout.astro
│   │   │   │   ├── middleware.ts
│   │   │   │   └── pages
│   │   │   │       ├── index.astro
│   │   │   │       ├── only-admins.astro
│   │   │   │       ├── only-members.astro
│   │   │   │       └── ssr.astro
│   │   │   └── tsconfig.json
│   │   ├── astro-node
│   │   │   ├── .gitignore
│   │   │   ├── astro.config.mjs
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   └── favicon.svg
│   │   │   ├── README.md
│   │   │   ├── src
│   │   │   │   ├── components
│   │   │   │   │   ├── Card.astro
│   │   │   │   │   ├── CustomUserButton.astro
│   │   │   │   │   ├── LanguagePicker.tsx
│   │   │   │   │   ├── page-with-user.tsx
│   │   │   │   │   ├── SignOutReact.tsx
│   │   │   │   │   └── StreamUser.astro
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── layouts
│   │   │   │   │   ├── Layout.astro
│   │   │   │   │   ├── react
│   │   │   │   │   │   └── Layout.astro
│   │   │   │   │   ├── Streaming.astro
│   │   │   │   │   └── ViewTransitionsLayout.astro
│   │   │   │   ├── middleware.ts
│   │   │   │   └── pages
│   │   │   │       ├── api
│   │   │   │       │   ├── auth
│   │   │   │       │   │   └── me.ts
│   │   │   │       │   └── protected
│   │   │   │       │       ├── current-org.ts
│   │   │   │       │       └── only-admin.ts
│   │   │   │       ├── billing
│   │   │   │       │   ├── checkout-btn.astro
│   │   │   │       │   ├── plan-details-btn.astro
│   │   │   │       │   └── subscription-details-btn.astro
│   │   │   │       ├── buttons.astro
│   │   │   │       ├── custom-pages
│   │   │   │       │   ├── organization-profile.astro
│   │   │   │       │   └── user-profile.astro
│   │   │   │       ├── discover.astro
│   │   │   │       ├── index.astro
│   │   │   │       ├── only-admins.astro
│   │   │   │       ├── only-members.astro
│   │   │   │       ├── organization.astro
│   │   │   │       ├── pricing-table.astro
│   │   │   │       ├── react
│   │   │   │       │   ├── index.astro
│   │   │   │       │   ├── only-admins.astro
│   │   │   │       │   ├── only-members.astro
│   │   │   │       │   ├── sign-in.astro
│   │   │   │       │   └── user.astro
│   │   │   │       ├── server-islands.astro
│   │   │   │       ├── sign-in.astro
│   │   │   │       ├── transitions
│   │   │   │       │   ├── index.astro
│   │   │   │       │   └── sign-in.astro
│   │   │   │       ├── user.astro
│   │   │   │       └── utility.astro
│   │   │   ├── tailwind.config.cjs
│   │   │   └── tsconfig.json
│   │   ├── custom-flows-react-vite
│   │   │   ├── .gitignore
│   │   │   ├── components.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src
│   │   │   │   ├── components
│   │   │   │   │   └── ui
│   │   │   │   │       ├── button.tsx
│   │   │   │   │       ├── card.tsx
│   │   │   │   │       ├── input.tsx
│   │   │   │   │       └── label.tsx
│   │   │   │   ├── index.css
│   │   │   │   ├── lib
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routes
│   │   │   │   │   ├── Home.tsx
│   │   │   │   │   ├── Protected.tsx
│   │   │   │   │   ├── SignIn.tsx
│   │   │   │   │   └── SignUp.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tsconfig.app.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.node.json
│   │   │   └── vite.config.ts
│   │   ├── elements-next
│   │   │   ├── .gitignore
│   │   │   ├── next.config.js
│   │   │   ├── package.json
│   │   │   ├── postcss.config.js
│   │   │   ├── README.md
│   │   │   ├── src
│   │   │   │   ├── app
│   │   │   │   │   ├── favicon.ico
│   │   │   │   │   ├── globals.css
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── otp
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── page.tsx
│   │   │   │   │   ├── sign-in
│   │   │   │   │   │   └── [[...sign-in]]
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── sign-up
│   │   │   │   │   │   └── [[...sign-up]]
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   └── validate-password
│   │   │   │   │       └── page.tsx
│   │   │   │   └── middleware.ts
│   │   │   ├── tailwind.config.js
│   │   │   └── tsconfig.json
│   │   ├── expo-web
│   │   │   ├── .gitignore
│   │   │   ├── app
│   │   │   │   ├── _layout.tsx
│   │   │   │   ├── +html.tsx
│   │   │   │   ├── +not-found.tsx
│   │   │   │   ├── custom-sign-in.tsx
│   │   │   │   ├── custom-sign-up.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── sign-in.tsx
│   │   │   ├── app.json
│   │   │   ├── assets
│   │   │   │   └── images
│   │   │   │       ├── icon.png
│   │   │   │       └── splash.png
│   │   │   ├── babel.config.js
│   │   │   ├── constants
│   │   │   │   └── Colors.ts
│   │   │   ├── metro.config.js
│   │   │   ├── package.json
│   │   │   ├── README.md
│   │   │   └── tsconfig.json
│   │   ├── express-vite
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src
│   │   │   │   ├── client
│   │   │   │   │   ├── main.ts
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   └── vite-env.d.ts
│   │   │   │   └── server
│   │   │   │       └── main.ts
│   │   │   └── tsconfig.json
│   │   ├── index.ts
│   │   ├── next-app-router
│   │   │   ├── .gitignore
│   │   │   ├── next.config.js
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   ├── next.svg
│   │   │   │   └── vercel.svg
│   │   │   ├── README.md
│   │   │   ├── src
│   │   │   │   ├── app
│   │   │   │   │   ├── (reverification)
│   │   │   │   │   │   ├── action-with-use-reverification
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── actions.ts
│   │   │   │   │   │   ├── button-action.tsx
│   │   │   │   │   │   └── requires-re-verification
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── api
│   │   │   │   │   │   ├── me
│   │   │   │   │   │   │   └── route.ts
│   │   │   │   │   │   └── settings
│   │   │   │   │   │       └── route.ts
│   │   │   │   │   ├── api-keys
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── billing
│   │   │   │   │   │   ├── checkout-btn
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── hooks
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── plan-details-btn
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   └── subscription-details-btn
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── buttons
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── client-id.tsx
│   │   │   │   │   ├── create-organization
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── csp
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── favicon.ico
│   │   │   │   │   ├── globals.css
│   │   │   │   │   ├── hash
│   │   │   │   │   │   └── sign-in
│   │   │   │   │   │       └── [[...page]]
│   │   │   │   │   │           └── page.tsx
│   │   │   │   │   ├── jwt-v2-organizations
│   │   │   │   │   │   ├── (tests)
│   │   │   │   │   │   │   ├── conditionals.tsx
│   │   │   │   │   │   │   ├── has-client
│   │   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   │   ├── has-server
│   │   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   │   ├── has-ssr
│   │   │   │   │   │   │   │   ├── client.tsx
│   │   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   │   ├── layout.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── client-jwt.tsx
│   │   │   │   │   │   └── server-jwt.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── only-admin
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── organization-list
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── organization-profile
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── organization-switcher
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── organizations-by-id
│   │   │   │   │   │   └── [id]
│   │   │   │   │   │       ├── page.tsx
│   │   │   │   │   │       └── settings
│   │   │   │   │   │           └── page.tsx
│   │   │   │   │   ├── organizations-by-slug
│   │   │   │   │   │   └── [slug]
│   │   │   │   │   │       ├── page.tsx
│   │   │   │   │   │       └── settings
│   │   │   │   │   │           └── page.tsx
│   │   │   │   │   ├── page-protected
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── page.module.css
│   │   │   │   │   ├── page.tsx
│   │   │   │   │   ├── personal-account
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── pricing-table
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── protected
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── settings
│   │   │   │   │   │   ├── auth-has
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── auth-protect
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── rcc-protect
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── rsc-protect
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   └── useAuth-has
│   │   │   │   │   │       ├── layout.tsx
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── sign-in
│   │   │   │   │   │   └── [[...catchall]]
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── sign-in-or-up
│   │   │   │   │   │   └── [[...catchall]]
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── sign-up
│   │   │   │   │   │   └── [[...catchall]]
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── switcher
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── user
│   │   │   │   │   │   └── [[...catchall]]
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── user-avatar
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── user-button
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   └── waitlist
│   │   │   │   │       └── page.tsx
│   │   │   │   └── middleware.ts
│   │   │   └── tsconfig.json
│   │   ├── next-app-router-quickstart
│   │   │   ├── .gitignore
│   │   │   ├── next.config.js
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   ├── next.svg
│   │   │   │   └── vercel.svg
│   │   │   ├── README.md
│   │   │   ├── src
│   │   │   │   ├── app
│   │   │   │   │   ├── favicon.ico
│   │   │   │   │   ├── globals.css
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── page.module.css
│   │   │   │   │   └── page.tsx
│   │   │   │   └── middleware.ts
│   │   │   └── tsconfig.json
│   │   ├── nuxt-node
│   │   │   ├── app
│   │   │   │   ├── app.vue
│   │   │   │   ├── middleware
│   │   │   │   │   └── auth.global.js
│   │   │   │   └── pages
│   │   │   │       ├── index.vue
│   │   │   │       ├── only-admin.vue
│   │   │   │       ├── pricing-table.vue
│   │   │   │       ├── sign-in.vue
│   │   │   │       └── user.vue
│   │   │   ├── nuxt.config.js
│   │   │   ├── package.json
│   │   │   └── server
│   │   │       └── api
│   │   │           └── me.js
│   │   ├── react-cra
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   ├── favicon.ico
│   │   │   │   ├── index.html
│   │   │   │   ├── logo192.png
│   │   │   │   ├── logo512.png
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   ├── README.md
│   │   │   ├── src
│   │   │   │   ├── App.css
│   │   │   │   ├── App.tsx
│   │   │   │   ├── index.css
│   │   │   │   ├── index.tsx
│   │   │   │   ├── logo.svg
│   │   │   │   └── react-app-env.d.ts
│   │   │   └── tsconfig.json
│   │   ├── react-router-library
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   └── vite.svg
│   │   │   ├── README.md
│   │   │   ├── src
│   │   │   │   ├── App.css
│   │   │   │   ├── App.tsx
│   │   │   │   ├── assets
│   │   │   │   │   └── react.svg
│   │   │   │   ├── index.css
│   │   │   │   ├── main.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tsconfig.app.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.node.json
│   │   │   └── vite.config.ts
│   │   ├── react-router-node
│   │   │   ├── .gitignore
│   │   │   ├── app
│   │   │   │   ├── root.tsx
│   │   │   │   ├── routes
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── protected.tsx
│   │   │   │   │   ├── sign-in.tsx
│   │   │   │   │   └── sign-up.tsx
│   │   │   │   └── routes.ts
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   └── favicon.ico
│   │   │   ├── react-router.config.ts
│   │   │   ├── README.md
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── react-vite
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── public
│   │   │   │   └── vite.svg
│   │   │   ├── src
│   │   │   │   ├── App.css
│   │   │   │   ├── App.tsx
│   │   │   │   ├── assets
│   │   │   │   │   └── react.svg
│   │   │   │   ├── buttons
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── clerk-status
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── client-id.tsx
│   │   │   │   ├── create-organization
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── custom-user-button
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── with-dynamic-items.tsx
│   │   │   │   │   ├── with-dynamic-label-and-custom-pages.tsx
│   │   │   │   │   └── with-dynamic-labels.tsx
│   │   │   │   ├── custom-user-button-trigger
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── custom-user-profile
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── index.css
│   │   │   │   ├── main.tsx
│   │   │   │   ├── organization-list
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── organization-profile
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── organization-switcher
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── PageContext.tsx
│   │   │   │   ├── protected
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── sign-in
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── sign-up
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── user
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── user-avatar
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── user-button
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── vite-env.d.ts
│   │   │   │   └── waitlist
│   │   │   │       └── index.tsx
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.node.json
│   │   │   └── vite.config.ts
│   │   ├── tanstack-react-start
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── README.md
│   │   │   ├── src
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── sign-in.tsx
│   │   │   │   │   └── user.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── start.ts
│   │   │   │   └── styles
│   │   │   │       └── app.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   └── vue-vite
│   │       ├── .gitignore
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── public
│   │       │   └── vite.svg
│   │       ├── src
│   │       │   ├── App.vue
│   │       │   ├── assets
│   │       │   │   └── styles.css
│   │       │   ├── components
│   │       │   │   ├── CustomUserButton.vue
│   │       │   │   └── LanguagePicker.vue
│   │       │   ├── main.ts
│   │       │   ├── router.ts
│   │       │   ├── views
│   │       │   │   ├── Admin.vue
│   │       │   │   ├── billing
│   │       │   │   │   ├── CheckoutBtn.vue
│   │       │   │   │   ├── PlanDetailsBtn.vue
│   │       │   │   │   └── SubscriptionDetailsBtn.vue
│   │       │   │   ├── custom-pages
│   │       │   │   │   ├── OrganizationProfile.vue
│   │       │   │   │   └── UserProfile.vue
│   │       │   │   ├── Home.vue
│   │       │   │   ├── PricingTable.vue
│   │       │   │   ├── Profile.vue
│   │       │   │   ├── SignIn.vue
│   │       │   │   ├── Unstyled.vue
│   │       │   │   └── UserAvatar.vue
│   │       │   └── vite-env.d.ts
│   │       ├── tsconfig.app.json
│   │       ├── tsconfig.json
│   │       ├── tsconfig.node.json
│   │       └── vite.config.ts
│   ├── tests
│   │   ├── appearance.test.ts
│   │   ├── astro
│   │   │   ├── components.test.ts
│   │   │   ├── hybrid.test.ts
│   │   │   └── machine.test.ts
│   │   ├── billing-hooks.test.ts
│   │   ├── components.test.ts
│   │   ├── content-security-policy.test.ts
│   │   ├── custom-flows
│   │   │   ├── sign-in.test.ts
│   │   │   └── sign-up.test.ts
│   │   ├── custom-pages.test.ts
│   │   ├── db-jwt.test.ts
│   │   ├── dynamic-keys.test.ts
│   │   ├── elements
│   │   │   ├── next-sign-in.test.ts
│   │   │   ├── next-sign-up.test.ts
│   │   │   ├── otp.test.ts
│   │   │   └── validate-password.test.ts
│   │   ├── email-code.test.ts
│   │   ├── email-link.test.ts
│   │   ├── expo-web
│   │   │   ├── basic.test.ts
│   │   │   └── custom-flows.test.ts
│   │   ├── express
│   │   │   └── basic.test.ts
│   │   ├── global.setup.ts
│   │   ├── global.teardown.ts
│   │   ├── handshake
│   │   │   └── handshake.test.ts
│   │   ├── handshake.test.ts
│   │   ├── impersonation-flow.test.ts
│   │   ├── last-authentication-strategy.test.ts
│   │   ├── legal-consent.test.ts
│   │   ├── localhost
│   │   │   ├── localhost-different-port-different-instance.test.ts
│   │   │   ├── localhost-different-port-same-instance.test.ts
│   │   │   └── localhost-switch-instance.test.ts
│   │   ├── machine-auth
│   │   │   ├── api-keys.test.ts
│   │   │   ├── component.test.ts
│   │   │   └── m2m.test.ts
│   │   ├── middleware-placement.test.ts
│   │   ├── navigation.test.ts
│   │   ├── next-account-portal
│   │   │   ├── clerk-v4-ap-core-1.test.ts
│   │   │   ├── clerk-v4-ap-core-2.test.ts
│   │   │   ├── clerk-v5-ap-core-1.test.ts
│   │   │   ├── clerk-v5-ap-core-2.test.ts
│   │   │   └── common.ts
│   │   ├── next-build.test.ts
│   │   ├── next-quickstart-keyless.test.ts
│   │   ├── next-quickstart.test.ts
│   │   ├── non-secure-context.test.ts
│   │   ├── nuxt
│   │   │   ├── basic.test.ts
│   │   │   └── middleware.test.ts
│   │   ├── oauth-flows.test.ts
│   │   ├── pricing-table.test.ts
│   │   ├── protect-jwt-v2.test.ts
│   │   ├── protect.test.ts
│   │   ├── react-router
│   │   │   ├── basic.test.ts
│   │   │   ├── library-mode.test.ts
│   │   │   └── pre-middleware.test.ts
│   │   ├── redirects.test.ts
│   │   ├── resiliency.test.ts
│   │   ├── restricted-mode.test.ts
│   │   ├── reverification.test.ts
│   │   ├── session-tasks-eject-flow.test.ts
│   │   ├── session-tasks-multi-session.test.ts
│   │   ├── session-tasks-sign-in.test.ts
│   │   ├── session-tasks-sign-up.test.ts
│   │   ├── session-token-cache
│   │   │   ├── multi-session.test.ts
│   │   │   └── single-session.test.ts
│   │   ├── sessions
│   │   │   ├── root-subdomain-prod-instances.test.ts
│   │   │   └── utils.ts
│   │   ├── sign-in-flow.test.ts
│   │   ├── sign-in-or-up-component.test.ts
│   │   ├── sign-in-or-up-email-links-flow.test.ts
│   │   ├── sign-in-or-up-flow.test.ts
│   │   ├── sign-in-or-up-restricted-mode.test.ts
│   │   ├── sign-out-smoke.test.ts
│   │   ├── sign-up-flow.test.ts
│   │   ├── snapshots
│   │   │   └── appearance.test.ts-snapshots
│   │   │       └── appearance-prop-all-clerk-themes-render-1-chrome-darwin.png
│   │   ├── tanstack-start
│   │   │   └── basic.test.ts
│   │   ├── unsafeMetadata.test.ts
│   │   ├── update-props.test.ts
│   │   ├── user-avatar.test.ts
│   │   ├── user-profile.test.ts
│   │   ├── vue
│   │   │   └── components.test.ts
│   │   ├── waitlist-mode.test.ts
│   │   └── whatsapp-phone-code.test.ts
│   ├── testUtils
│   │   ├── emailService.ts
│   │   ├── handshake.ts
│   │   ├── index.ts
│   │   ├── invitationsService.ts
│   │   ├── organizationsService.ts
│   │   ├── phoneUtils.ts
│   │   ├── testAgainstRunningApps.ts
│   │   └── usersService.ts
│   ├── tsconfig.json
│   └── types.d.ts
├── jest.setup-after-env.ts
├── LICENSE
├── package.json
├── packages
│   ├── agent-toolkit
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── ai-sdk
│   │   │   │   ├── adapter.ts
│   │   │   │   └── index.ts
│   │   │   ├── global.d.ts
│   │   │   ├── langchain
│   │   │   │   ├── adapter.ts
│   │   │   │   └── index.ts
│   │   │   ├── lib
│   │   │   │   ├── clerk-client.ts
│   │   │   │   ├── clerk-tool.ts
│   │   │   │   ├── constants.ts
│   │   │   │   ├── inject-session-claims.ts
│   │   │   │   ├── tools
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── invitations.ts
│   │   │   │   │   ├── organizations.ts
│   │   │   │   │   └── users.ts
│   │   │   │   ├── types.ts
│   │   │   │   ├── utils.ts
│   │   │   │   └── utilts.test.ts
│   │   │   └── modelcontextprotocol
│   │   │       ├── adapter.ts
│   │   │       ├── index.ts
│   │   │       └── local-server.ts
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   └── tsup.config.ts
│   ├── astro
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── client
│   │   │   └── package.json
│   │   ├── env.d.ts
│   │   ├── hotload
│   │   │   └── package.json
│   │   ├── internal
│   │   │   └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── react
│   │   │   └── package.json
│   │   ├── README.md
│   │   ├── server
│   │   │   └── package.json
│   │   ├── src
│   │   │   ├── astro-components
│   │   │   │   ├── control
│   │   │   │   │   ├── AuthenticateWithRedirectCallback.astro
│   │   │   │   │   ├── BaseClerkControlElement.ts
│   │   │   │   │   ├── Protect.astro
│   │   │   │   │   ├── ProtectCSR.astro
│   │   │   │   │   ├── ProtectSSR.astro
│   │   │   │   │   ├── SignedIn.astro
│   │   │   │   │   ├── SignedInCSR.astro
│   │   │   │   │   ├── SignedInSSR.astro
│   │   │   │   │   ├── SignedOut.astro
│   │   │   │   │   ├── SignedOutCSR.astro
│   │   │   │   │   └── SignedOutSSR.astro
│   │   │   │   ├── index.ts
│   │   │   │   ├── interactive
│   │   │   │   │   ├── CreateOrganization.astro
│   │   │   │   │   ├── CustomProfilePageRenderer.astro
│   │   │   │   │   ├── GoogleOneTap.astro
│   │   │   │   │   ├── InternalUIComponentRenderer.astro
│   │   │   │   │   ├── OrganizationList.astro
│   │   │   │   │   ├── OrganizationProfile
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── OrganizationProfile.astro
│   │   │   │   │   │   ├── OrganizationProfileLink.astro
│   │   │   │   │   │   └── OrganizationProfilePage.astro
│   │   │   │   │   ├── OrganizationSwitcher
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── OrganizationProfileLink.astro
│   │   │   │   │   │   ├── OrganizationProfilePage.astro
│   │   │   │   │   │   └── OrganizationSwitcher.astro
│   │   │   │   │   ├── OrganizationSwitcher.astro
│   │   │   │   │   ├── PricingTable.astro
│   │   │   │   │   ├── SignIn.astro
│   │   │   │   │   ├── SignUp.astro
│   │   │   │   │   ├── UserAvatar.astro
│   │   │   │   │   ├── UserButton
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── MenuItemRenderer.astro
│   │   │   │   │   │   ├── UserButton.astro
│   │   │   │   │   │   ├── UserButtonAction.astro
│   │   │   │   │   │   ├── UserButtonLink.astro
│   │   │   │   │   │   ├── UserButtonMenuItems.astro
│   │   │   │   │   │   └── UserButtonUserProfilePage.astro
│   │   │   │   │   ├── UserProfile
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── UserProfile.astro
│   │   │   │   │   │   ├── UserProfileLink.astro
│   │   │   │   │   │   └── UserProfilePage.astro
│   │   │   │   │   └── Waitlist.astro
│   │   │   │   └── unstyled
│   │   │   │       ├── CheckoutButton.astro
│   │   │   │       ├── PlanDetailsButton.astro
│   │   │   │       ├── SignInButton.astro
│   │   │   │       ├── SignOutButton.astro
│   │   │   │       ├── SignUpButton.astro
│   │   │   │       ├── SubscriptionDetailsButton.astro
│   │   │   │       └── utils.ts
│   │   │   ├── async-local-storage.client.ts
│   │   │   ├── async-local-storage.server.ts
│   │   │   ├── client
│   │   │   │   └── index.ts
│   │   │   ├── env.d.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── integration
│   │   │   │   ├── create-integration.ts
│   │   │   │   └── vite-plugin-astro-config.ts
│   │   │   ├── internal
│   │   │   │   ├── create-clerk-instance.ts
│   │   │   │   ├── create-injection-script-runner.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── invoke-clerk-astro-js-functions.ts
│   │   │   │   ├── merge-env-vars-with-params.ts
│   │   │   │   ├── mount-clerk-astro-js-components.ts
│   │   │   │   ├── run-once.ts
│   │   │   │   ├── swap-document.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils
│   │   │   │       └── generateSafeId.ts
│   │   │   ├── react
│   │   │   │   ├── CheckoutButton.tsx
│   │   │   │   ├── controlComponents.tsx
│   │   │   │   ├── hooks.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── PlanDetailsButton.tsx
│   │   │   │   ├── SignInButton.tsx
│   │   │   │   ├── SignOutButton.tsx
│   │   │   │   ├── SignUpButton.tsx
│   │   │   │   ├── SubscriptionDetailsButton.tsx
│   │   │   │   ├── types.ts
│   │   │   │   ├── uiComponents.tsx
│   │   │   │   └── utils.tsx
│   │   │   ├── server
│   │   │   │   ├── build-clerk-hotload-script.ts
│   │   │   │   ├── clerk-client.ts
│   │   │   │   ├── clerk-middleware.ts
│   │   │   │   ├── current-user.ts
│   │   │   │   ├── get-safe-env.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── route-matcher.ts
│   │   │   │   ├── server-redirect-with-auth.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   ├── stores
│   │   │   │   ├── external.ts
│   │   │   │   └── internal.ts
│   │   │   ├── types.ts
│   │   │   └── webhooks.ts
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── turbo.json
│   │   └── webhooks
│   │       └── package.json
│   ├── backend
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── errors
│   │   │   └── package.json
│   │   ├── internal
│   │   │   └── package.json
│   │   ├── jwt
│   │   │   └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── createRedirect.test.ts
│   │   │   │   ├── exports.test.ts
│   │   │   │   └── webhooks.test.ts
│   │   │   ├── api
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── ClientApi.test.ts
│   │   │   │   │   ├── factory.test.ts
│   │   │   │   │   ├── M2MTokenApi.test.ts
│   │   │   │   │   ├── MachineApi.test.ts
│   │   │   │   │   ├── SamlConnectionApi.test.ts
│   │   │   │   │   └── SessionApi.test.ts
│   │   │   │   ├── endpoints
│   │   │   │   │   ├── AbstractApi.ts
│   │   │   │   │   ├── AccountlessApplicationsAPI.ts
│   │   │   │   │   ├── ActorTokenApi.ts
│   │   │   │   │   ├── AllowlistIdentifierApi.ts
│   │   │   │   │   ├── APIKeysApi.ts
│   │   │   │   │   ├── BetaFeaturesApi.ts
│   │   │   │   │   ├── BillingApi.ts
│   │   │   │   │   ├── BlocklistIdentifierApi.ts
│   │   │   │   │   ├── ClientApi.ts
│   │   │   │   │   ├── DomainApi.ts
│   │   │   │   │   ├── EmailAddressApi.ts
│   │   │   │   │   ├── IdPOAuthAccessTokenApi.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── InstanceApi.ts
│   │   │   │   │   ├── InvitationApi.ts
│   │   │   │   │   ├── JwksApi.ts
│   │   │   │   │   ├── JwtTemplatesApi.ts
│   │   │   │   │   ├── M2MTokenApi.ts
│   │   │   │   │   ├── MachineApi.ts
│   │   │   │   │   ├── OAuthApplicationsApi.ts
│   │   │   │   │   ├── OrganizationApi.ts
│   │   │   │   │   ├── PhoneNumberApi.ts
│   │   │   │   │   ├── ProxyCheckApi.ts
│   │   │   │   │   ├── RedirectUrlApi.ts
│   │   │   │   │   ├── SamlConnectionApi.ts
│   │   │   │   │   ├── SessionApi.ts
│   │   │   │   │   ├── SignInTokenApi.ts
│   │   │   │   │   ├── SignUpApi.ts
│   │   │   │   │   ├── TestingTokenApi.ts
│   │   │   │   │   ├── UserApi.ts
│   │   │   │   │   ├── util-types.ts
│   │   │   │   │   ├── WaitlistEntryApi.ts
│   │   │   │   │   └── WebhookApi.ts
│   │   │   │   ├── factory.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── request.ts
│   │   │   │   └── resources
│   │   │   │       ├── AccountlessApplication.ts
│   │   │   │       ├── ActorToken.ts
│   │   │   │       ├── AllowlistIdentifier.ts
│   │   │   │       ├── APIKey.ts
│   │   │   │       ├── BlocklistIdentifier.ts
│   │   │   │       ├── Client.ts
│   │   │   │       ├── CnameTarget.ts
│   │   │   │       ├── CommercePlan.ts
│   │   │   │       ├── CommerceSubscription.ts
│   │   │   │       ├── CommerceSubscriptionItem.ts
│   │   │   │       ├── Cookies.ts
│   │   │   │       ├── DeletedObject.ts
│   │   │   │       ├── Deserializer.ts
│   │   │   │       ├── Domain.ts
│   │   │   │       ├── Email.ts
│   │   │   │       ├── EmailAddress.ts
│   │   │   │       ├── Enums.ts
│   │   │   │       ├── ExternalAccount.ts
│   │   │   │       ├── Feature.ts
│   │   │   │       ├── HandshakePayload.ts
│   │   │   │       ├── IdentificationLink.ts
│   │   │   │       ├── IdPOAuthAccessToken.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── Instance.ts
│   │   │   │       ├── InstanceRestrictions.ts
│   │   │   │       ├── InstanceSettings.ts
│   │   │   │       ├── Invitation.ts
│   │   │   │       ├── JSON.ts
│   │   │   │       ├── JwtTemplate.ts
│   │   │   │       ├── M2MToken.ts
│   │   │   │       ├── Machine.ts
│   │   │   │       ├── MachineScope.ts
│   │   │   │       ├── MachineSecretKey.ts
│   │   │   │       ├── OauthAccessToken.ts
│   │   │   │       ├── OAuthApplication.ts
│   │   │   │       ├── Organization.ts
│   │   │   │       ├── OrganizationDomain.ts
│   │   │   │       ├── OrganizationInvitation.ts
│   │   │   │       ├── OrganizationMembership.ts
│   │   │   │       ├── OrganizationSettings.ts
│   │   │   │       ├── PhoneNumber.ts
│   │   │   │       ├── ProxyCheck.ts
│   │   │   │       ├── RedirectUrl.ts
│   │   │   │       ├── SamlAccount.ts
│   │   │   │       ├── SamlConnection.ts
│   │   │   │       ├── Session.ts
│   │   │   │       ├── SignInTokens.ts
│   │   │   │       ├── SignUpAttempt.ts
│   │   │   │       ├── SMSMessage.ts
│   │   │   │       ├── TestingToken.ts
│   │   │   │       ├── Token.ts
│   │   │   │       ├── User.ts
│   │   │   │       ├── Verification.ts
│   │   │   │       ├── WaitlistEntry.ts
│   │   │   │       ├── Web3Wallet.ts
│   │   │   │       └── Webhooks.ts
│   │   │   ├── constants.ts
│   │   │   ├── createRedirect.ts
│   │   │   ├── errors.ts
│   │   │   ├── fixtures
│   │   │   │   ├── index.ts
│   │   │   │   ├── jwks.json
│   │   │   │   ├── machine.ts
│   │   │   │   └── user.json
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── internal.ts
│   │   │   ├── jwt
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── assertions.test.ts
│   │   │   │   │   ├── cryptoKeys.test.ts
│   │   │   │   │   ├── signJwt.test.ts
│   │   │   │   │   └── verifyJwt.test.ts
│   │   │   │   ├── algorithms.ts
│   │   │   │   ├── assertions.ts
│   │   │   │   ├── cryptoKeys.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── legacyReturn.ts
│   │   │   │   ├── signJwt.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── verifyJwt.ts
│   │   │   ├── mock-server.ts
│   │   │   ├── runtime
│   │   │   │   ├── browser
│   │   │   │   │   └── crypto.mjs
│   │   │   │   └── node
│   │   │   │       ├── crypto.js
│   │   │   │       └── crypto.mjs
│   │   │   ├── runtime.ts
│   │   │   ├── tokens
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── authenticateContext.test.ts
│   │   │   │   │   ├── authObjects.test.ts
│   │   │   │   │   ├── authStatus.test.ts
│   │   │   │   │   ├── clerkRequest.test.ts
│   │   │   │   │   ├── factory.test.ts
│   │   │   │   │   ├── getAuth.test-d.ts
│   │   │   │   │   ├── handshake.test.ts
│   │   │   │   │   ├── keys.test.ts
│   │   │   │   │   ├── machine.test.ts
│   │   │   │   │   ├── organizationMatcher.test.ts
│   │   │   │   │   ├── request.test-d.ts
│   │   │   │   │   ├── request.test.ts
│   │   │   │   │   └── verify.test.ts
│   │   │   │   ├── authenticateContext.ts
│   │   │   │   ├── authObjects.ts
│   │   │   │   ├── authStatus.ts
│   │   │   │   ├── clerkRequest.ts
│   │   │   │   ├── clerkUrl.ts
│   │   │   │   ├── cookie.ts
│   │   │   │   ├── factory.ts
│   │   │   │   ├── handshake.ts
│   │   │   │   ├── keys.ts
│   │   │   │   ├── machine.ts
│   │   │   │   ├── organizationMatcher.ts
│   │   │   │   ├── request.ts
│   │   │   │   ├── tokenTypes.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── verify.ts
│   │   │   ├── util
│   │   │   │   ├── __tests__
│   │   │   │   │   └── path.test.ts
│   │   │   │   ├── decorateObjectWithResources.ts
│   │   │   │   ├── mergePreDefinedOptions.ts
│   │   │   │   ├── optionsAssertions.ts
│   │   │   │   ├── path.ts
│   │   │   │   ├── rfc4648.ts
│   │   │   │   └── shared.ts
│   │   │   └── webhooks.ts
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── typedoc.json
│   │   ├── vitest.config.mts
│   │   ├── vitest.setup.mts
│   │   └── webhooks
│   │       └── package.json
│   ├── chrome-extension
│   │   ├── .gitignore
│   │   ├── background
│   │   │   └── package.json
│   │   ├── CHANGELOG.md
│   │   ├── docs
│   │   │   ├── clerk-provider.md
│   │   │   ├── manifest.md
│   │   │   └── service-worker.md
│   │   ├── internal
│   │   │   └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── react
│   │   │   └── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── __snapshots__
│   │   │   │   │   └── exports.test.ts.snap
│   │   │   │   └── exports.test.ts
│   │   │   ├── background
│   │   │   │   ├── clerk.ts
│   │   │   │   └── index.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── internal
│   │   │   │   ├── clerk.ts
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── utils
│   │   │   │       ├── __tests__
│   │   │   │       │   ├── cookies.test.ts
│   │   │   │       │   ├── manifest.test.ts
│   │   │   │       │   └── storage.test.ts
│   │   │   │       ├── cookies.ts
│   │   │   │       ├── errors.ts
│   │   │   │       ├── jwt-handler.ts
│   │   │   │       ├── manifest.ts
│   │   │   │       ├── request-handler.ts
│   │   │   │       ├── response-handler.ts
│   │   │   │       └── storage.ts
│   │   │   ├── react
│   │   │   │   ├── ClerkProvider.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── NotSupported.tsx
│   │   │   │   └── re-exports.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   ├── tsup.config.ts
│   │   ├── vitest.config.mts
│   │   └── vitest.setup.mts
│   ├── clerk-js
│   │   ├── .gitignore
│   │   ├── bundle-check.mjs
│   │   ├── bundlewatch-fix.mjs
│   │   ├── bundlewatch.config.json
│   │   ├── CHANGELOG.md
│   │   ├── clerk.png
│   │   ├── docs
│   │   │   └── events.md
│   │   ├── headless
│   │   │   ├── index.d.ts
│   │   │   └── index.js
│   │   ├── LICENSE
│   │   ├── no-rhc
│   │   │   ├── index.d.ts
│   │   │   └── index.js
│   │   ├── package.json
│   │   ├── playwright.config.ts
│   │   ├── README.md
│   │   ├── rspack.config.js
│   │   ├── sandbox
│   │   │   ├── app.ts
│   │   │   ├── integration
│   │   │   │   ├── create-organization.spec.ts
│   │   │   │   ├── create-organization.spec.ts-snapshots
│   │   │   │   │   └── create-organization-chromium-darwin.png
│   │   │   │   ├── global.setup.ts
│   │   │   │   ├── helpers.ts
│   │   │   │   ├── oauth-consent.spec.ts
│   │   │   │   ├── oauth-consent.spec.ts-snapshots
│   │   │   │   │   └── oauth-consent-chromium-darwin.png
│   │   │   │   ├── org-switcher.spec.ts
│   │   │   │   ├── org-switcher.spec.ts-snapshots
│   │   │   │   │   ├── organization-switcher-action-hover-chromium-darwin.png
│   │   │   │   │   └── organization-switcher-popover-chromium-darwin.png
│   │   │   │   ├── organization-list.spec.ts
│   │   │   │   ├── organization-list.spec.ts-snapshots
│   │   │   │   │   └── organization-list-chromium-darwin.png
│   │   │   │   ├── sign-in-modal.spec.ts
│   │   │   │   ├── sign-in-modal.spec.ts-snapshots
│   │   │   │   │   └── sign-in-modal-chromium-darwin.png
│   │   │   │   ├── sign-in.spec.ts
│   │   │   │   ├── sign-in.spec.ts-snapshots
│   │   │   │   │   ├── sign-in-action-link-hover-chromium-darwin.png
│   │   │   │   │   ├── sign-in-chromium-darwin.png
│   │   │   │   │   ├── sign-in-primary-button-hover-chromium-darwin.png
│   │   │   │   │   └── sign-in-secondary-button-hover-chromium-darwin.png
│   │   │   │   ├── sign-up.spec.ts
│   │   │   │   ├── sign-up.spec.ts-snapshots
│   │   │   │   │   └── sign-up-chromium-darwin.png
│   │   │   │   ├── user-button.spec.ts
│   │   │   │   ├── user-button.spec.ts-snapshots
│   │   │   │   │   └── user-button-popover-chromium-darwin.png
│   │   │   │   ├── user-profile.spec.ts
│   │   │   │   └── user-profile.spec.ts-snapshots
│   │   │   │       └── user-profile-chromium-darwin.png
│   │   │   └── template.html
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   └── headless.test.ts
│   │   │   ├── core
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── clerk.redirects.test.ts
│   │   │   │   │   ├── clerk.test.ts
│   │   │   │   │   ├── fapiClient.test.ts
│   │   │   │   │   └── tokenCache.test.ts
│   │   │   │   ├── auth
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── cookieSuffix.test.ts
│   │   │   │   │   │   ├── devBrowser.test.ts
│   │   │   │   │   │   ├── getCookieDomain.test.ts
│   │   │   │   │   │   └── getSecureAttribute.test.ts
│   │   │   │   │   ├── AuthCookieService.ts
│   │   │   │   │   ├── CaptchaHeartbeat.ts
│   │   │   │   │   ├── cookies
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   ├── clientUat.test.ts
│   │   │   │   │   │   │   └── session.test.ts
│   │   │   │   │   │   ├── activeContext.ts
│   │   │   │   │   │   ├── clientUat.ts
│   │   │   │   │   │   ├── devBrowser.ts
│   │   │   │   │   │   └── session.ts
│   │   │   │   │   ├── cookieSuffix.ts
│   │   │   │   │   ├── devBrowser.ts
│   │   │   │   │   ├── getCookieDomain.ts
│   │   │   │   │   ├── getSecureAttribute.ts
│   │   │   │   │   ├── safeLock.ts
│   │   │   │   │   └── SessionCookiePoller.ts
│   │   │   │   ├── clerk.ts
│   │   │   │   ├── constants.ts
│   │   │   │   ├── errors.ts
│   │   │   │   ├── events.ts
│   │   │   │   ├── fapiClient.ts
│   │   │   │   ├── fraudProtection.test.ts
│   │   │   │   ├── fraudProtection.ts
│   │   │   │   ├── jwt-client.ts
│   │   │   │   ├── modules
│   │   │   │   │   ├── apiKeys
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── billing
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── namespace.ts
│   │   │   │   │   │   └── payment-source-methods.ts
│   │   │   │   │   ├── checkout
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── manager.test.ts
│   │   │   │   │   │   ├── instance.ts
│   │   │   │   │   │   └── manager.ts
│   │   │   │   │   └── debug
│   │   │   │   │       ├── __tests__
│   │   │   │   │       │   └── logger.test.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── logger.ts
│   │   │   │   │       ├── transports
│   │   │   │   │       │   ├── __tests__
│   │   │   │   │       │   │   └── telemetry.test.ts
│   │   │   │   │       │   ├── composite.ts
│   │   │   │   │       │   ├── console.ts
│   │   │   │   │       │   └── telemetry.ts
│   │   │   │   │       └── types.ts
│   │   │   │   ├── query-core.ts
│   │   │   │   ├── resources
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── AuthConfig.test.ts
│   │   │   │   │   │   ├── Base.test.ts
│   │   │   │   │   │   ├── Client.test.ts
│   │   │   │   │   │   ├── Environment.test.ts
│   │   │   │   │   │   ├── ExternalAccount.test.ts
│   │   │   │   │   │   ├── Image.test.ts
│   │   │   │   │   │   ├── Organization.test.ts
│   │   │   │   │   │   ├── OrganizationDomain.test.ts
│   │   │   │   │   │   ├── OrganizationInvitation.test.ts
│   │   │   │   │   │   ├── OrganizationMembership.test.ts
│   │   │   │   │   │   ├── OrganizationMembershipRequest.test.ts
│   │   │   │   │   │   ├── OrganizationSuggestion.test.ts
│   │   │   │   │   │   ├── PublicUserData.test.ts
│   │   │   │   │   │   ├── Session.test.ts
│   │   │   │   │   │   ├── SignIn.test.ts
│   │   │   │   │   │   ├── Token.test.ts
│   │   │   │   │   │   ├── User.test.ts
│   │   │   │   │   │   ├── UserSettings.test.ts
│   │   │   │   │   │   ├── Waitlist.test.ts
│   │   │   │   │   │   └── Web3Wallet.test.ts
│   │   │   │   │   ├── APIKey.ts
│   │   │   │   │   ├── APIKeySettings.ts
│   │   │   │   │   ├── AuthConfig.ts
│   │   │   │   │   ├── BackupCode.ts
│   │   │   │   │   ├── Base.ts
│   │   │   │   │   ├── BillingCheckout.ts
│   │   │   │   │   ├── BillingPayer.ts
│   │   │   │   │   ├── BillingPayment.ts
│   │   │   │   │   ├── BillingPaymentMethod.ts
│   │   │   │   │   ├── BillingPlan.ts
│   │   │   │   │   ├── BillingStatement.ts
│   │   │   │   │   ├── BillingSubscription.ts
│   │   │   │   │   ├── Client.ts
│   │   │   │   │   ├── CommerceSettings.ts
│   │   │   │   │   ├── DeletedObject.ts
│   │   │   │   │   ├── DisplayConfig.ts
│   │   │   │   │   ├── EmailAddress.ts
│   │   │   │   │   ├── EnterpriseAccount.ts
│   │   │   │   │   ├── Environment.ts
│   │   │   │   │   ├── ExternalAccount.ts
│   │   │   │   │   ├── Feature.ts
│   │   │   │   │   ├── IdentificationLink.ts
│   │   │   │   │   ├── Image.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── internal.ts
│   │   │   │   │   ├── Organization.ts
│   │   │   │   │   ├── OrganizationDomain.ts
│   │   │   │   │   ├── OrganizationInvitation.ts
│   │   │   │   │   ├── OrganizationMembership.ts
│   │   │   │   │   ├── OrganizationMembershipRequest.ts
│   │   │   │   │   ├── OrganizationSettings.ts
│   │   │   │   │   ├── OrganizationSuggestion.ts
│   │   │   │   │   ├── Passkey.ts
│   │   │   │   │   ├── Permission.ts
│   │   │   │   │   ├── PhoneNumber.ts
│   │   │   │   │   ├── PublicUserData.ts
│   │   │   │   │   ├── Role.ts
│   │   │   │   │   ├── SamlAccount.ts
│   │   │   │   │   ├── Session.ts
│   │   │   │   │   ├── SessionVerification.ts
│   │   │   │   │   ├── SessionWithActivities.ts
│   │   │   │   │   ├── SignIn.ts
│   │   │   │   │   ├── SignUp.ts
│   │   │   │   │   ├── Token.ts
│   │   │   │   │   ├── TOTP.ts
│   │   │   │   │   ├── User.ts
│   │   │   │   │   ├── UserData.ts
│   │   │   │   │   ├── UserOrganizationInvitation.ts
│   │   │   │   │   ├── UserSettings.ts
│   │   │   │   │   ├── Verification.ts
│   │   │   │   │   ├── Waitlist.ts
│   │   │   │   │   └── Web3Wallet.ts
│   │   │   │   ├── sessionTasks.ts
│   │   │   │   ├── signals.ts
│   │   │   │   ├── state.ts
│   │   │   │   ├── tokenCache.ts
│   │   │   │   └── warnings.ts
│   │   │   ├── emotion.d.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.browser.ts
│   │   │   ├── index.headless.browser.ts
│   │   │   ├── index.headless.ts
│   │   │   ├── index.legacy.browser.ts
│   │   │   ├── index.ts
│   │   │   ├── test
│   │   │   │   ├── core-fixtures.ts
│   │   │   │   ├── create-fixtures.tsx
│   │   │   │   ├── fixture-helpers.ts
│   │   │   │   ├── fixtures.ts
│   │   │   │   ├── mock-helpers.ts
│   │   │   │   └── utils.ts
│   │   │   ├── ui
│   │   │   │   ├── baseTheme.ts
│   │   │   │   ├── common
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── redirects.test.ts
│   │   │   │   │   │   ├── verification.test.ts
│   │   │   │   │   │   └── withRedirect.test.tsx
│   │   │   │   │   ├── CalloutWithAction.tsx
│   │   │   │   │   ├── ChooseEnterpriseConnectionCard.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── CustomPageContentContainer.tsx
│   │   │   │   │   ├── DevOnly.tsx
│   │   │   │   │   ├── EmailLinkCompleteFlowCard.tsx
│   │   │   │   │   ├── EmailLinkStatusCard.tsx
│   │   │   │   │   ├── EmailLinkVerify.tsx
│   │   │   │   │   ├── forms.ts
│   │   │   │   │   ├── Gate.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── InfiniteListSpinner.tsx
│   │   │   │   │   ├── NotificationCountBadge.tsx
│   │   │   │   │   ├── organizations
│   │   │   │   │   │   └── OrganizationPreview.tsx
│   │   │   │   │   ├── PrintableComponent.tsx
│   │   │   │   │   ├── ProviderInitialIcon.tsx
│   │   │   │   │   ├── QRCode.tsx
│   │   │   │   │   ├── redirects.ts
│   │   │   │   │   ├── RemoveResourceForm.tsx
│   │   │   │   │   ├── SSOCallback.tsx
│   │   │   │   │   ├── verification.ts
│   │   │   │   │   ├── withRedirect.tsx
│   │   │   │   │   └── Wizard.tsx
│   │   │   │   ├── components
│   │   │   │   │   ├── ApiKeys
│   │   │   │   │   │   ├── ApiKeyModal.tsx
│   │   │   │   │   │   ├── ApiKeys.tsx
│   │   │   │   │   │   ├── ApiKeysTable.tsx
│   │   │   │   │   │   ├── CopyApiKeyModal.tsx
│   │   │   │   │   │   ├── CreateApiKeyForm.tsx
│   │   │   │   │   │   ├── RevokeAPIKeyConfirmationModal.tsx
│   │   │   │   │   │   └── useApiKeys.ts
│   │   │   │   │   ├── BlankCaptchaModal
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Checkout
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── Checkout.test.tsx
│   │   │   │   │   │   ├── CheckoutComplete.tsx
│   │   │   │   │   │   ├── CheckoutForm.tsx
│   │   │   │   │   │   ├── CheckoutPage.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── parts.tsx
│   │   │   │   │   ├── CreateOrganization
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── CreateOrganization.test.tsx
│   │   │   │   │   │   ├── CreateOrganization.tsx
│   │   │   │   │   │   ├── CreateOrganizationForm.tsx
│   │   │   │   │   │   ├── CreateOrganizationPage.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── GoogleOneTap
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── one-tap-start.tsx
│   │   │   │   │   ├── ImpersonationFab
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── KeylessPrompt
│   │   │   │   │   │   ├── ClerkLogoIcon.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── KeySlashIcon.tsx
│   │   │   │   │   │   └── use-revalidate-environment.ts
│   │   │   │   │   ├── OAuthConsent
│   │   │   │   │   │   └── OAuthConsent.tsx
│   │   │   │   │   ├── OrganizationList
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── OrganizationList.test.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── OrganizationListPage.tsx
│   │   │   │   │   │   ├── shared.tsx
│   │   │   │   │   │   ├── UserInvitationList.tsx
│   │   │   │   │   │   ├── UserMembershipList.tsx
│   │   │   │   │   │   ├── UserSuggestionList.tsx
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── OrganizationProfile
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   ├── InviteMembersPage.test.tsx
│   │   │   │   │   │   │   ├── LeaveOrganizationPage.test.tsx
│   │   │   │   │   │   │   ├── OrganizationGeneralPage.test.tsx
│   │   │   │   │   │   │   ├── OrganizationMembers.test.tsx
│   │   │   │   │   │   │   ├── OrganizationProfile.test.tsx
│   │   │   │   │   │   │   ├── ProfileSettingsPage.test.tsx
│   │   │   │   │   │   │   └── utils.ts
│   │   │   │   │   │   ├── ActionConfirmationPage.tsx
│   │   │   │   │   │   ├── ActiveMembersList.tsx
│   │   │   │   │   │   ├── AddDomainForm.tsx
│   │   │   │   │   │   ├── BillingWidget.tsx
│   │   │   │   │   │   ├── DomainList.tsx
│   │   │   │   │   │   ├── EnrollmentBadge.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── InvitedMembersList.tsx
│   │   │   │   │   │   ├── InviteMembersForm.tsx
│   │   │   │   │   │   ├── InviteMembersScreen.tsx
│   │   │   │   │   │   ├── MemberListTable.tsx
│   │   │   │   │   │   ├── MembersActions.tsx
│   │   │   │   │   │   ├── MembershipWidget.tsx
│   │   │   │   │   │   ├── MembersSearch.tsx
│   │   │   │   │   │   ├── OrganizationApiKeysPage.tsx
│   │   │   │   │   │   ├── OrganizationBillingPage.tsx
│   │   │   │   │   │   ├── OrganizationGeneralPage.tsx
│   │   │   │   │   │   ├── OrganizationMembers.tsx
│   │   │   │   │   │   ├── OrganizationMembersTabInvitations.tsx
│   │   │   │   │   │   ├── OrganizationMembersTabRequests.tsx
│   │   │   │   │   │   ├── OrganizationPaymentAttemptPage.tsx
│   │   │   │   │   │   ├── OrganizationPlansPage.tsx
│   │   │   │   │   │   ├── OrganizationProfileAvatarUploader.tsx
│   │   │   │   │   │   ├── OrganizationProfileNavbar.tsx
│   │   │   │   │   │   ├── OrganizationProfileRoutes.tsx
│   │   │   │   │   │   ├── OrganizationStatementPage.tsx
│   │   │   │   │   │   ├── ProfileForm.tsx
│   │   │   │   │   │   ├── RemoveDomainForm.tsx
│   │   │   │   │   │   ├── RemoveDomainScreen.tsx
│   │   │   │   │   │   ├── RequestToJoinList.tsx
│   │   │   │   │   │   ├── VerifiedDomainForm.tsx
│   │   │   │   │   │   ├── VerifiedDomainScreen.tsx
│   │   │   │   │   │   ├── VerifyDomainForm.tsx
│   │   │   │   │   │   └── VerifyDomainScreen.tsx
│   │   │   │   │   ├── OrganizationSwitcher
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   ├── OrganizationSwitcher.test.tsx
│   │   │   │   │   │   │   ├── test-utils.ts
│   │   │   │   │   │   │   └── utils.test.ts
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── OrganizationSwitcherPopover.tsx
│   │   │   │   │   │   ├── OrganizationSwitcherTrigger.tsx
│   │   │   │   │   │   ├── OtherOrganizationActions.tsx
│   │   │   │   │   │   ├── UserInvitationSuggestionList.tsx
│   │   │   │   │   │   ├── UserMembershipList.tsx
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── PaymentAttempts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── PaymentAttemptPage.tsx
│   │   │   │   │   │   └── PaymentAttemptsList.tsx
│   │   │   │   │   ├── PaymentMethods
│   │   │   │   │   │   ├── AddPaymentMethod.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── PaymentElementSkeleton.tsx
│   │   │   │   │   │   ├── PaymentMethodRow.tsx
│   │   │   │   │   │   ├── PaymentMethods.tsx
│   │   │   │   │   │   └── TestPaymentMethod.tsx
│   │   │   │   │   ├── Plans
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── PlanDetails.test.tsx
│   │   │   │   │   │   └── PlanDetails.tsx
│   │   │   │   │   ├── prefetch-organization-list.tsx
│   │   │   │   │   ├── PricingTable
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── PricingTable.test.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── PricingTable.tsx
│   │   │   │   │   │   ├── PricingTableDefault.tsx
│   │   │   │   │   │   ├── PricingTableMatrix.tsx
│   │   │   │   │   │   └── utils
│   │   │   │   │   │       ├── pricing-footer-state.spec.ts
│   │   │   │   │   │       └── pricing-footer-state.ts
│   │   │   │   │   ├── SessionTasks
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── tasks
│   │   │   │   │   │       ├── TaskChooseOrganization
│   │   │   │   │   │       │   ├── __tests__
│   │   │   │   │   │       │   │   └── TaskChooseOrganization.test.tsx
│   │   │   │   │   │       │   ├── ChooseOrganizationScreen.tsx
│   │   │   │   │   │       │   ├── CreateOrganizationScreen.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       └── withTaskGuard.ts
│   │   │   │   │   ├── SignIn
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   ├── handleCombinedFlowTransfer.test.ts
│   │   │   │   │   │   │   ├── ResetPassword.test.tsx
│   │   │   │   │   │   │   ├── ResetPasswordSuccess.test.tsx
│   │   │   │   │   │   │   ├── SignInAccountSwitcher.test.tsx
│   │   │   │   │   │   │   ├── SignInFactorOne.test.tsx
│   │   │   │   │   │   │   ├── SignInFactorOneCodeForm.test.tsx
│   │   │   │   │   │   │   ├── SignInFactorTwo.test.tsx
│   │   │   │   │   │   │   ├── SignInStart.test.tsx
│   │   │   │   │   │   │   └── utils.test.ts
│   │   │   │   │   │   ├── AlternativeMethods.tsx
│   │   │   │   │   │   ├── handleCombinedFlowTransfer.ts
│   │   │   │   │   │   ├── HavingTrouble.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── lazy-sign-up.ts
│   │   │   │   │   │   ├── ResetPassword.tsx
│   │   │   │   │   │   ├── ResetPasswordSuccess.tsx
│   │   │   │   │   │   ├── shared.ts
│   │   │   │   │   │   ├── SignInAccountSwitcher.tsx
│   │   │   │   │   │   ├── SignInAlternativePhoneCodePhoneNumberCard.tsx
│   │   │   │   │   │   ├── SignInFactorOne.tsx
│   │   │   │   │   │   ├── SignInFactorOneAlternativeChannelCodeForm.tsx
│   │   │   │   │   │   ├── SignInFactorOneAlternativePhoneCodeCard.tsx
│   │   │   │   │   │   ├── SignInFactorOneCodeForm.tsx
│   │   │   │   │   │   ├── SignInFactorOneEmailCodeCard.tsx
│   │   │   │   │   │   ├── SignInFactorOneEmailLinkCard.tsx
│   │   │   │   │   │   ├── SignInFactorOneEnterpriseConnections.tsx
│   │   │   │   │   │   ├── SignInFactorOneForgotPasswordCard.tsx
│   │   │   │   │   │   ├── SignInFactorOnePasskey.tsx
│   │   │   │   │   │   ├── SignInFactorOnePasswordCard.tsx
│   │   │   │   │   │   ├── SignInFactorOnePhoneCodeCard.tsx
│   │   │   │   │   │   ├── SignInFactorTwo.tsx
│   │   │   │   │   │   ├── SignInFactorTwoAlternativeMethods.tsx
│   │   │   │   │   │   ├── SignInFactorTwoBackupCodeCard.tsx
│   │   │   │   │   │   ├── SignInFactorTwoCodeForm.tsx
│   │   │   │   │   │   ├── SignInFactorTwoPhoneCodeCard.tsx
│   │   │   │   │   │   ├── SignInFactorTwoTOTPCard.tsx
│   │   │   │   │   │   ├── SignInSocialButtons.tsx
│   │   │   │   │   │   ├── SignInSSOCallback.tsx
│   │   │   │   │   │   ├── SignInStart.tsx
│   │   │   │   │   │   ├── useResetPasswordFactor.tsx
│   │   │   │   │   │   ├── utils.ts
│   │   │   │   │   │   └── withHavingTrouble.tsx
│   │   │   │   │   ├── SignUp
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   ├── SignUpContinue.test.tsx
│   │   │   │   │   │   │   ├── SignUpEmailLinkFlowComplete.test.tsx
│   │   │   │   │   │   │   ├── signUpFormHelpers.test.ts
│   │   │   │   │   │   │   ├── SignUpStart.test.tsx
│   │   │   │   │   │   │   ├── SignUpVerifyEmail.test.tsx
│   │   │   │   │   │   │   └── SignUpVerifyPhone.test.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── SignUpContinue.tsx
│   │   │   │   │   │   ├── SignUpEmailCodeCard.tsx
│   │   │   │   │   │   ├── SignUpEmailLinkCard.tsx
│   │   │   │   │   │   ├── SignUpEnterpriseConnections.tsx
│   │   │   │   │   │   ├── SignUpForm.tsx
│   │   │   │   │   │   ├── signUpFormHelpers.ts
│   │   │   │   │   │   ├── SignUpPhoneCodeCard.tsx
│   │   │   │   │   │   ├── SignUpRestrictedAccess.tsx
│   │   │   │   │   │   ├── SignUpSocialButtons.tsx
│   │   │   │   │   │   ├── SignUpSSOCallback.tsx
│   │   │   │   │   │   ├── SignUpStart.tsx
│   │   │   │   │   │   ├── SignUpStartAlternativePhoneCodePhoneNumberCard.tsx
│   │   │   │   │   │   ├── SignUpVerificationCodeForm.tsx
│   │   │   │   │   │   ├── SignUpVerifyEmail.tsx
│   │   │   │   │   │   ├── SignUpVerifyPhone.tsx
│   │   │   │   │   │   └── util.ts
│   │   │   │   │   ├── Statements
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── Statement.tsx
│   │   │   │   │   │   ├── StatementPage.tsx
│   │   │   │   │   │   └── StatementsList.tsx
│   │   │   │   │   ├── SubscriptionDetails
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── SubscriptionDetails.test.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Subscriptions
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── SubscriptionsList.test.tsx
│   │   │   │   │   │   ├── badge.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── SubscriptionsList.tsx
│   │   │   │   │   ├── UserAvatar
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── UserButton
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── UserButton.test.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── SessionActions.tsx
│   │   │   │   │   │   ├── useMultisessionActions.tsx
│   │   │   │   │   │   ├── UserButtonPopover.tsx
│   │   │   │   │   │   ├── UserButtonTopLevelIdentifier.tsx
│   │   │   │   │   │   └── UserButtonTrigger.tsx
│   │   │   │   │   ├── UserProfile
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   ├── AccountPage.test.tsx
│   │   │   │   │   │   │   ├── ConnectedAccountsSection.test.tsx
│   │   │   │   │   │   │   ├── EmailsSection.test.tsx
│   │   │   │   │   │   │   ├── EnterpriseAccountsSection.test.tsx
│   │   │   │   │   │   │   ├── MfaPage.test.tsx
│   │   │   │   │   │   │   ├── PasskeysSection.test.tsx
│   │   │   │   │   │   │   ├── PasswordSection.test.tsx
│   │   │   │   │   │   │   ├── PhoneSection.test.tsx
│   │   │   │   │   │   │   ├── SecurityPage.test.tsx
│   │   │   │   │   │   │   ├── UsernameSection.test.tsx
│   │   │   │   │   │   │   ├── UserProfile.test.tsx
│   │   │   │   │   │   │   ├── UserProfileSection.test.tsx
│   │   │   │   │   │   │   └── utils.test.ts
│   │   │   │   │   │   ├── AccountPage.tsx
│   │   │   │   │   │   ├── ActiveDevicesSection.tsx
│   │   │   │   │   │   ├── AddAuthenticatorApp.tsx
│   │   │   │   │   │   ├── ApiKeysPage.tsx
│   │   │   │   │   │   ├── BillingPage.tsx
│   │   │   │   │   │   ├── ConnectedAccountsMenu.tsx
│   │   │   │   │   │   ├── ConnectedAccountsSection.tsx
│   │   │   │   │   │   ├── DeleteSection.tsx
│   │   │   │   │   │   ├── DeleteUserForm.tsx
│   │   │   │   │   │   ├── EmailForm.tsx
│   │   │   │   │   │   ├── EmailsSection.tsx
│   │   │   │   │   │   ├── EnterpriseAccountsSection.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── LinkButtonWithDescription.tsx
│   │   │   │   │   │   ├── MfaBackupCodeCreateForm.tsx
│   │   │   │   │   │   ├── MfaBackupCodeList.tsx
│   │   │   │   │   │   ├── MfaBackupCodeScreen.tsx
│   │   │   │   │   │   ├── MfaBackupCodeTile.tsx
│   │   │   │   │   │   ├── MfaForm.tsx
│   │   │   │   │   │   ├── MfaPhoneCodeScreen.tsx
│   │   │   │   │   │   ├── MfaScreens.tsx
│   │   │   │   │   │   ├── MfaSection.tsx
│   │   │   │   │   │   ├── MfaTOTPScreen.tsx
│   │   │   │   │   │   ├── PasskeySection.tsx
│   │   │   │   │   │   ├── PasswordForm.tsx
│   │   │   │   │   │   ├── PasswordSection.tsx
│   │   │   │   │   │   ├── PhoneForm.tsx
│   │   │   │   │   │   ├── PhoneSection.tsx
│   │   │   │   │   │   ├── PlansPage.tsx
│   │   │   │   │   │   ├── ProfileForm.tsx
│   │   │   │   │   │   ├── RemoveResourceForm.tsx
│   │   │   │   │   │   ├── SecurityPage.tsx
│   │   │   │   │   │   ├── UsernameForm.tsx
│   │   │   │   │   │   ├── UsernameSection.tsx
│   │   │   │   │   │   ├── UserProfileAvatarUploader.tsx
│   │   │   │   │   │   ├── UserProfileNavbar.tsx
│   │   │   │   │   │   ├── UserProfileRoutes.tsx
│   │   │   │   │   │   ├── UserProfileSection.tsx
│   │   │   │   │   │   ├── utils.ts
│   │   │   │   │   │   ├── VerifyTOTP.tsx
│   │   │   │   │   │   ├── VerifyWithCode.tsx
│   │   │   │   │   │   ├── VerifyWithEnterpriseConnection.tsx
│   │   │   │   │   │   ├── VerifyWithLink.tsx
│   │   │   │   │   │   ├── Web3Form.tsx
│   │   │   │   │   │   └── Web3Section.tsx
│   │   │   │   │   ├── UserVerification
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   ├── UVFactorOne.test.tsx
│   │   │   │   │   │   │   └── UVFactorTwo.test.tsx
│   │   │   │   │   │   ├── AlternativeMethods.tsx
│   │   │   │   │   │   ├── HavingTrouble.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── use-after-verification.ts
│   │   │   │   │   │   ├── useReverificationAlternativeStrategies.ts
│   │   │   │   │   │   ├── UserVerificationFactorOne.tsx
│   │   │   │   │   │   ├── UserVerificationFactorOnePassword.tsx
│   │   │   │   │   │   ├── UserVerificationFactorTwo.tsx
│   │   │   │   │   │   ├── UserVerificationFactorTwoTOTP.tsx
│   │   │   │   │   │   ├── useUserVerificationSession.tsx
│   │   │   │   │   │   ├── utils.ts
│   │   │   │   │   │   ├── UVFactorOneCodeForm.tsx
│   │   │   │   │   │   ├── UVFactorOneEmailCodeCard.tsx
│   │   │   │   │   │   ├── UVFactorOnePasskeysCard.tsx
│   │   │   │   │   │   ├── UVFactorOnePhoneCodeCard.tsx
│   │   │   │   │   │   ├── UVFactorTwoAlternativeMethods.tsx
│   │   │   │   │   │   ├── UVFactorTwoBackupCodeCard.tsx
│   │   │   │   │   │   ├── UVFactorTwoCodeForm.tsx
│   │   │   │   │   │   ├── UVFactorTwoPhoneCodeCard.tsx
│   │   │   │   │   │   └── withHavingTrouble.tsx
│   │   │   │   │   └── Waitlist
│   │   │   │   │       ├── __tests__
│   │   │   │   │       │   └── Waitlist.test.tsx
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       ├── WaitlistForm.tsx
│   │   │   │   │       └── waitlistFormHelpers.ts
│   │   │   │   ├── Components.tsx
│   │   │   │   ├── constants.ts
│   │   │   │   ├── contexts
│   │   │   │   │   ├── AcceptedUserInvitations.tsx
│   │   │   │   │   ├── ClerkUIComponentsContext.tsx
│   │   │   │   │   ├── components
│   │   │   │   │   │   ├── ApiKeys.ts
│   │   │   │   │   │   ├── Checkout.ts
│   │   │   │   │   │   ├── CreateOrganization.ts
│   │   │   │   │   │   ├── GoogleOneTap.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── OAuthConsent.ts
│   │   │   │   │   │   ├── OrganizationList.ts
│   │   │   │   │   │   ├── OrganizationProfile.ts
│   │   │   │   │   │   ├── OrganizationSwitcher.ts
│   │   │   │   │   │   ├── Plans.tsx
│   │   │   │   │   │   ├── PricingTable.ts
│   │   │   │   │   │   ├── SessionTasks.ts
│   │   │   │   │   │   ├── SignIn.ts
│   │   │   │   │   │   ├── SignOut.ts
│   │   │   │   │   │   ├── SignUp.ts
│   │   │   │   │   │   ├── SubscriberType.ts
│   │   │   │   │   │   ├── SubscriptionDetails.ts
│   │   │   │   │   │   ├── UserAvatar.ts
│   │   │   │   │   │   ├── UserButton.ts
│   │   │   │   │   │   ├── UserProfile.ts
│   │   │   │   │   │   ├── UserVerification.ts
│   │   │   │   │   │   └── Waitlist.ts
│   │   │   │   │   ├── CoreClerkContextWrapper.tsx
│   │   │   │   │   ├── CoreClientContext.tsx
│   │   │   │   │   ├── CoreSessionContext.tsx
│   │   │   │   │   ├── CoreUserContext.tsx
│   │   │   │   │   ├── EnvironmentContext.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── OptionsContext.tsx
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── customizables
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── elementDescriptors.test.tsx
│   │   │   │   │   │   ├── FlowRoot.spec.tsx
│   │   │   │   │   │   ├── makeCustomizable.test.tsx
│   │   │   │   │   │   ├── parseAppearance.test.tsx
│   │   │   │   │   │   ├── parseVariables.test.ts
│   │   │   │   │   │   └── test-utils.ts
│   │   │   │   │   ├── AppearanceContext.tsx
│   │   │   │   │   ├── classGeneration.ts
│   │   │   │   │   ├── elementDescriptors.ts
│   │   │   │   │   ├── Flow.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── makeCustomizable.tsx
│   │   │   │   │   ├── makeResponsive.tsx
│   │   │   │   │   ├── parseAppearance.ts
│   │   │   │   │   ├── parseVariables.ts
│   │   │   │   │   └── sanitizeDomProps.tsx
│   │   │   │   ├── elements
│   │   │   │   │   ├── __mocks__
│   │   │   │   │   │   └── @formkit
│   │   │   │   │   │       └── auto-animate
│   │   │   │   │   │           └── react
│   │   │   │   │   │               └── index.ts
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── CodeControl.test.tsx
│   │   │   │   │   │   ├── LinkRenderer.test.tsx
│   │   │   │   │   │   ├── PlainInput.test.tsx
│   │   │   │   │   │   ├── RadioGroup.test.tsx
│   │   │   │   │   │   └── TimerButton.test.tsx
│   │   │   │   │   ├── Action
│   │   │   │   │   │   ├── ActionCard.tsx
│   │   │   │   │   │   ├── ActionClosed.tsx
│   │   │   │   │   │   ├── ActionOpen.tsx
│   │   │   │   │   │   ├── ActionRoot.tsx
│   │   │   │   │   │   ├── ActionTrigger.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Actions.tsx
│   │   │   │   │   ├── Alert.tsx
│   │   │   │   │   ├── Animated.tsx
│   │   │   │   │   ├── ApplicationLogo.tsx
│   │   │   │   │   ├── ArrowBlockButton.tsx
│   │   │   │   │   ├── Avatar.tsx
│   │   │   │   │   ├── AvatarUploader.tsx
│   │   │   │   │   ├── BackLink.tsx
│   │   │   │   │   ├── Badge.tsx
│   │   │   │   │   ├── CaptchaElement.tsx
│   │   │   │   │   ├── Card
│   │   │   │   │   │   ├── CardAction.tsx
│   │   │   │   │   │   ├── CardAlert.tsx
│   │   │   │   │   │   ├── CardClerkAndPagesTag.tsx
│   │   │   │   │   │   ├── CardContent.tsx
│   │   │   │   │   │   ├── CardFooter.tsx
│   │   │   │   │   │   ├── CardRoot.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── ClipboardInput.tsx
│   │   │   │   │   ├── CodeControl.tsx
│   │   │   │   │   ├── contexts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── DataTable.tsx
│   │   │   │   │   ├── DevModeNotice.tsx
│   │   │   │   │   ├── Divider.tsx
│   │   │   │   │   ├── Drawer.tsx
│   │   │   │   │   ├── ErrorCard.tsx
│   │   │   │   │   ├── FieldControl.tsx
│   │   │   │   │   ├── Form.tsx
│   │   │   │   │   ├── FormattedPhoneNumber.tsx
│   │   │   │   │   ├── FormButtons.tsx
│   │   │   │   │   ├── FormContainer.tsx
│   │   │   │   │   ├── FormControl.tsx
│   │   │   │   │   ├── FullHeightLoader.tsx
│   │   │   │   │   ├── Gauge.tsx
│   │   │   │   │   ├── Header.tsx
│   │   │   │   │   ├── IconButton.tsx
│   │   │   │   │   ├── IconCircle.tsx
│   │   │   │   │   ├── IdentityPreview.tsx
│   │   │   │   │   ├── InformationBox.tsx
│   │   │   │   │   ├── InputGroup.tsx
│   │   │   │   │   ├── InputWithIcon.tsx
│   │   │   │   │   ├── InvisibleRootBox.tsx
│   │   │   │   │   ├── LegalConsentCheckbox.tsx
│   │   │   │   │   ├── LineItems.tsx
│   │   │   │   │   ├── LinkRenderer.tsx
│   │   │   │   │   ├── LoadingCard.tsx
│   │   │   │   │   ├── Menu.tsx
│   │   │   │   │   ├── Modal.tsx
│   │   │   │   │   ├── Navbar.tsx
│   │   │   │   │   ├── OrganizationAvatar.tsx
│   │   │   │   │   ├── OrganizationPreview.tsx
│   │   │   │   │   ├── Pagination.tsx
│   │   │   │   │   ├── PasswordInput.tsx
│   │   │   │   │   ├── PersonalWorkspacePreview.tsx
│   │   │   │   │   ├── PhoneInput
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── useFormattedPhoneNumber.test.ts
│   │   │   │   │   │   ├── countryCodeData.ts
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── useFormattedPhoneNumber.ts
│   │   │   │   │   ├── Popover.tsx
│   │   │   │   │   ├── PopoverCard.tsx
│   │   │   │   │   ├── Portal.tsx
│   │   │   │   │   ├── PreviewButton.tsx
│   │   │   │   │   ├── ProfileCard
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── ProfileCardContent.tsx
│   │   │   │   │   │   └── ProfileCardRoot.tsx
│   │   │   │   │   ├── RadioGroup.tsx
│   │   │   │   │   ├── ReversibleContainer.tsx
│   │   │   │   │   ├── RootBox.tsx
│   │   │   │   │   ├── RouterLink.tsx
│   │   │   │   │   ├── Section.tsx
│   │   │   │   │   ├── SegmentedControl.tsx
│   │   │   │   │   ├── Select.tsx
│   │   │   │   │   ├── SocialButtons.tsx
│   │   │   │   │   ├── SuccessPage.tsx
│   │   │   │   │   ├── Switch.tsx
│   │   │   │   │   ├── Tabs.tsx
│   │   │   │   │   ├── TagInput.tsx
│   │   │   │   │   ├── ThreeDotsMenu.tsx
│   │   │   │   │   ├── TimerButton.tsx
│   │   │   │   │   ├── Tooltip.tsx
│   │   │   │   │   ├── UserAvatar.tsx
│   │   │   │   │   ├── UserPreview.tsx
│   │   │   │   │   ├── utils.ts
│   │   │   │   │   ├── VerificationCodeCard.tsx
│   │   │   │   │   ├── VerificationLinkCard.tsx
│   │   │   │   │   └── withAvatarShimmer.tsx
│   │   │   │   ├── foundations
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   └── createInternalTheme.test.ts
│   │   │   │   │   ├── borders.ts
│   │   │   │   │   ├── colors.ts
│   │   │   │   │   ├── createInternalTheme.ts
│   │   │   │   │   ├── defaultFoundations.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── opacity.ts
│   │   │   │   │   ├── shadows.ts
│   │   │   │   │   ├── sizes.ts
│   │   │   │   │   ├── transitions.ts
│   │   │   │   │   ├── typography.ts
│   │   │   │   │   └── zIndices.ts
│   │   │   │   ├── hooks
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── useCoreOrganization.test.tsx
│   │   │   │   │   │   ├── useCoreOrganizationList.test.tsx
│   │   │   │   │   │   ├── useDevMode.test.tsx
│   │   │   │   │   │   ├── useDirection.test.ts
│   │   │   │   │   │   ├── useEnabledThirdPartyProviders.test.tsx
│   │   │   │   │   │   ├── usePasswordComplexity.test.tsx
│   │   │   │   │   │   └── useSupportEmail.test.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── useAlternativeStrategies.ts
│   │   │   │   │   ├── useClerkModalStateParams.tsx
│   │   │   │   │   ├── useClipboard.ts
│   │   │   │   │   ├── useDebounce.ts
│   │   │   │   │   ├── useDevMode.tsx
│   │   │   │   │   ├── useDirection.ts
│   │   │   │   │   ├── useEmailLink.ts
│   │   │   │   │   ├── useEnabledThirdPartyProviders.tsx
│   │   │   │   │   ├── useEnterpriseSSOLink.ts
│   │   │   │   │   ├── useFetch.ts
│   │   │   │   │   ├── useFetchRoles.ts
│   │   │   │   │   ├── useInView.ts
│   │   │   │   │   ├── useLoadingStatus.ts
│   │   │   │   │   ├── useMultipleSessions.ts
│   │   │   │   │   ├── useNavigateToFlowStart.ts
│   │   │   │   │   ├── useOrganizationListInView.ts
│   │   │   │   │   ├── usePassword.ts
│   │   │   │   │   ├── usePasswordComplexity.ts
│   │   │   │   │   ├── usePopover.ts
│   │   │   │   │   ├── usePrefersReducedMotion.ts
│   │   │   │   │   ├── usePreloadTasks.ts
│   │   │   │   │   ├── useSafeState.ts
│   │   │   │   │   ├── useScrollLock.ts
│   │   │   │   │   ├── useSearchInput.ts
│   │   │   │   │   ├── useSetSessionWithTimeout.ts
│   │   │   │   │   ├── useSupportEmail.ts
│   │   │   │   │   ├── useTabState.ts
│   │   │   │   │   └── useWindowEventListener.ts
│   │   │   │   ├── icons
│   │   │   │   │   ├── add.svg
│   │   │   │   │   ├── apple-pay.svg
│   │   │   │   │   ├── arrow-left.svg
│   │   │   │   │   ├── arrow-right-button.svg
│   │   │   │   │   ├── arrow-right.svg
│   │   │   │   │   ├── arrows-up-down.svg
│   │   │   │   │   ├── auth-app.svg
│   │   │   │   │   ├── billing.svg
│   │   │   │   │   ├── block.svg
│   │   │   │   │   ├── caret-left.svg
│   │   │   │   │   ├── caret-right.svg
│   │   │   │   │   ├── caret.svg
│   │   │   │   │   ├── chat-alt.svg
│   │   │   │   │   ├── check-circle.svg
│   │   │   │   │   ├── check.svg
│   │   │   │   │   ├── checkmark-filled.svg
│   │   │   │   │   ├── chevron-down.svg
│   │   │   │   │   ├── chevron-up-down.svg
│   │   │   │   │   ├── clipboard-outline.svg
│   │   │   │   │   ├── clipboard.svg
│   │   │   │   │   ├── close.svg
│   │   │   │   │   ├── code.svg
│   │   │   │   │   ├── cog-filled.svg
│   │   │   │   │   ├── cog.svg
│   │   │   │   │   ├── copy.svg
│   │   │   │   │   ├── credit-card.svg
│   │   │   │   │   ├── device-laptop.svg
│   │   │   │   │   ├── device-mobile.svg
│   │   │   │   │   ├── dot-circle-horizontal.svg
│   │   │   │   │   ├── download.svg
│   │   │   │   │   ├── email.svg
│   │   │   │   │   ├── exclamation-circle.svg
│   │   │   │   │   ├── exclamation-triangle.svg
│   │   │   │   │   ├── eye-slash.svg
│   │   │   │   │   ├── eye.svg
│   │   │   │   │   ├── fingerprint.svg
│   │   │   │   │   ├── folder.svg
│   │   │   │   │   ├── generic-pay.svg
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── information-circle.svg
│   │   │   │   │   ├── link.svg
│   │   │   │   │   ├── lock-closed.svg
│   │   │   │   │   ├── lock-dotted-circle.svg
│   │   │   │   │   ├── logo-mark-new.svg
│   │   │   │   │   ├── logo-mark.svg
│   │   │   │   │   ├── magnifying-glass.svg
│   │   │   │   │   ├── menu.svg
│   │   │   │   │   ├── minus.svg
│   │   │   │   │   ├── mobile-small.svg
│   │   │   │   │   ├── mobile.svg
│   │   │   │   │   ├── organization.svg
│   │   │   │   │   ├── pencil-edit.svg
│   │   │   │   │   ├── pencil.svg
│   │   │   │   │   ├── plans.svg
│   │   │   │   │   ├── plus.svg
│   │   │   │   │   ├── print.svg
│   │   │   │   │   ├── question-mark.svg
│   │   │   │   │   ├── request-auth.svg
│   │   │   │   │   ├── rotate-left-right.svg
│   │   │   │   │   ├── selector.svg
│   │   │   │   │   ├── signout-double.svg
│   │   │   │   │   ├── signout.svg
│   │   │   │   │   ├── spinner-jumbo.svg
│   │   │   │   │   ├── switch-arrow-right.svg
│   │   │   │   │   ├── switch-arrows.svg
│   │   │   │   │   ├── threeDots.svg
│   │   │   │   │   ├── tick-shield.svg
│   │   │   │   │   ├── times.svg
│   │   │   │   │   ├── trash.svg
│   │   │   │   │   ├── upload.svg
│   │   │   │   │   ├── user.svg
│   │   │   │   │   ├── userAdd.svg
│   │   │   │   │   └── users.svg
│   │   │   │   ├── lazyModules
│   │   │   │   │   ├── common.ts
│   │   │   │   │   ├── components.ts
│   │   │   │   │   ├── drawers.tsx
│   │   │   │   │   ├── MountedCheckoutDrawer.tsx
│   │   │   │   │   ├── MountedPlanDetailDrawer.tsx
│   │   │   │   │   ├── MountedSubscriptionDetailDrawer.tsx
│   │   │   │   │   └── providers.tsx
│   │   │   │   ├── localization
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── applyTokensToString.test.ts
│   │   │   │   │   │   ├── makeLocalizable.test.tsx
│   │   │   │   │   │   └── parseLocalization.test.tsx
│   │   │   │   │   ├── applyTokensToString.ts
│   │   │   │   │   ├── defaultEnglishResource.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── localizationKeys.ts
│   │   │   │   │   ├── localizationModifiers.ts
│   │   │   │   │   ├── makeLocalizable.tsx
│   │   │   │   │   └── parseLocalization.ts
│   │   │   │   ├── portal
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── primitives
│   │   │   │   │   ├── Alert.tsx
│   │   │   │   │   ├── AlertIcon.tsx
│   │   │   │   │   ├── applyDataStateProps.ts
│   │   │   │   │   ├── Badge.tsx
│   │   │   │   │   ├── Box.tsx
│   │   │   │   │   ├── Button.tsx
│   │   │   │   │   ├── Dd.tsx
│   │   │   │   │   ├── Dl.tsx
│   │   │   │   │   ├── Dt.tsx
│   │   │   │   │   ├── Flex.tsx
│   │   │   │   │   ├── Form.tsx
│   │   │   │   │   ├── FormErrorText.tsx
│   │   │   │   │   ├── FormInfoText.tsx
│   │   │   │   │   ├── FormLabel.tsx
│   │   │   │   │   ├── FormSuccessText.tsx
│   │   │   │   │   ├── FormWarningText.tsx
│   │   │   │   │   ├── gapPropertyCompat.ts
│   │   │   │   │   ├── Grid.tsx
│   │   │   │   │   ├── Heading.tsx
│   │   │   │   │   ├── hooks
│   │   │   │   │   │   ├── useFormField.tsx
│   │   │   │   │   │   └── useInput.ts
│   │   │   │   │   ├── Hr.tsx
│   │   │   │   │   ├── Icon.tsx
│   │   │   │   │   ├── Image.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── Input.tsx
│   │   │   │   │   ├── Link.tsx
│   │   │   │   │   ├── NotificationBadge.tsx
│   │   │   │   │   ├── Span.tsx
│   │   │   │   │   ├── Spinner.tsx
│   │   │   │   │   ├── Table.tsx
│   │   │   │   │   ├── Tbody.tsx
│   │   │   │   │   ├── Td.tsx
│   │   │   │   │   ├── Text.tsx
│   │   │   │   │   ├── Th.tsx
│   │   │   │   │   ├── Thead.tsx
│   │   │   │   │   └── Tr.tsx
│   │   │   │   ├── router
│   │   │   │   │   ├── __mocks__
│   │   │   │   │   │   └── RouteContext.tsx
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── HashRouter.test.tsx
│   │   │   │   │   │   ├── PathRouter.test.tsx
│   │   │   │   │   │   ├── Switch.test.tsx
│   │   │   │   │   │   └── VirtualRouter.test.tsx
│   │   │   │   │   ├── BaseRouter.tsx
│   │   │   │   │   ├── HashRouter.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── newPaths.ts
│   │   │   │   │   ├── PathRouter.tsx
│   │   │   │   │   ├── pathToRegexp.ts
│   │   │   │   │   ├── Route.tsx
│   │   │   │   │   ├── RouteContext.tsx
│   │   │   │   │   ├── Switch.tsx
│   │   │   │   │   └── VirtualRouter.tsx
│   │   │   │   ├── styledSystem
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   └── createVariants.test.ts
│   │   │   │   │   ├── animations.ts
│   │   │   │   │   ├── breakpoints.tsx
│   │   │   │   │   ├── common.ts
│   │   │   │   │   ├── createCssVariables.ts
│   │   │   │   │   ├── createVariants.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── InternalThemeProvider.tsx
│   │   │   │   │   ├── StyleCacheProvider.tsx
│   │   │   │   │   └── types.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils
│   │   │   │       ├── __tests__
│   │   │   │       │   ├── createCustomMenuItems.test.ts
│   │   │   │       │   ├── createCustomPages.test.ts
│   │   │   │       │   ├── cssSupports.test.ts
│   │   │   │       │   ├── cssVariables.test.ts
│   │   │   │       │   ├── factorSorting.test.ts
│   │   │   │       │   ├── formatSafeIdentifier.test.ts
│   │   │   │       │   ├── intl.test.ts
│   │   │   │       │   ├── originPrefersPopup.test.ts
│   │   │   │       │   ├── passwordUtils.test.tsx
│   │   │   │       │   ├── phoneUtils.test.ts
│   │   │   │       │   └── truncateTextWithEndVisible.test.ts
│   │   │   │       ├── colors
│   │   │   │       │   ├── __tests__
│   │   │   │       │   │   ├── constants.test.ts
│   │   │   │       │   │   ├── index.test.ts
│   │   │   │       │   │   ├── legacy.test.ts
│   │   │   │       │   │   ├── modern.test.ts
│   │   │   │       │   │   ├── scales.test.ts
│   │   │   │       │   │   └── utils.test.ts
│   │   │   │       │   ├── constants.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── legacy.ts
│   │   │   │       │   ├── modern.ts
│   │   │   │       │   ├── README.md
│   │   │   │       │   ├── scales.ts
│   │   │   │       │   └── utils.ts
│   │   │   │       ├── containsAllOf.ts
│   │   │   │       ├── createCustomMenuItems.tsx
│   │   │   │       ├── createCustomPages.tsx
│   │   │   │       ├── createInfiniteAccessProxy.ts
│   │   │   │       ├── createSlug.ts
│   │   │   │       ├── cssSupports.ts
│   │   │   │       ├── cssVariables.ts
│   │   │   │       ├── errorHandler.ts
│   │   │   │       ├── ExternalElementMounter.tsx
│   │   │   │       ├── factorSorting.ts
│   │   │   │       ├── formatDate.ts
│   │   │   │       ├── formatSafeIdentifier.ts
│   │   │   │       ├── fromEntries.ts
│   │   │   │       ├── getClosestProfileScrollBox.ts
│   │   │   │       ├── getRelativeToNowDateKey.ts
│   │   │   │       ├── getValidReactChildren.ts
│   │   │   │       ├── intl.ts
│   │   │   │       ├── isMobileDevice.ts
│   │   │   │       ├── mergeRefs.ts
│   │   │   │       ├── originPrefersPopup.ts
│   │   │   │       ├── passwordUtils.ts
│   │   │   │       ├── phoneUtils.ts
│   │   │   │       ├── range.ts
│   │   │   │       ├── readObjectPath.ts
│   │   │   │       ├── removeUndefinedProps.ts
│   │   │   │       ├── roleLocalizationKey.ts
│   │   │   │       ├── runtimeEnvironment.ts
│   │   │   │       ├── sanitizeCustomLinkURL.ts
│   │   │   │       ├── sleep.ts
│   │   │   │       ├── timeAgo.ts
│   │   │   │       ├── truncateTextWithEndVisible.ts
│   │   │   │       ├── useFormControl.ts
│   │   │   │       ├── usernameUtils.ts
│   │   │   │       └── web3CallbackErrorHandler.ts
│   │   │   └── utils
│   │   │       ├── __tests__
│   │   │       │   ├── appearance.test.ts
│   │   │       │   ├── captcha.test.ts
│   │   │       │   ├── completeSignUpFlow.test.ts
│   │   │       │   ├── date.test.ts
│   │   │       │   ├── dynamicParamParser.test.ts
│   │   │       │   ├── email.test.ts
│   │   │       │   ├── encoders.test.ts
│   │   │       │   ├── errors.test.ts
│   │   │       │   ├── filterUndefinedValues.test.ts
│   │   │       │   ├── getClerkQueryParam.test.ts
│   │   │       │   ├── ignoreEventValue.test.ts
│   │   │       │   ├── instance.test.ts
│   │   │       │   ├── jwt.test.ts
│   │   │       │   ├── locale.test.ts
│   │   │       │   ├── localStorage.test.ts
│   │   │       │   ├── memoizeStateListenerCallback.test.ts
│   │   │       │   ├── organization.test.ts
│   │   │       │   ├── passkeys.test.ts
│   │   │       │   ├── path.test.ts
│   │   │       │   ├── queryStateParams.test.ts
│   │   │       │   ├── querystring.test.ts
│   │   │       │   ├── redirectUrls.test.ts
│   │   │       │   ├── resourceParams.test.ts
│   │   │       │   ├── runAsyncResourceTask.test.ts
│   │   │       │   ├── tokenId.test.ts
│   │   │       │   └── url.test.ts
│   │   │       ├── appearance.ts
│   │   │       ├── assertNoLegacyProp.ts
│   │   │       ├── authenticateWithPopup.ts
│   │   │       ├── beforeUnloadTracker.ts
│   │   │       ├── billing.ts
│   │   │       ├── captcha
│   │   │       │   ├── CaptchaChallenge.ts
│   │   │       │   ├── constants.ts
│   │   │       │   ├── getCaptchaToken.ts
│   │   │       │   ├── retrieveCaptchaInfo.ts
│   │   │       │   ├── turnstile.ts
│   │   │       │   └── types.ts
│   │   │       ├── completeSignUpFlow.ts
│   │   │       ├── componentGuards.ts
│   │   │       ├── convertPageToOffsetSearchParams.ts
│   │   │       ├── date.ts
│   │   │       ├── debug.ts
│   │   │       ├── disambiguateRedirectOptions.ts
│   │   │       ├── dynamicParamParser.ts
│   │   │       ├── email.ts
│   │   │       ├── encoders.ts
│   │   │       ├── errors.ts
│   │   │       ├── errorThrower.ts
│   │   │       ├── filterUndefinedValues.ts
│   │   │       ├── getClerkQueryParam.ts
│   │   │       ├── hex.ts
│   │   │       ├── ignoreEventValue.ts
│   │   │       ├── image.ts
│   │   │       ├── index.ts
│   │   │       ├── injectedWeb3Providers.ts
│   │   │       ├── instance.ts
│   │   │       ├── jwt.ts
│   │   │       ├── locale.ts
│   │   │       ├── localStorage.ts
│   │   │       ├── memoizeStateListenerCallback.ts
│   │   │       ├── normalizeRoutingOptions.ts
│   │   │       ├── one-tap.ts
│   │   │       ├── organization.ts
│   │   │       ├── pageLifecycle.ts
│   │   │       ├── passkeys.ts
│   │   │       ├── passwords
│   │   │       │   ├── complexity.ts
│   │   │       │   ├── password.ts
│   │   │       │   └── strength.ts
│   │   │       ├── path.ts
│   │   │       ├── props.ts
│   │   │       ├── queryStateParams.ts
│   │   │       ├── querystring.ts
│   │   │       ├── redirectUrls.ts
│   │   │       ├── resourceParams.ts
│   │   │       ├── runAsyncResourceTask.ts
│   │   │       ├── runtime.ts
│   │   │       ├── setWebpackChunkPublicPath.ts
│   │   │       ├── tokenId.ts
│   │   │       ├── url.ts
│   │   │       ├── user.ts
│   │   │       ├── web3.ts
│   │   │       ├── windowNavigate.ts
│   │   │       └── zxcvbn.ts
│   │   ├── svgTransform.js
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.dev.json
│   │   ├── tsconfig.json
│   │   ├── turbo.json
│   │   ├── vercel.json
│   │   ├── vitest.config.mts
│   │   └── vitest.setup.mts
│   ├── dev-cli
│   │   ├── bin
│   │   │   └── cli.js
│   │   ├── CHANGELOG.md
│   │   ├── jsconfig.json
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── schema.json
│   │   └── src
│   │       ├── cli.js
│   │       ├── codemods
│   │       │   ├── index.js
│   │       │   └── transforms
│   │       │       └── add-clerkjsurl-to-provider.cjs
│   │       ├── commands
│   │       │   ├── auth.js
│   │       │   ├── config.js
│   │       │   ├── init.js
│   │       │   ├── set-instance.js
│   │       │   ├── set-root.js
│   │       │   ├── setup.js
│   │       │   └── watch.js
│   │       └── utils
│   │           ├── errors.js
│   │           ├── getClerkPackages.js
│   │           ├── getConfiguration.js
│   │           ├── getMonorepoRoot.js
│   │           ├── getPackageJSON.js
│   │           └── getPackageVersion.js
│   ├── elements
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── examples
│   │   │   └── nextjs
│   │   │       ├── .env.local.example
│   │   │       ├── .gitignore
│   │   │       ├── app
│   │   │       │   ├── example
│   │   │       │   │   └── page.tsx
│   │   │       │   ├── favicon.ico
│   │   │       │   ├── globals.css
│   │   │       │   ├── layout.tsx
│   │   │       │   ├── modal
│   │   │       │   │   └── page.tsx
│   │   │       │   ├── otp-playground
│   │   │       │   │   └── page.tsx
│   │   │       │   ├── page.tsx
│   │   │       │   ├── sign-in
│   │   │       │   │   └── [[...sign-in]]
│   │   │       │   │       └── page.tsx
│   │   │       │   └── sign-up
│   │   │       │       └── [[...sign-up]]
│   │   │       │           └── page.tsx
│   │   │       ├── components
│   │   │       │   ├── design.tsx
│   │   │       │   ├── form.tsx
│   │   │       │   ├── social-providers.tsx
│   │   │       │   └── spinner.tsx
│   │   │       ├── middleware.ts
│   │   │       ├── next.config.js
│   │   │       ├── package.json
│   │   │       ├── postcss.config.js
│   │   │       ├── public
│   │   │       │   ├── clerk.svg
│   │   │       │   ├── next.svg
│   │   │       │   └── vercel.svg
│   │   │       ├── README.md
│   │   │       ├── tailwind.config.ts
│   │   │       └── tsconfig.json
│   │   ├── jest.config.js
│   │   ├── jest.setup.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── index.ts
│   │   │   ├── internals
│   │   │   │   ├── constants
│   │   │   │   │   └── index.ts
│   │   │   │   ├── errors
│   │   │   │   │   └── index.ts
│   │   │   │   ├── machines
│   │   │   │   │   ├── form
│   │   │   │   │   │   ├── form.context.ts
│   │   │   │   │   │   ├── form.machine.ts
│   │   │   │   │   │   ├── form.types.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── shared
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── shared.actions.test.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── shared.actions.ts
│   │   │   │   │   │   ├── shared.actors.ts
│   │   │   │   │   │   └── shared.types.ts
│   │   │   │   │   ├── sign-in
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── router.selectors.test.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reset-password.machine.ts
│   │   │   │   │   │   ├── reset-password.types.ts
│   │   │   │   │   │   ├── router.machine.ts
│   │   │   │   │   │   ├── router.selectors.ts
│   │   │   │   │   │   ├── router.types.ts
│   │   │   │   │   │   ├── start.machine.ts
│   │   │   │   │   │   ├── start.types.ts
│   │   │   │   │   │   ├── utils
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── starting-factors.ts
│   │   │   │   │   │   ├── verification.machine.ts
│   │   │   │   │   │   └── verification.types.ts
│   │   │   │   │   ├── sign-up
│   │   │   │   │   │   ├── continue.machine.ts
│   │   │   │   │   │   ├── continue.types.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── router.machine.ts
│   │   │   │   │   │   ├── router.types.ts
│   │   │   │   │   │   ├── start.machine.ts
│   │   │   │   │   │   ├── start.types.ts
│   │   │   │   │   │   ├── utils
│   │   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   │   └── fields-to-params.test.ts
│   │   │   │   │   │   │   ├── fields-to-params.ts
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── verification.machine.ts
│   │   │   │   │   │   └── verification.types.ts
│   │   │   │   │   ├── third-party
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── third-party.actors.ts
│   │   │   │   │   │   ├── third-party.machine.ts
│   │   │   │   │   │   └── third-party.types.ts
│   │   │   │   │   ├── types
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── router.types.ts
│   │   │   │   │   └── utils
│   │   │   │   │       ├── __tests__
│   │   │   │   │       │   ├── assert.test.ts
│   │   │   │   │       │   ├── formatters.test.ts
│   │   │   │   │       │   ├── next.test.ts
│   │   │   │   │       │   └── strategies.test.ts
│   │   │   │   │       ├── assert.ts
│   │   │   │   │       ├── clerkjs.ts
│   │   │   │   │       ├── formatters.ts
│   │   │   │   │       ├── next.ts
│   │   │   │   │       └── strategies.ts
│   │   │   │   └── utils
│   │   │   │       └── inspector
│   │   │   │           ├── browser
│   │   │   │           │   └── index.ts
│   │   │   │           ├── console
│   │   │   │           │   ├── console.ts
│   │   │   │           │   └── index.ts
│   │   │   │           └── index.ts
│   │   │   ├── react
│   │   │   │   ├── common
│   │   │   │   │   ├── connections.tsx
│   │   │   │   │   ├── form
│   │   │   │   │   │   ├── field-error.tsx
│   │   │   │   │   │   ├── field-state.tsx
│   │   │   │   │   │   ├── field.tsx
│   │   │   │   │   │   ├── form.tsx
│   │   │   │   │   │   ├── global-error.tsx
│   │   │   │   │   │   ├── hooks
│   │   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   │   ├── use-field-feedback.test.ts
│   │   │   │   │   │   │   │   ├── use-form.test.tsx
│   │   │   │   │   │   │   │   ├── use-global-errors.test.ts
│   │   │   │   │   │   │   │   └── use-previous.test.ts
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── use-field-context.ts
│   │   │   │   │   │   │   ├── use-field-feedback.ts
│   │   │   │   │   │   │   ├── use-field-state.ts
│   │   │   │   │   │   │   ├── use-field.ts
│   │   │   │   │   │   │   ├── use-form.ts
│   │   │   │   │   │   │   ├── use-global-errors.ts
│   │   │   │   │   │   │   ├── use-input.tsx
│   │   │   │   │   │   │   ├── use-previous.ts
│   │   │   │   │   │   │   └── use-validity-state-context.ts
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── input.tsx
│   │   │   │   │   │   ├── label.tsx
│   │   │   │   │   │   ├── otp.tsx
│   │   │   │   │   │   ├── submit.tsx
│   │   │   │   │   │   ├── types.ts
│   │   │   │   │   │   └── utils
│   │   │   │   │   │       ├── __tests__
│   │   │   │   │   │       │   ├── determine-input-type-from-name.test.ts
│   │   │   │   │   │       │   └── enrich-field-state.test.ts
│   │   │   │   │   │       ├── determine-input-type-from-name.ts
│   │   │   │   │   │       ├── enrich-field-state.ts
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── link.tsx
│   │   │   │   │   └── loading.tsx
│   │   │   │   ├── hooks
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── use-active-states.hook.test.ts
│   │   │   │   │   │   ├── use-active-tags.hook.test.ts
│   │   │   │   │   │   └── use-focus.hook.test.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── use-active-states.hook.ts
│   │   │   │   │   ├── use-active-tags.hook.ts
│   │   │   │   │   ├── use-focus.hook.ts
│   │   │   │   │   ├── use-loading.hook.ts
│   │   │   │   │   ├── use-password.hook.ts
│   │   │   │   │   └── use-third-party-provider.hook.ts
│   │   │   │   ├── router
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── next.ts
│   │   │   │   │   └── virtual.ts
│   │   │   │   ├── sign-in
│   │   │   │   │   ├── action
│   │   │   │   │   │   ├── action.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── navigate.tsx
│   │   │   │   │   │   ├── resend.tsx
│   │   │   │   │   │   └── set-active-session.tsx
│   │   │   │   │   ├── captcha.tsx
│   │   │   │   │   ├── choose-session
│   │   │   │   │   │   ├── __tests__
│   │   │   │   │   │   │   └── choose-session.test.tsx
│   │   │   │   │   │   ├── choose-session.hooks.ts
│   │   │   │   │   │   ├── choose-session.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── choose-strategy.tsx
│   │   │   │   │   ├── context
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── router.context.ts
│   │   │   │   │   │   ├── sign-in-strategy.context.ts
│   │   │   │   │   │   └── strategies.context.ts
│   │   │   │   │   ├── identifiers.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── passkey.tsx
│   │   │   │   │   ├── reset-password.tsx
│   │   │   │   │   ├── root.tsx
│   │   │   │   │   ├── sso-callback.tsx
│   │   │   │   │   ├── start.tsx
│   │   │   │   │   ├── step.tsx
│   │   │   │   │   └── verifications.tsx
│   │   │   │   ├── sign-up
│   │   │   │   │   ├── action
│   │   │   │   │   │   ├── action.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── navigate.tsx
│   │   │   │   │   │   └── resend.tsx
│   │   │   │   │   ├── captcha.tsx
│   │   │   │   │   ├── context
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── router.context.ts
│   │   │   │   │   │   └── strategies.context.ts
│   │   │   │   │   ├── continue.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── restricted.tsx
│   │   │   │   │   ├── root.tsx
│   │   │   │   │   ├── start.tsx
│   │   │   │   │   ├── step.tsx
│   │   │   │   │   └── verifications.tsx
│   │   │   │   └── utils
│   │   │   │       ├── __tests__
│   │   │   │       │   └── map-scope-to-strategy.test.ts
│   │   │   │       ├── create-context-for-dom-validation.ts
│   │   │   │       ├── create-context-from-actor-ref.ts
│   │   │   │       ├── generate-password-error-text.ts
│   │   │   │       ├── is-react-fragment.ts
│   │   │   │       ├── is-valid-component-type.ts
│   │   │   │       ├── map-scope-to-strategy.ts
│   │   │   │       └── path-inference
│   │   │   │           ├── __tests__
│   │   │   │           │   ├── next.test.ts
│   │   │   │           │   └── utils.test.ts
│   │   │   │           ├── next.tsx
│   │   │   │           └── utils.ts
│   │   │   ├── types
│   │   │   │   ├── clerk.d.ts
│   │   │   │   ├── common.d.ts
│   │   │   │   └── global.d.ts
│   │   │   └── utils
│   │   │       ├── clerk-js.ts
│   │   │       ├── is-absolute-url.ts
│   │   │       ├── safe-access.ts
│   │   │       ├── test-utils.ts
│   │   │       └── third-party-strategies.ts
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   ├── tsup.config.ts
│   │   └── turbo.json
│   ├── expo
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── local-credentials
│   │   │   └── package.json
│   │   ├── package.json
│   │   ├── passkeys
│   │   │   └── package.json
│   │   ├── README.md
│   │   ├── resource-cache
│   │   │   └── package.json
│   │   ├── secure-store
│   │   │   └── package.json
│   │   ├── src
│   │   │   ├── cache
│   │   │   │   ├── dummy-data
│   │   │   │   │   ├── client-resource.ts
│   │   │   │   │   ├── environment-resource.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── MemoryTokenCache.ts
│   │   │   │   ├── ResourceCache.ts
│   │   │   │   └── types.ts
│   │   │   ├── components
│   │   │   │   ├── controlComponents.tsx
│   │   │   │   └── index.ts
│   │   │   ├── errorThrower.ts
│   │   │   ├── experimental.ts
│   │   │   ├── global.d.ts
│   │   │   ├── hooks
│   │   │   │   ├── __tests__
│   │   │   │   │   └── useSignInWithApple.test.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── useAuth.ts
│   │   │   │   ├── useOAuth.ts
│   │   │   │   ├── useSignInWithApple.ios.ts
│   │   │   │   ├── useSignInWithApple.ts
│   │   │   │   └── useSSO.ts
│   │   │   ├── index.ts
│   │   │   ├── local-credentials
│   │   │   │   ├── index.tsx
│   │   │   │   └── useLocalCredentials
│   │   │   │       ├── index.tsx
│   │   │   │       ├── shared.ts
│   │   │   │       ├── useLocalCredentials.ts
│   │   │   │       └── useLocalCredentials.web.ts
│   │   │   ├── passkeys
│   │   │   │   └── index.ts
│   │   │   ├── polyfills
│   │   │   │   ├── base64Polyfill.ts
│   │   │   │   └── index.ts
│   │   │   ├── provider
│   │   │   │   ├── ClerkProvider.tsx
│   │   │   │   └── singleton
│   │   │   │       ├── createClerkInstance.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── singleton.ts
│   │   │   │       ├── singleton.web.ts
│   │   │   │       └── types.ts
│   │   │   ├── resource-cache
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── dummy-test-data.ts
│   │   │   │   │   └── secure-store.test.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── resource-cache.ts
│   │   │   ├── secure-store
│   │   │   │   └── index.ts
│   │   │   ├── token-cache
│   │   │   │   └── index.ts
│   │   │   ├── utils
│   │   │   │   ├── errors.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── runtime.ts
│   │   │   └── web
│   │   │       ├── index.ts
│   │   │       └── uiComponents.tsx
│   │   ├── token-cache
│   │   │   └── package.json
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   ├── tsup.config.ts
│   │   ├── vitest.config.mts
│   │   ├── vitest.setup.mts
│   │   └── web
│   │       └── package.json
│   ├── expo-passkeys
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── android
│   │   │   ├── build.gradle
│   │   │   └── src
│   │   │       └── main
│   │   │           ├── AndroidManifest.xml
│   │   │           └── java
│   │   │               └── expo
│   │   │                   └── modules
│   │   │                       └── clerkexpopasskeys
│   │   │                           ├── ClerkExpoPasskeysExceptions.kt
│   │   │                           ├── ClerkExpoPasskeysModule.kt
│   │   │                           └── CredentialManager.kt
│   │   ├── app.json
│   │   ├── CHANGELOG.md
│   │   ├── expo-module.config.json
│   │   ├── ios
│   │   │   ├── AccountManager.swift
│   │   │   ├── ClerkExpoPasskeys.podspec
│   │   │   ├── ClerkExpoPasskeysModule.swift
│   │   │   └── Helpers.swift
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── ClerkExpoPasskeys.types.ts
│   │   │   ├── ClerkExpoPasskeysModule.ts
│   │   │   ├── ClerkExpoPasskeysModule.web.ts
│   │   │   ├── index.ts
│   │   │   └── utils.ts
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── express
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── env.d.ts
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── __snapshots__
│   │   │   │   │   └── exports.test.ts.snap
│   │   │   │   ├── clerkMiddleware.test.ts
│   │   │   │   ├── exports.test.ts
│   │   │   │   ├── getAuth.test.ts
│   │   │   │   ├── helpers.ts
│   │   │   │   └── requireAuth.test.ts
│   │   │   ├── authenticateRequest.ts
│   │   │   ├── clerkClient.ts
│   │   │   ├── clerkMiddleware.ts
│   │   │   ├── errors.ts
│   │   │   ├── getAuth.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── requireAuth.ts
│   │   │   ├── types.ts
│   │   │   ├── utils.ts
│   │   │   └── webhooks.ts
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── turbo.json
│   │   ├── vitest.config.mts
│   │   ├── vitest.setup.mts
│   │   └── webhooks
│   │       └── package.json
│   ├── fastify
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── __snapshots__
│   │   │   │   │   ├── clerkClient.test.ts.snap
│   │   │   │   │   ├── constants.test.ts.snap
│   │   │   │   │   ├── exports.test.ts.snap
│   │   │   │   │   └── getAuth.test.ts.snap
│   │   │   │   ├── clerkClient.test.ts
│   │   │   │   ├── clerkPlugin.test.ts
│   │   │   │   ├── constants.test.ts
│   │   │   │   ├── exports.test.ts
│   │   │   │   ├── getAuth.test.ts
│   │   │   │   └── withClerkMiddleware.test.ts
│   │   │   ├── clerkClient.ts
│   │   │   ├── clerkPlugin.ts
│   │   │   ├── constants.ts
│   │   │   ├── errors.ts
│   │   │   ├── getAuth.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── test
│   │   │   │   └── utils.ts
│   │   │   ├── types.ts
│   │   │   ├── utils.ts
│   │   │   ├── webhooks.ts
│   │   │   └── withClerkMiddleware.ts
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   ├── tsup.config.ts
│   │   ├── vitest.config.mts
│   │   ├── vitest.setup.mts
│   │   └── webhooks
│   │       └── package.json
│   ├── localizations
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── ar-SA.ts
│   │   │   ├── be-BY.ts
│   │   │   ├── bg-BG.ts
│   │   │   ├── bn-IN.ts
│   │   │   ├── ca-ES.ts
│   │   │   ├── cs-CZ.ts
│   │   │   ├── da-DK.ts
│   │   │   ├── de-DE.ts
│   │   │   ├── el-GR.ts
│   │   │   ├── en-GB.ts
│   │   │   ├── en-US.ts
│   │   │   ├── es-CR.ts
│   │   │   ├── es-ES.ts
│   │   │   ├── es-MX.ts
│   │   │   ├── es-UY.ts
│   │   │   ├── fa-IR.ts
│   │   │   ├── fi-FI.ts
│   │   │   ├── fr-FR.ts
│   │   │   ├── he-IL.ts
│   │   │   ├── hi-IN.ts
│   │   │   ├── hr-HR.ts
│   │   │   ├── hu-HU.ts
│   │   │   ├── id-ID.ts
│   │   │   ├── index.ts
│   │   │   ├── is-IS.ts
│   │   │   ├── it-IT.ts
│   │   │   ├── ja-JP.ts
│   │   │   ├── kk-KZ.ts
│   │   │   ├── ko-KR.ts
│   │   │   ├── mn-MN.ts
│   │   │   ├── ms-MY.ts
│   │   │   ├── nb-NO.ts
│   │   │   ├── nl-BE.ts
│   │   │   ├── nl-NL.ts
│   │   │   ├── pl-PL.ts
│   │   │   ├── pt-BR.ts
│   │   │   ├── pt-PT.ts
│   │   │   ├── ro-RO.ts
│   │   │   ├── ru-RU.ts
│   │   │   ├── sk-SK.ts
│   │   │   ├── sr-RS.ts
│   │   │   ├── sv-SE.ts
│   │   │   ├── ta-IN.ts
│   │   │   ├── te-IN.ts
│   │   │   ├── th-TH.ts
│   │   │   ├── tr-TR.ts
│   │   │   ├── uk-UA.ts
│   │   │   ├── utils
│   │   │   │   ├── enUS_v4.ts
│   │   │   │   ├── generate.ts
│   │   │   │   └── utils.ts
│   │   │   ├── vi-VN.ts
│   │   │   ├── zh-CN.ts
│   │   │   └── zh-TW.ts
│   │   ├── subpaths.mjs
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── nextjs
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── errors
│   │   │   └── package.json
│   │   ├── internal
│   │   │   └── package.json
│   │   ├── LICENSE
│   │   ├── package.cjs.json
│   │   ├── package.esm.json
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── server
│   │   │   └── package.json
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── keyless-custom-headers.test.ts
│   │   │   │   └── webhooks.test.ts
│   │   │   ├── app-router
│   │   │   │   ├── client
│   │   │   │   │   ├── ClerkProvider.tsx
│   │   │   │   │   ├── keyless-cookie-sync.tsx
│   │   │   │   │   ├── keyless-creator-reader.tsx
│   │   │   │   │   ├── useAwaitablePush.ts
│   │   │   │   │   ├── useAwaitableReplace.ts
│   │   │   │   │   └── useInternalNavFun.ts
│   │   │   │   ├── keyless-actions.ts
│   │   │   │   ├── server
│   │   │   │   │   ├── auth.ts
│   │   │   │   │   ├── ClerkProvider.tsx
│   │   │   │   │   ├── controlComponents.tsx
│   │   │   │   │   ├── currentUser.ts
│   │   │   │   │   ├── keyless-provider.tsx
│   │   │   │   │   └── utils.ts
│   │   │   │   └── server-actions.ts
│   │   │   ├── client-boundary
│   │   │   │   ├── ClerkProvider.tsx
│   │   │   │   ├── controlComponents.ts
│   │   │   │   ├── hooks
│   │   │   │   │   ├── useEnforceCatchAllRoute.tsx
│   │   │   │   │   ├── useEnforceRoutingProps.tsx
│   │   │   │   │   ├── usePagesRouter.tsx
│   │   │   │   │   ├── usePathnameWithoutCatchAll.tsx
│   │   │   │   │   └── useSafeLayoutEffect.tsx
│   │   │   │   ├── hooks.ts
│   │   │   │   ├── NextOptionsContext.tsx
│   │   │   │   ├── PromisifiedAuthProvider.tsx
│   │   │   │   └── uiComponents.tsx
│   │   │   ├── components.client.ts
│   │   │   ├── components.server.ts
│   │   │   ├── constants.ts
│   │   │   ├── errors.ts
│   │   │   ├── experimental.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── internal.ts
│   │   │   ├── pages
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── __snapshots__
│   │   │   │   │   │   └── exports.test.ts.snap
│   │   │   │   │   ├── exports.test.ts
│   │   │   │   │   └── index.test.tsx
│   │   │   │   └── ClerkProvider.tsx
│   │   │   ├── runtime
│   │   │   │   ├── browser
│   │   │   │   │   └── safe-node-apis.js
│   │   │   │   └── node
│   │   │   │       └── safe-node-apis.js
│   │   │   ├── server
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── __snapshots__
│   │   │   │   │   │   └── exports.test.ts.snap
│   │   │   │   │   ├── clerkClient.test.ts
│   │   │   │   │   ├── clerkMiddleware.test.ts
│   │   │   │   │   ├── content-security-policy.test.ts
│   │   │   │   │   ├── createGetAuth.test.ts
│   │   │   │   │   ├── exports.test.ts
│   │   │   │   │   └── getAuthDataFromRequest.test.ts
│   │   │   │   ├── buildClerkProps.ts
│   │   │   │   ├── clerkClient.ts
│   │   │   │   ├── clerkMiddleware.ts
│   │   │   │   ├── constants.ts
│   │   │   │   ├── content-security-policy.ts
│   │   │   │   ├── createClerkClient.ts
│   │   │   │   ├── createGetAuth.ts
│   │   │   │   ├── data
│   │   │   │   │   └── getAuthDataFromRequest.ts
│   │   │   │   ├── errors.ts
│   │   │   │   ├── errorThrower.ts
│   │   │   │   ├── fs
│   │   │   │   │   ├── middleware-location.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── headers-utils.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── keyless-custom-headers.ts
│   │   │   │   ├── keyless-log-cache.ts
│   │   │   │   ├── keyless-node.ts
│   │   │   │   ├── keyless-telemetry.ts
│   │   │   │   ├── keyless.ts
│   │   │   │   ├── middleware-storage.ts
│   │   │   │   ├── nextErrors.ts
│   │   │   │   ├── nextFetcher.ts
│   │   │   │   ├── protect.ts
│   │   │   │   ├── routeMatcher.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   ├── types
│   │   │   │   └── safe-node-apis.d.ts
│   │   │   ├── types.ts
│   │   │   ├── utils
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── debugLogger.test.ts
│   │   │   │   │   ├── matcher.test.ts
│   │   │   │   │   └── removeBasePath.test.ts
│   │   │   │   ├── clerk-js-script.tsx
│   │   │   │   ├── debugLogger.ts
│   │   │   │   ├── feature-flags.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── invalidateNextRouterCache.ts
│   │   │   │   ├── logFormatter.ts
│   │   │   │   ├── mergeNextClerkPropsWithEnv.ts
│   │   │   │   ├── only-try.ts
│   │   │   │   ├── removeBasePath.ts
│   │   │   │   ├── response.ts
│   │   │   │   ├── router-telemetry.ts
│   │   │   │   ├── sdk-versions.ts
│   │   │   │   └── serverRedirectWithAuth.ts
│   │   │   ├── vendor
│   │   │   │   ├── crypto-es.js
│   │   │   │   └── README.md
│   │   │   └── webhooks.ts
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   ├── tsup.config.ts
│   │   ├── typedoc.json
│   │   ├── vitest.config.mts
│   │   ├── vitest.setup.mts
│   │   └── webhooks
│   │       └── package.json
│   ├── nuxt
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── global.d.ts
│   │   │   ├── module.ts
│   │   │   └── runtime
│   │   │       ├── client
│   │   │       │   ├── index.ts
│   │   │       │   └── routeMatcher.ts
│   │   │       ├── components
│   │   │       │   └── index.ts
│   │   │       ├── composables
│   │   │       │   └── index.ts
│   │   │       ├── errors.ts
│   │   │       ├── plugin.ts
│   │   │       ├── server
│   │   │       │   ├── __tests__
│   │   │       │   │   ├── auth.test-d.ts
│   │   │       │   │   └── clerkMiddleware.test.ts
│   │   │       │   ├── clerkClient.ts
│   │   │       │   ├── clerkMiddleware.ts
│   │   │       │   ├── errors.ts
│   │   │       │   ├── getAuth.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── middleware.ts
│   │   │       │   ├── routeMatcher.ts
│   │   │       │   ├── types.ts
│   │   │       │   └── utils.ts
│   │   │       └── webhooks.ts
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   └── vitest.config.ts
│   ├── react
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── clerk.png
│   │   ├── docs
│   │   │   ├── use-auth.md
│   │   │   ├── use-sign-in.md
│   │   │   └── use-sign-up.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   └── isomorphicClerk.test.ts
│   │   │   ├── components
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── CheckoutButton.test.tsx
│   │   │   │   │   ├── OrganizationProfile.test.tsx
│   │   │   │   │   ├── OrganizationSwitcher.test.tsx
│   │   │   │   │   ├── PlanDetailsButton.test.tsx
│   │   │   │   │   ├── SignIn.test.tsx
│   │   │   │   │   ├── SignInButton.test.tsx
│   │   │   │   │   ├── SignInWithMetamaskButton.test.tsx
│   │   │   │   │   ├── SignOutButton.test.tsx
│   │   │   │   │   ├── SignUp.test.tsx
│   │   │   │   │   ├── SignUpButton.test.tsx
│   │   │   │   │   ├── SubscriptionDetailsButton.test.tsx
│   │   │   │   │   ├── UserAvatar.test.tsx
│   │   │   │   │   ├── UserButton.test.tsx
│   │   │   │   │   └── UserProfile.test.tsx
│   │   │   │   ├── CheckoutButton.tsx
│   │   │   │   ├── ClerkHostRenderer.tsx
│   │   │   │   ├── controlComponents.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── PlanDetailsButton.tsx
│   │   │   │   ├── SignInButton.tsx
│   │   │   │   ├── SignInWithMetamaskButton.tsx
│   │   │   │   ├── SignOutButton.tsx
│   │   │   │   ├── SignUpButton.tsx
│   │   │   │   ├── SubscriptionDetailsButton.tsx
│   │   │   │   ├── uiComponents.tsx
│   │   │   │   └── withClerk.tsx
│   │   │   ├── contexts
│   │   │   │   ├── __tests__
│   │   │   │   │   └── ClerkProvider.test.tsx
│   │   │   │   ├── assertHelpers.ts
│   │   │   │   ├── AuthContext.ts
│   │   │   │   ├── ClerkContextProvider.tsx
│   │   │   │   ├── ClerkProvider.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── IsomorphicClerkContext.tsx
│   │   │   │   ├── OrganizationContext.tsx
│   │   │   │   ├── SessionContext.tsx
│   │   │   │   └── UserContext.tsx
│   │   │   ├── errors
│   │   │   │   ├── errorThrower.ts
│   │   │   │   └── messages.ts
│   │   │   ├── errors.ts
│   │   │   ├── experimental.ts
│   │   │   ├── global.d.ts
│   │   │   ├── hooks
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── __snapshots__
│   │   │   │   │   │   └── useRoutingProps.test.tsx.snap
│   │   │   │   │   ├── useAuth.test.tsx
│   │   │   │   │   ├── useAuth.type.test.ts
│   │   │   │   │   └── useRoutingProps.test.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── useAssertWrappedByClerkProvider.ts
│   │   │   │   ├── useAuth.ts
│   │   │   │   ├── useClerkSignal.ts
│   │   │   │   ├── useEmailLink.ts
│   │   │   │   ├── useRoutingProps.ts
│   │   │   │   ├── useSignIn.ts
│   │   │   │   ├── useSignUp.ts
│   │   │   │   └── utils.ts
│   │   │   ├── index.ts
│   │   │   ├── internal.ts
│   │   │   ├── isomorphicClerk.ts
│   │   │   ├── polyfills.ts
│   │   │   ├── stateProxy.ts
│   │   │   ├── types.ts
│   │   │   └── utils
│   │   │       ├── __tests__
│   │   │       │   ├── useCustomMenuItems.test.tsx
│   │   │       │   └── useMaxAllowedInstancesGuard.test.tsx
│   │   │       ├── childrenUtils.tsx
│   │   │       ├── componentValidation.ts
│   │   │       ├── index.ts
│   │   │       ├── isConstructor.ts
│   │   │       ├── isDevOrStageUrl.tsx
│   │   │       ├── useCustomElementPortal.tsx
│   │   │       ├── useCustomMenuItems.tsx
│   │   │       ├── useCustomPages.tsx
│   │   │       ├── useMaxAllowedInstancesGuard.tsx
│   │   │       └── useWaitForComponentMount.ts
│   │   ├── subpaths.mjs
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   ├── tsup.config.ts
│   │   ├── turbo.json
│   │   ├── typedoc.json
│   │   ├── vitest.config.mts
│   │   └── vitest.setup.mts
│   ├── react-router
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── __snapshots__
│   │   │   │   │   └── exports.test.ts.snap
│   │   │   │   └── exports.test.ts
│   │   │   ├── api
│   │   │   │   └── index.ts
│   │   │   ├── client
│   │   │   │   ├── index.ts
│   │   │   │   ├── ReactRouterClerkProvider.tsx
│   │   │   │   ├── ReactRouterOptionsContext.tsx
│   │   │   │   ├── types.ts
│   │   │   │   ├── uiComponents.tsx
│   │   │   │   ├── useAwaitableNavigate.tsx
│   │   │   │   └── usePathnameWithoutSplatRouteParams.tsx
│   │   │   ├── errors.ts
│   │   │   ├── errorThrower.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── server
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── clerkMiddleware.test.ts
│   │   │   │   │   ├── getAuth.test.ts
│   │   │   │   │   └── rootAuthLoader.test.ts
│   │   │   │   ├── clerkClient.ts
│   │   │   │   ├── clerkMiddleware.ts
│   │   │   │   ├── getAuth.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── legacyAuthenticateRequest.ts
│   │   │   │   ├── loadOptions.ts
│   │   │   │   ├── rootAuthLoader.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   ├── ssr
│   │   │   │   └── index.ts
│   │   │   ├── utils
│   │   │   │   ├── __tests__
│   │   │   │   │   └── assert.test.ts
│   │   │   │   ├── assert.ts
│   │   │   │   ├── env.ts
│   │   │   │   └── errors.ts
│   │   │   └── webhooks.ts
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── vitest.config.mts
│   │   └── vitest.setup.mts
│   ├── remix
│   │   ├── api.server
│   │   │   └── package.json
│   │   ├── CHANGELOG.md
│   │   ├── errors
│   │   │   └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── __snapshots__
│   │   │   │   │   └── exports.test.ts.snap
│   │   │   │   └── exports.test.ts
│   │   │   ├── api
│   │   │   │   └── index.ts
│   │   │   ├── client
│   │   │   │   ├── ClerkApp.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── RemixClerkProvider.tsx
│   │   │   │   ├── RemixOptionsContext.tsx
│   │   │   │   ├── types.ts
│   │   │   │   ├── uiComponents.tsx
│   │   │   │   ├── useAwaitableNavigate.tsx
│   │   │   │   └── usePathnameWithoutSplatRouteParams.tsx
│   │   │   ├── errors.ts
│   │   │   ├── errorThrower.ts
│   │   │   ├── global.d.ts
│   │   │   ├── globalPolyfill.ts
│   │   │   ├── index.ts
│   │   │   ├── ssr
│   │   │   │   ├── authenticateRequest.ts
│   │   │   │   ├── getAuth.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── loadOptions.ts
│   │   │   │   ├── rootAuthLoader.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   └── utils
│   │   │       ├── errors.ts
│   │   │       ├── index.ts
│   │   │       └── utils.ts
│   │   ├── ssr.server
│   │   │   └── package.json
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── vitest.config.mts
│   │   └── vitest.setup.mts
│   ├── shared
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── docs
│   │   │   ├── use-clerk.md
│   │   │   ├── use-session-list.md
│   │   │   ├── use-session.md
│   │   │   └── use-user.md
│   │   ├── global.d.ts
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── scripts
│   │   │   └── postinstall.mjs
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── apiUrlFromPublishableKey.spec.ts
│   │   │   │   ├── browser.spec.ts
│   │   │   │   ├── buildAccountsBaseUrl.spec.ts
│   │   │   │   ├── color.spec.ts
│   │   │   │   ├── color.test.ts.bak
│   │   │   │   ├── date.spec.ts
│   │   │   │   ├── deprecated.spec.ts
│   │   │   │   ├── deriveState.spec.ts
│   │   │   │   ├── devbrowser.spec.ts
│   │   │   │   ├── error.spec.ts
│   │   │   │   ├── eventBus.spec.ts
│   │   │   │   ├── fastDeepMerge.spec.ts
│   │   │   │   ├── handleValueOrFn.spec.ts
│   │   │   │   ├── jwtPayloadParser.spec.ts
│   │   │   │   ├── keys.spec.ts
│   │   │   │   ├── loadClerkJsScript.spec.ts
│   │   │   │   ├── localStorageBroadcastChannel.spec.ts
│   │   │   │   ├── logger.spec.ts
│   │   │   │   ├── netlifyCacheHandler.spec.ts
│   │   │   │   ├── organization.spec.ts
│   │   │   │   ├── pathMatcher.spec.ts
│   │   │   │   ├── proxy.spec.ts
│   │   │   │   ├── retry.spec.ts
│   │   │   │   ├── telemetry.logs.spec.ts
│   │   │   │   ├── underscore.spec.ts
│   │   │   │   ├── url.spec.ts
│   │   │   │   └── versionSelector.spec.ts
│   │   │   ├── alternativePhoneCode.ts
│   │   │   ├── apiUrlFromPublishableKey.ts
│   │   │   ├── authorization-errors.ts
│   │   │   ├── authorization.ts
│   │   │   ├── browser.ts
│   │   │   ├── buildAccountsBaseUrl.ts
│   │   │   ├── clerkEventBus.ts
│   │   │   ├── color.ts
│   │   │   ├── compiled
│   │   │   │   └── path-to-regexp
│   │   │   │       ├── index.js
│   │   │   │       └── LICENSE.txt
│   │   │   ├── constants.ts
│   │   │   ├── cookie.ts
│   │   │   ├── date.ts
│   │   │   ├── deprecated.ts
│   │   │   ├── deriveState.ts
│   │   │   ├── devBrowser.ts
│   │   │   ├── dom
│   │   │   │   ├── index.ts
│   │   │   │   └── waitForElement.ts
│   │   │   ├── error.ts
│   │   │   ├── errors
│   │   │   │   ├── clerkApiError.ts
│   │   │   │   ├── clerkApiResponseError.ts
│   │   │   │   ├── clerkError.ts
│   │   │   │   ├── clerkRuntimeError.ts
│   │   │   │   ├── createErrorTypeGuard.ts
│   │   │   │   ├── emailLinkError.ts
│   │   │   │   ├── errorThrower.ts
│   │   │   │   ├── helpers.ts
│   │   │   │   ├── metamaskError.ts
│   │   │   │   ├── parseError.ts
│   │   │   │   └── webAuthNError.ts
│   │   │   ├── eventBus.ts
│   │   │   ├── file.ts
│   │   │   ├── getEnvVariable.ts
│   │   │   ├── globs.ts
│   │   │   ├── handleValueOrFn.ts
│   │   │   ├── index.ts
│   │   │   ├── isomorphicAtob.ts
│   │   │   ├── isomorphicBtoa.ts
│   │   │   ├── jwtPayloadParser.ts
│   │   │   ├── keys.ts
│   │   │   ├── loadClerkJsScript.ts
│   │   │   ├── loadScript.ts
│   │   │   ├── localStorageBroadcastChannel.ts
│   │   │   ├── logger.ts
│   │   │   ├── netlifyCacheHandler.ts
│   │   │   ├── oauth.ts
│   │   │   ├── object.ts
│   │   │   ├── organization.ts
│   │   │   ├── pathMatcher.ts
│   │   │   ├── pathToRegexp.ts
│   │   │   ├── poller.ts
│   │   │   ├── proxy.ts
│   │   │   ├── react
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── commerce.test.tsx
│   │   │   │   │   └── useReverification.spec.ts
│   │   │   │   ├── clerk-rq
│   │   │   │   │   ├── queryOptions.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── use-clerk-query-client.ts
│   │   │   │   │   ├── useBaseQuery.ts
│   │   │   │   │   └── useQuery.ts
│   │   │   │   ├── clerk-swr.ts
│   │   │   │   ├── commerce.tsx
│   │   │   │   ├── contexts.tsx
│   │   │   │   ├── hooks
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   ├── createBillingPaginatedHook.spec.tsx
│   │   │   │   │   │   ├── useCheckout.type.spec.ts
│   │   │   │   │   │   ├── usePagesOrInfinite.spec.ts
│   │   │   │   │   │   ├── usePlans.spec.tsx
│   │   │   │   │   │   ├── usePreviousValue.spec.ts
│   │   │   │   │   │   ├── useSafeValues.spec.ts
│   │   │   │   │   │   ├── useSubscription.spec.tsx
│   │   │   │   │   │   └── wrapper.tsx
│   │   │   │   │   ├── createBillingPaginatedHook.tsx
│   │   │   │   │   ├── createContextAndHook.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── useCheckout.ts
│   │   │   │   │   ├── useClerk.ts
│   │   │   │   │   ├── useDeepEqualMemo.ts
│   │   │   │   │   ├── useOrganization.tsx
│   │   │   │   │   ├── useOrganizationList.tsx
│   │   │   │   │   ├── usePagesOrInfinite.ts
│   │   │   │   │   ├── usePaymentAttempts.tsx
│   │   │   │   │   ├── usePaymentMethods.tsx
│   │   │   │   │   ├── usePlans.tsx
│   │   │   │   │   ├── usePreviousValue.ts
│   │   │   │   │   ├── useReverification.ts
│   │   │   │   │   ├── useSafeLayoutEffect.tsx
│   │   │   │   │   ├── useSession.ts
│   │   │   │   │   ├── useSessionList.ts
│   │   │   │   │   ├── useStatements.tsx
│   │   │   │   │   ├── useSubscription.rq.tsx
│   │   │   │   │   ├── useSubscription.swr.tsx
│   │   │   │   │   ├── useSubscription.tsx
│   │   │   │   │   ├── useSubscription.types.ts
│   │   │   │   │   └── useUser.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── providers
│   │   │   │   │   ├── SWRConfigCompat.rq.tsx
│   │   │   │   │   ├── SWRConfigCompat.swr.tsx
│   │   │   │   │   └── SWRConfigCompat.tsx
│   │   │   │   ├── stripe-react
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── utils.ts
│   │   │   │   └── types.ts
│   │   │   ├── retry.ts
│   │   │   ├── router
│   │   │   │   ├── __tests__
│   │   │   │   │   └── router.spec.ts
│   │   │   │   ├── react.tsx
│   │   │   │   └── router.ts
│   │   │   ├── router.ts
│   │   │   ├── saml.ts
│   │   │   ├── telemetry
│   │   │   │   ├── collector.ts
│   │   │   │   ├── events
│   │   │   │   │   ├── __tests__
│   │   │   │   │   │   └── theme-usage.spec.ts
│   │   │   │   │   ├── component-mounted.ts
│   │   │   │   │   ├── framework-metadata.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── method-called.ts
│   │   │   │   │   └── theme-usage.ts
│   │   │   │   ├── throttler.ts
│   │   │   │   └── types.ts
│   │   │   ├── telemetry.ts
│   │   │   ├── types
│   │   │   │   ├── apiKeys.ts
│   │   │   │   ├── apiKeysSettings.ts
│   │   │   │   ├── appearance.ts
│   │   │   │   ├── attributes.ts
│   │   │   │   ├── authConfig.ts
│   │   │   │   ├── authObject.ts
│   │   │   │   ├── backupCode.ts
│   │   │   │   ├── billing.ts
│   │   │   │   ├── clerk.ts
│   │   │   │   ├── client.ts
│   │   │   │   ├── commerceSettings.ts
│   │   │   │   ├── customMenuItems.ts
│   │   │   │   ├── customPages.ts
│   │   │   │   ├── deletedObject.ts
│   │   │   │   ├── displayConfig.ts
│   │   │   │   ├── elementIds.ts
│   │   │   │   ├── emailAddress.ts
│   │   │   │   ├── enterpriseAccount.ts
│   │   │   │   ├── environment.ts
│   │   │   │   ├── errors.ts
│   │   │   │   ├── externalAccount.ts
│   │   │   │   ├── factors.ts
│   │   │   │   ├── hooks.ts
│   │   │   │   ├── identificationLink.ts
│   │   │   │   ├── identifiers.ts
│   │   │   │   ├── image.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── instance.ts
│   │   │   │   ├── json.ts
│   │   │   │   ├── jwt.ts
│   │   │   │   ├── jwtv2.ts
│   │   │   │   ├── key.ts
│   │   │   │   ├── localization.ts
│   │   │   │   ├── multiDomain.ts
│   │   │   │   ├── oauth.ts
│   │   │   │   ├── organization.ts
│   │   │   │   ├── organizationDomain.ts
│   │   │   │   ├── organizationInvitation.ts
│   │   │   │   ├── organizationMembership.ts
│   │   │   │   ├── organizationMembershipRequest.ts
│   │   │   │   ├── organizationSettings.ts
│   │   │   │   ├── organizationSuggestion.ts
│   │   │   │   ├── pagination.ts
│   │   │   │   ├── passkey.ts
│   │   │   │   ├── passwords.ts
│   │   │   │   ├── permission.ts
│   │   │   │   ├── phoneCodeChannel.ts
│   │   │   │   ├── phoneNumber.ts
│   │   │   │   ├── protect.ts
│   │   │   │   ├── redirects.ts
│   │   │   │   ├── resource.ts
│   │   │   │   ├── role.ts
│   │   │   │   ├── router.ts
│   │   │   │   ├── runtime-values.ts
│   │   │   │   ├── saml.ts
│   │   │   │   ├── samlAccount.ts
│   │   │   │   ├── samlConnection.ts
│   │   │   │   ├── session.ts
│   │   │   │   ├── sessionVerification.ts
│   │   │   │   ├── signIn.ts
│   │   │   │   ├── signInCommon.ts
│   │   │   │   ├── signInFuture.ts
│   │   │   │   ├── signUp.ts
│   │   │   │   ├── signUpCommon.ts
│   │   │   │   ├── signUpFuture.ts
│   │   │   │   ├── snapshots.ts
│   │   │   │   ├── ssr.ts
│   │   │   │   ├── state.ts
│   │   │   │   ├── strategies.ts
│   │   │   │   ├── telemetry.ts
│   │   │   │   ├── theme.ts
│   │   │   │   ├── token.ts
│   │   │   │   ├── totp.ts
│   │   │   │   ├── user.ts
│   │   │   │   ├── userOrganizationInvitation.ts
│   │   │   │   ├── userSettings.ts
│   │   │   │   ├── utils copy.ts
│   │   │   │   ├── utils.ts
│   │   │   │   ├── verification.ts
│   │   │   │   ├── virtual-data-hooks.d.ts
│   │   │   │   ├── waitlist.ts
│   │   │   │   ├── web3.ts
│   │   │   │   └── web3Wallet.ts
│   │   │   ├── underscore.ts
│   │   │   ├── url.ts
│   │   │   ├── utils
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── createDeferredPromise.spec.ts
│   │   │   │   │   └── instance.spec.ts
│   │   │   │   ├── allSettled.ts
│   │   │   │   ├── createDeferredPromise.ts
│   │   │   │   ├── fastDeepMerge.ts
│   │   │   │   ├── handleValueOrFn.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── instance.ts
│   │   │   │   ├── logErrorInDevMode.ts
│   │   │   │   ├── noop.ts
│   │   │   │   └── runtimeEnvironment.ts
│   │   │   ├── versionSelector.ts
│   │   │   ├── web3.ts
│   │   │   ├── webauthn.ts
│   │   │   └── workerTimers
│   │   │       ├── createWorkerTimers.ts
│   │   │       ├── index.ts
│   │   │       ├── workerTimers.built.ts
│   │   │       ├── workerTimers.types.ts
│   │   │       └── workerTimers.worker.ts
│   │   ├── subpaths.mjs
│   │   ├── tsconfig.json
│   │   ├── tsconfig.test.json
│   │   ├── tsdown.config.mts
│   │   ├── typedoc.json
│   │   ├── vitest.config.mts
│   │   └── vitest.setup.mts
│   ├── tanstack-react-start
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── errors
│   │   │   └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── server
│   │   │   └── package.json
│   │   ├── src
│   │   │   ├── __tests__
│   │   │   │   ├── __snapshots__
│   │   │   │   │   └── exports.test.ts.snap
│   │   │   │   └── exports.test.ts
│   │   │   ├── client
│   │   │   │   ├── ClerkProvider.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── OptionsContext.tsx
│   │   │   │   ├── types.ts
│   │   │   │   ├── uiComponents.tsx
│   │   │   │   ├── useAwaitableNavigate.ts
│   │   │   │   └── utils.ts
│   │   │   ├── errors.ts
│   │   │   ├── experimental.ts
│   │   │   ├── global.d.ts
│   │   │   ├── index.ts
│   │   │   ├── server
│   │   │   │   ├── auth.ts
│   │   │   │   ├── clerkClient.ts
│   │   │   │   ├── clerkMiddleware.ts
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── loadOptions.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils
│   │   │   │       └── index.ts
│   │   │   ├── utils
│   │   │   │   ├── env.ts
│   │   │   │   ├── errors.ts
│   │   │   │   └── index.ts
│   │   │   └── webhooks.ts
│   │   ├── tsconfig.declarations.json
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── vite-env.d.ts
│   │   ├── vitest.config.mts
│   │   ├── vitest.setup.mts
│   │   └── webhooks
│   │       └── package.json
│   ├── testing
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── cypress
│   │   │   └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── playwright
│   │   │   └── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── common
│   │   │   │   ├── constants.ts
│   │   │   │   ├── errors.ts
│   │   │   │   ├── helpers-utils.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── setup.ts
│   │   │   │   └── types.ts
│   │   │   ├── cypress
│   │   │   │   ├── custom-commands.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── setup.ts
│   │   │   │   └── setupClerkTestingToken.ts
│   │   │   ├── index.ts
│   │   │   └── playwright
│   │   │       ├── helpers.ts
│   │   │       ├── index.ts
│   │   │       ├── setup.ts
│   │   │       ├── setupClerkTestingToken.ts
│   │   │       └── unstable
│   │   │           ├── index.ts
│   │   │           └── page-objects
│   │   │               ├── apiKeys.ts
│   │   │               ├── app.ts
│   │   │               ├── checkout.ts
│   │   │               ├── clerk.ts
│   │   │               ├── common.ts
│   │   │               ├── expect.ts
│   │   │               ├── impersonation.ts
│   │   │               ├── index.ts
│   │   │               ├── keylessPopover.ts
│   │   │               ├── organizationSwitcher.ts
│   │   │               ├── planDetails.ts
│   │   │               ├── pricingTable.ts
│   │   │               ├── sessionTask.ts
│   │   │               ├── signIn.ts
│   │   │               ├── signUp.ts
│   │   │               ├── subscriptionDetails.ts
│   │   │               ├── testingToken.ts
│   │   │               ├── userAvatar.ts
│   │   │               ├── userButton.ts
│   │   │               ├── userProfile.ts
│   │   │               ├── userVerification.ts
│   │   │               └── waitlist.ts
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── themes
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── createTheme.ts
│   │   │   ├── index.ts
│   │   │   └── themes
│   │   │       ├── dark.ts
│   │   │       ├── index.ts
│   │   │       ├── neobrutalism.ts
│   │   │       ├── shadcn.css
│   │   │       ├── shadcn.ts
│   │   │       ├── shadesOfPurple.ts
│   │   │       └── simple.ts
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── types
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── src
│   │       ├── index.d.mts
│   │       ├── index.d.ts
│   │       ├── index.js
│   │       └── index.mjs
│   ├── upgrade
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── app.js
│   │   │   ├── cli.js
│   │   │   ├── codemods
│   │   │   │   ├── __tests__
│   │   │   │   │   ├── __fixtures__
│   │   │   │   │   │   ├── transform-async-request.fixtures.js
│   │   │   │   │   │   └── transform-clerk-provider-dynamic.fixtures.js
│   │   │   │   │   ├── transform-async-request.test.js
│   │   │   │   │   └── transform-clerk-provider-dynamic.test.js
│   │   │   │   ├── index.js
│   │   │   │   ├── transform-async-request.cjs
│   │   │   │   └── transform-clerk-provider-dynamic.cjs
│   │   │   ├── components
│   │   │   │   ├── Codemod.js
│   │   │   │   ├── Command.js
│   │   │   │   ├── Header.js
│   │   │   │   ├── Scan.js
│   │   │   │   ├── SDKWorkflow.js
│   │   │   │   └── UpgradeSDK.js
│   │   │   ├── constants
│   │   │   │   ├── sdks.js
│   │   │   │   └── versions.js
│   │   │   ├── guide-generators
│   │   │   │   ├── core-2
│   │   │   │   │   ├── backend
│   │   │   │   │   │   ├── import-paths.mdx
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── chrome-extension
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── expo
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── fastify
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── generate-all.sh
│   │   │   │   │   ├── js
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── nextjs
│   │   │   │   │   │   ├── import-changes.mdx
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   ├── intro.mdx
│   │   │   │   │   │   ├── middleware-changes.mdx
│   │   │   │   │   │   └── nextjs-version.mdx
│   │   │   │   │   ├── node
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   ├── intro.mdx
│   │   │   │   │   │   └── node-setters-removals.mdx
│   │   │   │   │   ├── overview
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── react
│   │   │   │   │   │   ├── hof-removals.mdx
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── remix
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   ├── retheme
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── intro.mdx
│   │   │   │   │   └── shared
│   │   │   │   │       ├── after-sign-x-handling.mdx
│   │   │   │   │       ├── cli.mdx
│   │   │   │   │       ├── deprecation-removals.mdx
│   │   │   │   │       ├── image-url.mdx
│   │   │   │   │       ├── node-version.mdx
│   │   │   │   │       ├── orgs-claim.mdx
│   │   │   │   │       ├── pagination-args.mdx
│   │   │   │   │       ├── pagination-return.mdx
│   │   │   │   │       ├── path-routing.mdx
│   │   │   │   │       ├── prepare.mdx
│   │   │   │   │       ├── react-version.mdx
│   │   │   │   │       ├── redesign-preview.mdx
│   │   │   │   │       └── update-version.mdx
│   │   │   │   └── text-generation.js
│   │   │   ├── img
│   │   │   │   ├── alternativemethods-backlink.png
│   │   │   │   ├── button-to-organizationlistcreateorganizationactionbutton.png
│   │   │   │   ├── connected-accounts-dropdown.png
│   │   │   │   ├── mfa-dropdown.png
│   │   │   │   ├── organizationprofile-settings.png
│   │   │   │   ├── remove-identitypreview-avatar.png
│   │   │   │   ├── remove-socialbuttonsblockbuttonarrow.png
│   │   │   │   ├── userbuttonpopoveractionbuttontext-removed.png
│   │   │   │   └── userprofile-security.png
│   │   │   ├── util
│   │   │   │   ├── all-titles.js
│   │   │   │   ├── expandable-list.js
│   │   │   │   ├── generate-changelog.js
│   │   │   │   ├── get-clerk-version.js
│   │   │   │   ├── guess-framework.js
│   │   │   │   └── load-change.js
│   │   │   └── versions
│   │   │       └── core-2
│   │   │           ├── backend
│   │   │           │   ├── api-url-value-changed.md
│   │   │           │   ├── authenticaterequest-params-change.md
│   │   │           │   ├── buildrequesturl-removed.md
│   │   │           │   ├── clerk-import.md
│   │   │           │   ├── client-unstableoptions-removed.md
│   │   │           │   ├── clockskewinseconds.md
│   │   │           │   ├── constants-import-path-move.md
│   │   │           │   ├── createauthenticaterequest-import-path-move.md
│   │   │           │   ├── createclerkclient-apikey.md
│   │   │           │   ├── createclerkclient-frontendapi.md
│   │   │           │   ├── createemail-removed.md
│   │   │           │   ├── createisomorphicrequest-import-path-move.md
│   │   │           │   ├── createisomorphicrequest-removed.md
│   │   │           │   ├── decodejwt-import-path-move.md
│   │   │           │   ├── getclientlist-arguments.md
│   │   │           │   ├── getorganizationmembershiplist-return-signature.md
│   │   │           │   ├── getpendingorganizationinvitationlist.md
│   │   │           │   ├── getsessionlist-arguments.md
│   │   │           │   ├── httpoptions-removed.md
│   │   │           │   ├── interstitial-removed.md
│   │   │           │   ├── members-count.md
│   │   │           │   ├── membershiprole.md
│   │   │           │   ├── organizationjson-logourl.md
│   │   │           │   ├── organizationmembershippublicuserdatajson-profileimageurl.md
│   │   │           │   ├── pkgversion.md
│   │   │           │   ├── redirect-import-path-move.md
│   │   │           │   ├── signjwt-import-path-move.md
│   │   │           │   ├── signjwterror-import-move.md
│   │   │           │   ├── tokenverificationerror-import-move.md
│   │   │           │   ├── tokenverificationerroraction-import-move.md
│   │   │           │   ├── tokenverificationerrorcode-import-move.md
│   │   │           │   ├── tokenverificationerrorreason-import-move.md
│   │   │           │   ├── userjson-profileimageurl.md
│   │   │           │   └── verifyjwt-import-path-move.md
│   │   │           ├── chrome-extension
│   │   │           │   └── clerkprovider-tokencache.md
│   │   │           ├── common
│   │   │           │   ├── aftersignxurl-changes.md
│   │   │           │   ├── afterswitchorganizationurl.md
│   │   │           │   ├── alternativemethods-backlink.md
│   │   │           │   ├── api-key-to-secret-key.md
│   │   │           │   ├── appearance-organizationpreview-organizationswitcher.md
│   │   │           │   ├── appearance-variables-breaking-changes.md
│   │   │           │   ├── button-to-organizationlistcreateorganizationactionbutton.md
│   │   │           │   ├── card-changes.md
│   │   │           │   ├── changed-localization-keys.md
│   │   │           │   ├── clerkprovider-frontendapi-2.md
│   │   │           │   ├── clerkprovideroptionswrapper-dropped.md
│   │   │           │   ├── connected-accounts-dropdown.md
│   │   │           │   ├── emaillinkerrorcode-import-change.md
│   │   │           │   ├── externalaccount-avatarurl.md
│   │   │           │   ├── externalaccount-picture.md
│   │   │           │   ├── externalaccountjson-avatarurl.md
│   │   │           │   ├── frontend-api-to-publishable-key.md
│   │   │           │   ├── getallowlistidentifierlist-return-signature.md
│   │   │           │   ├── getclientlist-return-signature.md
│   │   │           │   ├── getinvitationlist-return-signature.md
│   │   │           │   ├── getorganizationinvitationlist-return-signature.md
│   │   │           │   ├── getorganizationinvitationlist-return-type-change.md
│   │   │           │   ├── getorganizationlist-return-signature.md
│   │   │           │   ├── getorganizationlist-return-type-change.md
│   │   │           │   ├── getorganizationmembershiplist-return-type-change.md
│   │   │           │   ├── getredirecturllist-return-signature.md
│   │   │           │   ├── getsessionlist-return-signature.md
│   │   │           │   ├── getuserlist-return-signature.md
│   │   │           │   ├── getuseroauthaccesstoken-return-signature.md
│   │   │           │   ├── handlemagiclinkverification.md
│   │   │           │   ├── isclerkapiresponserror-import-change.md
│   │   │           │   ├── isemaillinkerror-import-change.md
│   │   │           │   ├── isknownerror-import-change.md
│   │   │           │   ├── ismagiclinkerror.md
│   │   │           │   ├── ismetamaskerror-import-change.md
│   │   │           │   ├── magiclinkerror.md
│   │   │           │   ├── magiclinkerrorcode.md
│   │   │           │   ├── mfa-dropdown.md
│   │   │           │   ├── min-react-version.md
│   │   │           │   ├── multisessionappsupport-import-change.md
│   │   │           │   ├── navigate-to-routerpush-routerreplace.md
│   │   │           │   ├── new-localization-keys.md
│   │   │           │   ├── organization-create-string.md
│   │   │           │   ├── organization-getdomains-arguments-change.md
│   │   │           │   ├── organization-getinvitations-arguments-changed.md
│   │   │           │   ├── organization-getmembershiprequests-arguments-changed.md
│   │   │           │   ├── organization-getmemberships-arguments-changed.md
│   │   │           │   ├── organization-getpendinginvitations.md
│   │   │           │   ├── organization-getroles-arguments-changed.md
│   │   │           │   ├── organization-logourl.md
│   │   │           │   ├── organizationmembershippublicuserdata-profileimageurl.md
│   │   │           │   ├── organizationprofile-settings.md
│   │   │           │   ├── organizationswitcherpopoveractionbuttontext-removed.md
│   │   │           │   ├── remove-identitypreview-avatar.md
│   │   │           │   ├── remove-socialbuttonsblockbuttonarrow.md
│   │   │           │   ├── removed-localization-keys.md
│   │   │           │   ├── setsession.md
│   │   │           │   ├── signoutcallback-to-redirecturl.md
│   │   │           │   ├── supported-external-accounts-removed.md
│   │   │           │   ├── usemagiclink.md
│   │   │           │   ├── useorganization-invitationlist.md
│   │   │           │   ├── useorganization-membershiplist.md
│   │   │           │   ├── useorganizations.md
│   │   │           │   ├── user-getorganizationinvitations-arguments-changed.md
│   │   │           │   ├── user-getorganizationmemberships-arguments-changed.md
│   │   │           │   ├── user-getorganizationmemberships-return-signature.md
│   │   │           │   ├── user-getorganizationsuggestions-arguments-changed.md
│   │   │           │   ├── user-profileimageurl.md
│   │   │           │   ├── user-update-password.md
│   │   │           │   ├── userbuttonpopoveractionbuttontext-removed.md
│   │   │           │   ├── userbuttontrigger-userbuttonbox-invert.md
│   │   │           │   ├── userprofile-prop.md
│   │   │           │   ├── userprofile-security.md
│   │   │           │   ├── withclerk-hof-removed.md
│   │   │           │   ├── withclerk-removed.md
│   │   │           │   ├── withsession-hof-removed.md
│   │   │           │   ├── withsession-removed.md
│   │   │           │   ├── withuser-hof-removed.md
│   │   │           │   └── withuser-removed-2.md
│   │   │           ├── expo
│   │   │           │   ├── apikey-to-publishable-key.md
│   │   │           │   └── clerkprovider-frontendapi.md
│   │   │           ├── fastify
│   │   │           │   ├── api-url-value-change.md
│   │   │           │   ├── clerk-import-change.md
│   │   │           │   ├── clerkplugin-frontendapi.md
│   │   │           │   ├── createclerkclient-apikey.md
│   │   │           │   └── createclerkclient-frontendapi.md
│   │   │           ├── index.js
│   │   │           ├── js
│   │   │           │   ├── clerk-import.md
│   │   │           │   ├── clerk-isready-removed.md
│   │   │           │   ├── experimental-canusecaptcha.md
│   │   │           │   ├── experimental-captchasitekey.md
│   │   │           │   ├── experimental-captchaurl.md
│   │   │           │   ├── getorganizationmemberships.md
│   │   │           │   ├── lastorganizationinvitation-member.md
│   │   │           │   ├── redirecttohome.md
│   │   │           │   ├── signup-attemptweb3walletverification-generatedsignature.md
│   │   │           │   ├── unstable-invitationupdate.md
│   │   │           │   ├── unstable-membershipupdate.md
│   │   │           │   ├── user-createexternalaccount-redirecturl.md
│   │   │           │   └── user-orgpublicdata-profileimageurl.md
│   │   │           ├── nextjs
│   │   │           │   ├── api-url-value-change.md
│   │   │           │   ├── auth-import-change.md
│   │   │           │   ├── auth-middleware-deprecated.md
│   │   │           │   ├── authmiddleware-apikey.md
│   │   │           │   ├── authmiddleware-frontendapi.md
│   │   │           │   ├── authmiddleware-import-change.md
│   │   │           │   ├── buildclerkprops-import-change.md
│   │   │           │   ├── clerk-import-change.md
│   │   │           │   ├── clerk-js-version-next-public.md
│   │   │           │   ├── constants-import-change.md
│   │   │           │   ├── createauthenticaterequest-import-change.md
│   │   │           │   ├── createclerkclient-apikey.md
│   │   │           │   ├── createclerkclient-frontendapi.md
│   │   │           │   ├── createisomorphicrequest-import-change.md
│   │   │           │   ├── currentuser-import-change.md
│   │   │           │   ├── decodejwt-import-change.md
│   │   │           │   ├── emaillinkerrorcode-import-change.md
│   │   │           │   ├── getauth-apikey.md
│   │   │           │   ├── import-api-url.md
│   │   │           │   ├── import-api-version.md
│   │   │           │   ├── import-clerk-js-url.md
│   │   │           │   ├── import-clerk-js-version.md
│   │   │           │   ├── import-domain.md
│   │   │           │   ├── import-is-satellite.md
│   │   │           │   ├── import-nextjs-api.md
│   │   │           │   ├── import-nextjs-app-beta.md
│   │   │           │   ├── import-nextjs-edge-middleware.md
│   │   │           │   ├── import-nextjs-edge-middlewarefiles.md
│   │   │           │   ├── import-nextjs-ssr.md
│   │   │           │   ├── import-proxy-url.md
│   │   │           │   ├── import-publishable-key.md
│   │   │           │   ├── import-secret-key.md
│   │   │           │   ├── import-sign-in-url.md
│   │   │           │   ├── import-sign-up-url.md
│   │   │           │   ├── isclerkapiresponserror-import-change.md
│   │   │           │   ├── isemaillinkerror-import-change.md
│   │   │           │   ├── isknownerror-import-change.md
│   │   │           │   ├── min-nextjs-version.md
│   │   │           │   ├── multisessionappsupport-import-change.md
│   │   │           │   ├── next-public-clerk-js-url.md
│   │   │           │   ├── redirect-import-change.md
│   │   │           │   ├── redirecttosignin-import-path.md
│   │   │           │   ├── redirecttosignup-import-path.md
│   │   │           │   ├── signjwt-import-change.md
│   │   │           │   ├── verifyjwt-import-change.md
│   │   │           │   ├── verifytoken-import-change.md
│   │   │           │   └── with-clerk-middleware-removed.md
│   │   │           ├── node
│   │   │           │   ├── api-url-value-change.md
│   │   │           │   ├── cjs-esm-instance.md
│   │   │           │   ├── clerk-import-change.md
│   │   │           │   ├── clerkexpressrequireauth-apikey.md
│   │   │           │   ├── clerkexpressrequireauth-frontendapi.md
│   │   │           │   ├── clerkexpresswithauth-apikey.md
│   │   │           │   ├── clerkexpresswithauth-frontendapi.md
│   │   │           │   ├── createclerkclient-apikey.md
│   │   │           │   ├── createclerkclient-frontendapi.md
│   │   │           │   ├── createclerkexpressrequireauth-apikey.md
│   │   │           │   ├── createclerkexpressrequireauth-frontendapi.md
│   │   │           │   ├── createclerkexpressrequireauth-public-key-required.md
│   │   │           │   ├── createclerkexpresswithauth-apikey.md
│   │   │           │   ├── createclerkexpresswithauth-frontendapi.md
│   │   │           │   ├── createclerkexpresswithauth-publickey-required.md
│   │   │           │   ├── legacyauthobject-removed.md
│   │   │           │   ├── setclerkapikey.md
│   │   │           │   ├── setclerkapiversion.md
│   │   │           │   ├── setclerkhttpoptions.md
│   │   │           │   └── setclerkserverapiurl.md
│   │   │           ├── react
│   │   │           │   └── api-url-value-change.md
│   │   │           ├── remix
│   │   │           │   ├── clerk-import-change.md
│   │   │           │   ├── clerkerrorboundary-removed.md
│   │   │           │   ├── createclerkclient-apikey.md
│   │   │           │   ├── getauth-apikey.md
│   │   │           │   ├── rootauthloader-apikey.md
│   │   │           │   └── rootauthloader-frontendapi.md
│   │   │           └── shared
│   │   │               ├── getrequesturl.md
│   │   │               ├── organizationcontext.md
│   │   │               └── useorganizationlist-organizationlist.md
│   │   ├── tsconfig.json
│   │   └── vitest.config.js
│   └── vue
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── package.json
│       ├── README.md
│       ├── src
│       │   ├── components
│       │   │   ├── __tests__
│       │   │   │   ├── SignInButton.test.ts
│       │   │   │   ├── SignInWithMetamaskButton.test.ts
│       │   │   │   ├── SignOutButton.test.ts
│       │   │   │   └── SignUpButton.test.ts
│       │   │   ├── CheckoutButton.vue
│       │   │   ├── ClerkHostRenderer.ts
│       │   │   ├── controlComponents.ts
│       │   │   ├── index.ts
│       │   │   ├── PlanDetailsButton.vue
│       │   │   ├── SignInButton.vue
│       │   │   ├── SignInWithMetamaskButton.vue
│       │   │   ├── SignOutButton.vue
│       │   │   ├── SignUpButton.vue
│       │   │   ├── SubscriptionDetailsButton.vue
│       │   │   └── ui-components
│       │   │       ├── CreateOrganization.vue
│       │   │       ├── GoogleOneTap.vue
│       │   │       ├── OrganizationList.vue
│       │   │       ├── OrganizationProfile
│       │   │       │   ├── index.ts
│       │   │       │   └── OrganizationProfile.vue
│       │   │       ├── OrganizationSwitcher
│       │   │       │   ├── index.ts
│       │   │       │   └── OrganizationSwitcher.vue
│       │   │       ├── PricingTable.vue
│       │   │       ├── SignIn.vue
│       │   │       ├── SignUp.vue
│       │   │       ├── UserAvatar.vue
│       │   │       ├── UserButton
│       │   │       │   ├── index.ts
│       │   │       │   └── UserButton.vue
│       │   │       ├── UserProfile
│       │   │       │   ├── index.ts
│       │   │       │   └── UserProfile.vue
│       │   │       └── Waitlist.vue
│       │   ├── composables
│       │   │   ├── __tests__
│       │   │   │   └── useClerkContext.test.ts
│       │   │   ├── index.ts
│       │   │   ├── useAuth.ts
│       │   │   ├── useClerk.ts
│       │   │   ├── useClerkContext.ts
│       │   │   ├── useOrganization.ts
│       │   │   ├── useSession.ts
│       │   │   ├── useSessionList.ts
│       │   │   ├── useSignIn.ts
│       │   │   ├── useSignUp.ts
│       │   │   └── useUser.ts
│       │   ├── env.d.ts
│       │   ├── errors
│       │   │   ├── errorThrower.ts
│       │   │   └── messages.ts
│       │   ├── errors.ts
│       │   ├── experimental.ts
│       │   ├── global.d.ts
│       │   ├── index.ts
│       │   ├── internal.ts
│       │   ├── keys.ts
│       │   ├── plugin.ts
│       │   ├── types.ts
│       │   └── utils
│       │       ├── __tests__
│       │       │   ├── useCustomElementPortal.test.ts
│       │       │   └── useCustomMenuItems.test.ts
│       │       ├── childrenUtils.ts
│       │       ├── componentValidation.ts
│       │       ├── index.ts
│       │       ├── toComputedRefs.ts
│       │       ├── updateClerkOptions.ts
│       │       ├── useClerkLoaded.ts
│       │       ├── useCustomElementPortal.ts
│       │       ├── useCustomMenuItems.ts
│       │       └── useCustomPages.ts
│       ├── tsconfig.build.json
│       ├── tsconfig.json
│       ├── tsup.config.ts
│       ├── vitest.config.ts
│       └── vitest.setup.ts
├── patches
│   └── [email protected]
├── playground
│   ├── app-router
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   └── settings.json
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── public
│   │   │   ├── next.svg
│   │   │   └── vercel.svg
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── app
│   │   │   │   ├── action
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── api
│   │   │   │   │   └── hello
│   │   │   │   │       └── route.ts
│   │   │   │   ├── client
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── favicon.ico
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── page.module.css
│   │   │   │   ├── page.tsx
│   │   │   │   ├── protected
│   │   │   │   │   ├── ClientSideWrapper.tsx
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── sign-in
│   │   │   │   │   └── [[...catchall]]
│   │   │   │   │       └── page.tsx
│   │   │   │   └── sign-up
│   │   │   │       └── [[...catchall]]
│   │   │   │           └── page.tsx
│   │   │   ├── common
│   │   │   │   └── Links.tsx
│   │   │   ├── middleware.ts
│   │   │   └── pages
│   │   │       ├── _app.tsx
│   │   │       ├── profile
│   │   │       │   └── [[...index]].tsx
│   │   │       └── user
│   │   │           └── [[...index]].tsx
│   │   └── tsconfig.json
│   ├── browser-extension
│   │   ├── .env.chrome.example
│   │   ├── .env.development.example
│   │   ├── .gitignore
│   │   ├── assets
│   │   │   └── icon.png
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── assets
│   │   │   │   ├── chrome-extension-sdk-2.jpg
│   │   │   │   ├── dark-logo.png
│   │   │   │   ├── icon.png
│   │   │   │   └── light-logo.png
│   │   │   ├── background
│   │   │   │   └── index.ts
│   │   │   ├── components
│   │   │   │   ├── nav-bar.tsx
│   │   │   │   └── ui
│   │   │   │       └── button.tsx
│   │   │   ├── content.tsx
│   │   │   ├── features
│   │   │   │   └── count-button.tsx
│   │   │   ├── popup
│   │   │   │   ├── index.tsx
│   │   │   │   ├── layouts
│   │   │   │   │   └── root-layout.tsx
│   │   │   │   └── routes
│   │   │   │       ├── home.tsx
│   │   │   │       ├── sdk-features.tsx
│   │   │   │       ├── settings.tsx
│   │   │   │       ├── sign-in.tsx
│   │   │   │       └── sign-up.tsx
│   │   │   ├── sidepanel
│   │   │   │   └── index.tsx
│   │   │   ├── style.css
│   │   │   ├── tabs
│   │   │   │   ├── background-worker-demo.html
│   │   │   │   └── background-worker-demo.tsx
│   │   │   └── utils
│   │   │       └── components.ts
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cra-js
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── public
│   │   │   ├── favicon.ico
│   │   │   ├── index.html
│   │   │   ├── logo192.png
│   │   │   ├── logo512.png
│   │   │   ├── manifest.json
│   │   │   └── robots.txt
│   │   ├── README.md
│   │   └── src
│   │       ├── App.css
│   │       ├── App.js
│   │       ├── App.test.js
│   │       ├── index.css
│   │       ├── index.js
│   │       ├── logo.svg
│   │       ├── reportWebVitals.js
│   │       └── setupTests.js
│   ├── expo
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── app.json.example
│   │   ├── App.tsx
│   │   ├── babel.config.js
│   │   ├── metro.config.js
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── tsconfig.json
│   │   └── webpack.config.js
│   ├── express
│   │   ├── .env.sample
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── loadEnv.ts
│   │   │   ├── routes
│   │   │   │   ├── index.ts
│   │   │   │   ├── private.ts
│   │   │   │   └── public.ts
│   │   │   ├── server.ts
│   │   │   └── views
│   │   │       └── home.ejs
│   │   └── tsconfig.json
│   ├── fastify
│   │   ├── .env.sample
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── loadEnv.ts
│   │   │   ├── routes
│   │   │   │   ├── index.ts
│   │   │   │   ├── private.ts
│   │   │   │   └── public.ts
│   │   │   ├── server.ts
│   │   │   └── templates
│   │   │       └── sign-in.ejs
│   │   └── tsconfig.json
│   ├── nextjs
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   └── settings.json
│   │   ├── app
│   │   │   ├── api
│   │   │   │   └── route.ts
│   │   │   ├── app-dir
│   │   │   │   ├── client
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── client-component.tsx
│   │   │   │   ├── create-organization
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── discover
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── organization
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   ├── sign-in
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── sign-up
│   │   │   │   │   └── page.tsx
│   │   │   │   └── user
│   │   │   │       └── page.tsx
│   │   │   └── layout.tsx
│   │   ├── middleware.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages
│   │   │   ├── _app.tsx
│   │   │   ├── api
│   │   │   │   ├── hello-edge.ts
│   │   │   │   └── hello.ts
│   │   │   ├── create-organization
│   │   │   │   └── [[...index]].tsx
│   │   │   ├── custom
│   │   │   │   └── forgotPassword.tsx
│   │   │   ├── discover
│   │   │   │   └── index.tsx
│   │   │   ├── index.tsx
│   │   │   ├── organization
│   │   │   │   └── [[...index]].tsx
│   │   │   ├── organization-list
│   │   │   │   └── [[...index]].tsx
│   │   │   ├── redirect-helpers
│   │   │   │   └── index.tsx
│   │   │   ├── session-examples
│   │   │   │   └── index.tsx
│   │   │   ├── sign-in
│   │   │   │   └── [[...index]].tsx
│   │   │   ├── sign-up
│   │   │   │   └── [[...index]].tsx
│   │   │   ├── user
│   │   │   │   └── [[...index]].tsx
│   │   │   ├── user-examples
│   │   │   │   └── index.tsx
│   │   │   └── waitlist
│   │   │       └── index.tsx
│   │   ├── public
│   │   │   ├── favicon.ico
│   │   │   └── vercel.svg
│   │   ├── README.md
│   │   ├── styles
│   │   │   ├── globals.css
│   │   │   └── Home.module.css
│   │   └── tsconfig.json
│   ├── react-router
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── app
│   │   │   ├── app.css
│   │   │   ├── root.tsx
│   │   │   ├── routes
│   │   │   │   ├── home.tsx
│   │   │   │   ├── profile-form.tsx
│   │   │   │   ├── profile.tsx
│   │   │   │   ├── sign-in.tsx
│   │   │   │   ├── sign-up.tsx
│   │   │   │   ├── use-auth.tsx
│   │   │   │   └── use-user.tsx
│   │   │   ├── routes.ts
│   │   │   └── welcome
│   │   │       ├── logo-dark.svg
│   │   │       ├── logo-light.svg
│   │   │       └── welcome.tsx
│   │   ├── package.json
│   │   ├── public
│   │   │   └── favicon.ico
│   │   ├── react-router.config.ts
│   │   ├── README.md
│   │   ├── tailwind.config.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.ts
│   ├── remix-cf-pages
│   │   ├── .gitignore
│   │   ├── .node-version
│   │   ├── app
│   │   │   ├── entry.client.tsx
│   │   │   ├── entry.server.tsx
│   │   │   ├── root.tsx
│   │   │   └── routes
│   │   │       ├── index.tsx
│   │   │       └── sign-in.tsx
│   │   ├── package.json
│   │   ├── public
│   │   │   ├── _headers
│   │   │   ├── _routes.json
│   │   │   └── favicon.ico
│   │   ├── README.md
│   │   ├── remix.config.js
│   │   ├── remix.env.d.ts
│   │   ├── server.js
│   │   └── tsconfig.json
│   ├── remix-cf-worker
│   │   ├── .gitignore
│   │   ├── app
│   │   │   ├── entry.client.tsx
│   │   │   ├── entry.server.tsx
│   │   │   ├── root.tsx
│   │   │   └── routes
│   │   │       └── index.tsx
│   │   ├── package.json
│   │   ├── public
│   │   │   └── favicon.ico
│   │   ├── README.md
│   │   ├── remix.config.js
│   │   ├── remix.env.d.ts
│   │   ├── server.js
│   │   ├── tsconfig.json
│   │   └── wrangler.toml
│   ├── remix-node
│   │   ├── .gitignore
│   │   ├── app
│   │   │   ├── entry.client.tsx
│   │   │   ├── entry.server.tsx
│   │   │   ├── root.tsx
│   │   │   └── routes
│   │   │       ├── _index.tsx
│   │   │       ├── protected.tsx
│   │   │       ├── sign-in.$.tsx
│   │   │       └── sign-up.$.tsx
│   │   ├── package.json
│   │   ├── public
│   │   │   └── favicon.ico
│   │   ├── README.md
│   │   ├── remix.config.js
│   │   ├── remix.env.d.ts
│   │   └── tsconfig.json
│   ├── vanillajs
│   │   └── index.html
│   └── vite-react-ts
│       ├── .env.example
│       ├── .gitignore
│       ├── index.html
│       ├── package.json
│       ├── public
│       │   ├── clerk.svg
│       │   └── vite.svg
│       ├── src
│       │   ├── App.css
│       │   ├── App.tsx
│       │   ├── assets
│       │   │   └── react.svg
│       │   ├── index.css
│       │   ├── main.tsx
│       │   └── vite-env.d.ts
│       ├── tsconfig.json
│       ├── tsconfig.node.json
│       └── vite.config.ts
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── prettier.config.mjs
├── README.md
├── renovate.json5
├── scripts
│   ├── .env.example
│   ├── 1password-keys.mjs
│   ├── backport.mjs
│   ├── canary.mjs
│   ├── common.mjs
│   ├── format-non-workspace.mjs
│   ├── format-package.mjs
│   ├── install-site-in-isolation.mjs
│   ├── lint.mjs
│   ├── notify.mjs
│   ├── nuke.mjs
│   ├── renovate-config-generator.mjs
│   ├── search-for-rhc.mjs
│   ├── snapshot.mjs
│   ├── subpath-workaround.mjs
│   ├── tsconfig.json
│   ├── utils.ts
│   └── vitest-debug.mjs
├── tsconfig.json
├── tsconfig.typedoc.json
├── turbo.json
├── typedoc.config.mjs
├── verdaccio.install.yaml
├── verdaccio.publish.yaml
└── vitest.workspace.mjs
```

# Files

--------------------------------------------------------------------------------
/packages/types/CHANGELOG.md:
--------------------------------------------------------------------------------

```markdown
   1 | # Change Log
   2 | 
   3 | ## 4.97.2
   4 | 
   5 | ### Patch Changes
   6 | 
   7 | - Updated dependencies [[`a474c59`](https://github.com/clerk/javascript/commit/a474c59e3017358186de15c5b1e5b83002e72527), [`5536429`](https://github.com/clerk/javascript/commit/55364291e245ff05ca1e50e614e502d2081b87fb)]:
   8 |   - @clerk/[email protected]
   9 | 
  10 | ## 4.97.1
  11 | 
  12 | ### Patch Changes
  13 | 
  14 | - Add native Apple Sign-In support for iOS via `useAppleSignIn()` hook. Requires `expo-apple-authentication` and native build (EAS Build or local prebuild). ([#7053](https://github.com/clerk/javascript/pull/7053)) by [@chriscanin](https://github.com/chriscanin)
  15 | 
  16 | - Updated dependencies [[`ea65d39`](https://github.com/clerk/javascript/commit/ea65d390cd6d3b0fdd35202492e858f8c8370f73), [`b09b29e`](https://github.com/clerk/javascript/commit/b09b29e82323c8fc508c49ffe10c77a737ef0bec)]:
  17 |   - @clerk/[email protected]
  18 | 
  19 | ## 4.97.0
  20 | 
  21 | ### Minor Changes
  22 | 
  23 | - Deprecate `@clerk/types` in favor of `@clerk/shared/types` ([#7022](https://github.com/clerk/javascript/pull/7022)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
  24 | 
  25 |   The `@clerk/types` package is now deprecated. All type definitions have been consolidated and moved to `@clerk/shared/types` to improve consistency across the Clerk ecosystem.
  26 | 
  27 |   **Backward Compatibility:**
  28 | 
  29 |   The `@clerk/types` package will remain available and will continue to re-export all types from `@clerk/shared/types` to ensure backward compatibility. Existing applications will continue to work without any immediate breaking changes. However, we strongly recommend migrating to `@clerk/shared/types` as new type definitions and updates will only be added to `@clerk/shared/types` starting with the next major release.
  30 | 
  31 |   **Migration Steps:**
  32 | 
  33 |   Please update your imports from `@clerk/types` to `@clerk/shared/types`:
  34 | 
  35 |   ```typescript
  36 |   // Before
  37 |   import type { ClerkResource, UserResource } from '@clerk/types';
  38 | 
  39 |   // After
  40 |   import type { ClerkResource, UserResource } from '@clerk/shared/types';
  41 |   ```
  42 | 
  43 |   **What Changed:**
  44 | 
  45 |   All type definitions including:
  46 | 
  47 |   - Resource types (User, Organization, Session, etc.)
  48 |   - API response types
  49 |   - Configuration types
  50 |   - Authentication types
  51 |   - Error types
  52 |   - And all other shared types
  53 | 
  54 |   Have been moved from `packages/types/src` to `packages/shared/src/types` and are now exported via `@clerk/shared/types`.
  55 | 
  56 | ### Patch Changes
  57 | 
  58 | - Updated dependencies [[`3e0ef92`](https://github.com/clerk/javascript/commit/3e0ef9281194714f56dcf656d0caf4f75dcf097c), [`2587aa6`](https://github.com/clerk/javascript/commit/2587aa671dac1ca66711889bf1cd1c2e2ac8d7c8)]:
  59 |   - @clerk/[email protected]
  60 | 
  61 | ## 4.96.0
  62 | 
  63 | ### Minor Changes
  64 | 
  65 | - Allow free trials without requiring a payment method, based on the configuration of an instance. ([#7068](https://github.com/clerk/javascript/pull/7068)) by [@mauricioabreu](https://github.com/mauricioabreu)
  66 | 
  67 | - [Billing Beta] Remove unnecessary `orgId` from BillingPayerMethods interface. ([#7087](https://github.com/clerk/javascript/pull/7087)) by [@panteliselef](https://github.com/panteliselef)
  68 | 
  69 | ### Patch Changes
  70 | 
  71 | - Localize aria-labels within `UserButton` and `OrganizationSwitcher` triggers. ([#7086](https://github.com/clerk/javascript/pull/7086)) by [@alexcarpenter](https://github.com/alexcarpenter)
  72 | 
  73 | ## 4.95.1
  74 | 
  75 | ### Patch Changes
  76 | 
  77 | - Add title attribute to email address field with the recommended format. ([#6956](https://github.com/clerk/javascript/pull/6956)) by [@alexcarpenter](https://github.com/alexcarpenter)
  78 | 
  79 | ## 4.95.0
  80 | 
  81 | ### Minor Changes
  82 | 
  83 | - [Billing Beta]: Dropping `paymentMethodId` from subscription item. ([#7017](https://github.com/clerk/javascript/pull/7017)) by [@panteliselef](https://github.com/panteliselef)
  84 | 
  85 | ## 4.94.0
  86 | 
  87 | ### Minor Changes
  88 | 
  89 | - [Experimental] Add support for sign-in with passkey to new APIs ([#6997](https://github.com/clerk/javascript/pull/6997)) by [@dstaley](https://github.com/dstaley)
  90 | 
  91 | ### Patch Changes
  92 | 
  93 | - Add example usage for `__experimental_startPath`. ([#6987](https://github.com/clerk/javascript/pull/6987)) by [@alexcarpenter](https://github.com/alexcarpenter)
  94 | 
  95 | ## 4.93.0
  96 | 
  97 | ### Minor Changes
  98 | 
  99 | - [Billing Beta] Rename payment source descriptors to use "payment method". ([#6951](https://github.com/clerk/javascript/pull/6951)) by [@panteliselef](https://github.com/panteliselef)
 100 | 
 101 | - Add support for sign up `locale` ([#6915](https://github.com/clerk/javascript/pull/6915)) by [@guilherme6191](https://github.com/guilherme6191)
 102 | 
 103 | - [Experimental] Fix `signIn.password` emailAddress parameter name. ([#6932](https://github.com/clerk/javascript/pull/6932)) by [@dstaley](https://github.com/dstaley)
 104 | 
 105 | - [Experimental] Fix issue where calling `this.create()` would not correctly propagate errors. ([#6932](https://github.com/clerk/javascript/pull/6932)) by [@dstaley](https://github.com/dstaley)
 106 | 
 107 | - [Billing Beta] Rename payment source to payment method. ([#6865](https://github.com/clerk/javascript/pull/6865)) by [@panteliselef](https://github.com/panteliselef)
 108 | 
 109 |   `Clerk.user.initializePaymentSource()` -> `Clerk.user.initializePaymentMethod()`
 110 |   `Clerk.user.addPaymentSource()` -> `Clerk.user.addPaymentMethod()`
 111 |   `Clerk.user.getPaymentSources()` -> `Clerk.user.getPaymentMethods()`
 112 | 
 113 |   `Clerk.organization.initializePaymentSource()` -> `Clerk.organization.initializePaymentMethod()`
 114 |   `Clerk.organization.addPaymentSource()` -> `Clerk.organization.addPaymentMethod()`
 115 |   `Clerk.organization.getPaymentSources()` -> `Clerk.organization.getPaymentMethods()`
 116 | 
 117 | - [Billing Beta] Rename payment sources to method methods. ([#6959](https://github.com/clerk/javascript/pull/6959)) by [@panteliselef](https://github.com/panteliselef)
 118 | 
 119 |   Updates localization keys from `commerce` -> `billing` and `paymentSource` to `paymentMethod`.
 120 | 
 121 | - Introduce experimental step to choose enterprise connection on sign-in/sign-up ([#6947](https://github.com/clerk/javascript/pull/6947)) by [@LauraBeatris](https://github.com/LauraBeatris)
 122 | 
 123 | - [Billing Beta] Replace `forOrganizations: true` with `for: "organization"` in `<PricingTable/>`. ([#6978](https://github.com/clerk/javascript/pull/6978)) by [@panteliselef](https://github.com/panteliselef)
 124 | 
 125 | ### Patch Changes
 126 | 
 127 | - Add `enterpriseConnectionId` to `SamlAccount` and `EnterpriseAccount` resources ([#6961](https://github.com/clerk/javascript/pull/6961)) by [@LauraBeatris](https://github.com/LauraBeatris)
 128 | 
 129 | - Add success text descriptor to otp input field. ([#6958](https://github.com/clerk/javascript/pull/6958)) by [@alexcarpenter](https://github.com/alexcarpenter)
 130 | 
 131 | - - Add experimental property `last_authenticated_at` to `SamlAccount` resource, which represents the date when the SAML account was last authenticated ([#6954](https://github.com/clerk/javascript/pull/6954)) by [@LauraBeatris](https://github.com/LauraBeatris)
 132 | 
 133 |   - Add experimental support for `enterprise_sso` as a `strategy` param for `session.prepareFirstFactorVerification`
 134 | 
 135 | ## 4.92.0
 136 | 
 137 | ### Minor Changes
 138 | 
 139 | - [Experimental] Add support for additional properties to Signal SignIn/SignUp ([#6897](https://github.com/clerk/javascript/pull/6897)) by [@dstaley](https://github.com/dstaley)
 140 | 
 141 | ### Patch Changes
 142 | 
 143 | - Display organization slug based on environment settings ([#6903](https://github.com/clerk/javascript/pull/6903)) by [@LauraBeatris](https://github.com/LauraBeatris)
 144 | 
 145 | ## 4.91.0
 146 | 
 147 | ### Minor Changes
 148 | 
 149 | - [Experimental] Add Signal support for Web3 APIs ([#6840](https://github.com/clerk/javascript/pull/6840)) by [@dstaley](https://github.com/dstaley)
 150 | 
 151 | ## 4.90.0
 152 | 
 153 | ### Minor Changes
 154 | 
 155 | - [Billing Beta] Drop top level billing flags from environment. Instead, use the payer specific flags. ([#6882](https://github.com/clerk/javascript/pull/6882)) by [@panteliselef](https://github.com/panteliselef)
 156 | 
 157 | ## 4.89.0
 158 | 
 159 | ### Minor Changes
 160 | 
 161 | - Udpate Tyepdoc links to fix temporary ignore warnings ([#6846](https://github.com/clerk/javascript/pull/6846)) by [@SarahSoutoul](https://github.com/SarahSoutoul)
 162 | 
 163 | - Add new <UserAvatar /> component ([#6808](https://github.com/clerk/javascript/pull/6808)) by [@tmilewski](https://github.com/tmilewski)
 164 | 
 165 | ## 4.88.0
 166 | 
 167 | ### Minor Changes
 168 | 
 169 | - [Experimental] Add support for ticket sign-ins and sign-ups ([#6806](https://github.com/clerk/javascript/pull/6806)) by [@dstaley](https://github.com/dstaley)
 170 | 
 171 | - [Billing Beta] Rename types, interfaces and classes that contain `commerce` to use `billing` instead. ([#6757](https://github.com/clerk/javascript/pull/6757)) by [@panteliselef](https://github.com/panteliselef)
 172 | 
 173 | ### Patch Changes
 174 | 
 175 | - Update jsdocs mentions of `@experimental` tag. ([#6651](https://github.com/clerk/javascript/pull/6651)) by [@panteliselef](https://github.com/panteliselef)
 176 | 
 177 | - [Experimental] Correctly determine destination first factor based on identifier. ([#6789](https://github.com/clerk/javascript/pull/6789)) by [@dstaley](https://github.com/dstaley)
 178 | 
 179 | ## 4.87.0
 180 | 
 181 | ### Minor Changes
 182 | 
 183 | - [Experimental] Signal email link support ([#6766](https://github.com/clerk/javascript/pull/6766)) by [@dstaley](https://github.com/dstaley)
 184 | 
 185 | - [Billing Beta] Remove deprecated `subscription` attribute from Billing ([#6788](https://github.com/clerk/javascript/pull/6788)) by [@mauricioabreu](https://github.com/mauricioabreu)
 186 | 
 187 | ### Patch Changes
 188 | 
 189 | - Add support for canceling past due subscriptions ([#6783](https://github.com/clerk/javascript/pull/6783)) by [@aeliox](https://github.com/aeliox)
 190 | 
 191 | ## 4.86.0
 192 | 
 193 | ### Minor Changes
 194 | 
 195 | - [Billing Beta] Removal of Billing experimental methods: `organization.getSubscriptions()` and `billing.getSubscriptions()` ([#6738](https://github.com/clerk/javascript/pull/6738)) by [@mauricioabreu](https://github.com/mauricioabreu)
 196 | 
 197 | - [Experimental] Add support for additional params for SignUp ([#6716](https://github.com/clerk/javascript/pull/6716)) by [@dstaley](https://github.com/dstaley)
 198 | 
 199 | ## 4.85.0
 200 | 
 201 | ### Minor Changes
 202 | 
 203 | - Change placement of the manage subscription button inside `<UserProfile/>` and `<OrganizationProfile/>` ([#6428](https://github.com/clerk/javascript/pull/6428)) by [@panteliselef](https://github.com/panteliselef)
 204 | 
 205 | ### Patch Changes
 206 | 
 207 | - Introduce "Last Used" functionality to Sign In and Up ([#6722](https://github.com/clerk/javascript/pull/6722)) by [@tmilewski](https://github.com/tmilewski)
 208 | 
 209 | - feat(types): Update telemetry type to accept perEventSampling argument. ([#6723](https://github.com/clerk/javascript/pull/6723)) by [@heatlikeheatwave](https://github.com/heatlikeheatwave)
 210 | 
 211 | ## 4.84.1
 212 | 
 213 | ### Patch Changes
 214 | 
 215 | - Fixed incorrect deprecation warnings for legacy redirect props in `<ClerkProvider>`. ([#6699](https://github.com/clerk/javascript/pull/6699)) by [@wobsoriano](https://github.com/wobsoriano)
 216 | 
 217 | - Update the experimental `Errors` interface to allow null for raw and global error arrays ([#6677](https://github.com/clerk/javascript/pull/6677)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 218 | 
 219 | ## 4.84.0
 220 | 
 221 | ### Minor Changes
 222 | 
 223 | - [Experimental] Signal phone code support ([#6650](https://github.com/clerk/javascript/pull/6650)) by [@dstaley](https://github.com/dstaley)
 224 | 
 225 | - [Billing Beta] Remove CommerceProduct. ([#6636](https://github.com/clerk/javascript/pull/6636)) by [@panteliselef](https://github.com/panteliselef)
 226 | 
 227 | - [Billing Beta] `checkout.confirm()` now infers the resource id resulting in less repetition and improved DX. ([#6642](https://github.com/clerk/javascript/pull/6642)) by [@panteliselef](https://github.com/panteliselef)
 228 | 
 229 |   After
 230 | 
 231 |   ```tsx
 232 |   const checkout = Clerk.billing.startCheckout({ orgId });
 233 |   checkout.confirm(); // orgId is always implied
 234 |   ```
 235 | 
 236 |   Before
 237 | 
 238 |   ```tsx
 239 |   const checkout = clerk.billing.startCheckout({ orgId });
 240 |   checkout.confirm({ orgId });
 241 |   ```
 242 | 
 243 | - [Experimental] Signal MFA support ([#6659](https://github.com/clerk/javascript/pull/6659)) by [@dstaley](https://github.com/dstaley)
 244 | 
 245 | ### Patch Changes
 246 | 
 247 | - The `SAML_IDPS` export was moved from `@clerk/types` to `@clerk/shared/saml` and was marked as deprecated. ([#6682](https://github.com/clerk/javascript/pull/6682)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 248 | 
 249 |   Please use `import { SAML_IDPS } from "@clerk/shared/saml"` instead.
 250 | 
 251 | - fix(types): Change return type of SetActiveNavigate to allow void or Promise ([#6662](https://github.com/clerk/javascript/pull/6662)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 252 | 
 253 | - - Export `Feature` type from backend resource. ([#6649](https://github.com/clerk/javascript/pull/6649)) by [@alexisintech](https://github.com/alexisintech)
 254 | 
 255 |   - Re-export canonical `CommerceMoneyAmount` type from `@clerk/types`.
 256 | 
 257 | ## 4.83.0
 258 | 
 259 | ### Minor Changes
 260 | 
 261 | - Added support for authentication with Base ([#6556](https://github.com/clerk/javascript/pull/6556)) by [@jacekradko](https://github.com/jacekradko)
 262 | 
 263 | ## 4.82.0
 264 | 
 265 | ### Minor Changes
 266 | 
 267 | - [Experimental] Signal transfer support ([#6614](https://github.com/clerk/javascript/pull/6614)) by [@dstaley](https://github.com/dstaley)
 268 | 
 269 | - [Experimental] Signals `isLoaded` removal ([#6605](https://github.com/clerk/javascript/pull/6605)) by [@dstaley](https://github.com/dstaley)
 270 | 
 271 | ### Patch Changes
 272 | 
 273 | - Remove unused `__internal_hasAfterAuthFlows` property ([#6609](https://github.com/clerk/javascript/pull/6609)) by [@LauraBeatris](https://github.com/LauraBeatris)
 274 | 
 275 | ## 4.81.0
 276 | 
 277 | ### Minor Changes
 278 | 
 279 | - [Billing Beta] Rename `cancelFreeTrialDescription` to `cancelFreeTrialAccessUntil`. ([#6582](https://github.com/clerk/javascript/pull/6582)) by [@panteliselef](https://github.com/panteliselef)
 280 | 
 281 | - [Billing Beta] Replace `redirectUrl` with `navigate` in `checkout.finalize()` ([#6586](https://github.com/clerk/javascript/pull/6586)) by [@panteliselef](https://github.com/panteliselef)
 282 | 
 283 | ### Patch Changes
 284 | 
 285 | - Update copies for create organization screen on session tasks ([#6584](https://github.com/clerk/javascript/pull/6584)) by [@iagodahlem](https://github.com/iagodahlem)
 286 | 
 287 | - Fix incorrect redirect when completing session tasks within `SignIn` and `SignUp` components ([#6580](https://github.com/clerk/javascript/pull/6580)) by [@iagodahlem](https://github.com/iagodahlem)
 288 | 
 289 | ## 4.80.0
 290 | 
 291 | ### Minor Changes
 292 | 
 293 | - [Experimental] Signal SignUp APIs ([#6571](https://github.com/clerk/javascript/pull/6571)) by [@dstaley](https://github.com/dstaley)
 294 | 
 295 | - Update SubscriptionDetails to support free trials ([#6569](https://github.com/clerk/javascript/pull/6569)) by [@panteliselef](https://github.com/panteliselef)
 296 | 
 297 | - [Experimental] Signal implementation for SignUp ([#6568](https://github.com/clerk/javascript/pull/6568)) by [@dstaley](https://github.com/dstaley)
 298 | 
 299 | ## 4.79.0
 300 | 
 301 | ### Minor Changes
 302 | 
 303 | - [Experimental] Signal `fetchStatus` support. ([#6549](https://github.com/clerk/javascript/pull/6549)) by [@dstaley](https://github.com/dstaley)
 304 | 
 305 | ### Patch Changes
 306 | 
 307 | - Add error handling for `setActive` with stale organization data ([#6550](https://github.com/clerk/javascript/pull/6550)) by [@LauraBeatris](https://github.com/LauraBeatris)
 308 | 
 309 | ## 4.78.0
 310 | 
 311 | ### Minor Changes
 312 | 
 313 | - [Experimental] Signals: Add support for calling `signIn.password()` without an identifier. ([#6534](https://github.com/clerk/javascript/pull/6534)) by [@dstaley](https://github.com/dstaley)
 314 | 
 315 | ## 4.77.0
 316 | 
 317 | ### Minor Changes
 318 | 
 319 | - Add `navigate` parameter to `clerk.setActive()` for custom navigation before the session and/or organization is set. ([#6486](https://github.com/clerk/javascript/pull/6486)) by [@LauraBeatris](https://github.com/LauraBeatris)
 320 | 
 321 |   It's useful for handling pending session tasks for after-auth flows:
 322 | 
 323 |   ```typescript
 324 |   await clerk.setActive({
 325 |     session,
 326 |     navigate: async ({ session }) => {
 327 |       const currentTask = session.currentTask;
 328 |       if (currentTask) {
 329 |         await router.push(`/onboarding/${currentTask.key}`);
 330 |         return;
 331 |       }
 332 | 
 333 |       await router.push('/dashboard');
 334 |     },
 335 |   });
 336 |   ```
 337 | 
 338 | ### Patch Changes
 339 | 
 340 | - Introduce debugLogger for internal debugging support ([#6452](https://github.com/clerk/javascript/pull/6452)) by [@jacekradko](https://github.com/jacekradko)
 341 | 
 342 | ## 4.76.0
 343 | 
 344 | ### Minor Changes
 345 | 
 346 | - [Billing Beta] Replace usage of top level amounts in plan with fees for displaying prices. ([#6490](https://github.com/clerk/javascript/pull/6490)) by [@panteliselef](https://github.com/panteliselef)
 347 | 
 348 | - Add support for trials in `<Checkout/>` ([#6494](https://github.com/clerk/javascript/pull/6494)) by [@panteliselef](https://github.com/panteliselef)
 349 | 
 350 |   - Added `freeTrialEndsAt` property to `CommerceCheckoutResource` interface.
 351 | 
 352 | - Update billing resources with trial properties. ([#6492](https://github.com/clerk/javascript/pull/6492)) by [@panteliselef](https://github.com/panteliselef)
 353 | 
 354 | - Update PricingTable with trial info. ([#6493](https://github.com/clerk/javascript/pull/6493)) by [@panteliselef](https://github.com/panteliselef)
 355 | 
 356 | - [Experimental] Signals reset password flow ([#6520](https://github.com/clerk/javascript/pull/6520)) by [@dstaley](https://github.com/dstaley)
 357 | 
 358 | ### Patch Changes
 359 | 
 360 | - Convert LocalizationResource to interface for typedoc documentation ([#6531](https://github.com/clerk/javascript/pull/6531)) by [@NWylynko](https://github.com/NWylynko)
 361 | 
 362 | - Add optional `isExternal` to `ApplicationLogo` ([#6447](https://github.com/clerk/javascript/pull/6447)) by [@jfoshee](https://github.com/jfoshee)
 363 | 
 364 |   Add optional `oAuthApplicationUrl` parameter to OAuth Consent mounting (which is used to provide a link to the OAuth App homepage).
 365 | 
 366 |   Harden `Link` component so it sanitizes the given `href` to avoid dangerous protocols.
 367 | 
 368 | ## 4.75.0
 369 | 
 370 | ### Minor Changes
 371 | 
 372 | - [Billing Beta] Cleanup naming inconsistencies in billing dates. ([#6513](https://github.com/clerk/javascript/pull/6513)) by [@panteliselef](https://github.com/panteliselef)
 373 | 
 374 |   ## Migration
 375 | 
 376 |   - subscriptionItem.periodStartDate → subscriptionItem.periodStart
 377 |   - subscriptionItem.periodEndDate → subscriptionItem.periodEnd
 378 |   - subscriptionItem.canceledAtDate → subscriptionItem.canceledAt
 379 | 
 380 | - [Experimental] Signal Errors ([#6495](https://github.com/clerk/javascript/pull/6495)) by [@dstaley](https://github.com/dstaley)
 381 | 
 382 | - Remove `treatPendingAsSignedOut` from Clerk options ([#6497](https://github.com/clerk/javascript/pull/6497)) by [@LauraBeatris](https://github.com/LauraBeatris)
 383 | 
 384 | ### Patch Changes
 385 | 
 386 | - Add `legalAcceptedAt` to UserResource accessible by `Clerk.user` and `useUser()`. ([#6517](https://github.com/clerk/javascript/pull/6517)) by [@thiskevinwang](https://github.com/thiskevinwang)
 387 | 
 388 | ## 4.74.0
 389 | 
 390 | ### Minor Changes
 391 | 
 392 | - [Billing Beta] Update `PlanDetailsProps` to reflect that either `planId` or `plan` is allowed. ([#6472](https://github.com/clerk/javascript/pull/6472)) by [@panteliselef](https://github.com/panteliselef)
 393 | 
 394 | ### Patch Changes
 395 | 
 396 | - Introduce `TaskChooseOrganization` component which replaces `TaskSelectOrganization` with a new UI that make the experience similar to the previous `SignIn` and `SignUp` steps ([#6446](https://github.com/clerk/javascript/pull/6446)) by [@LauraBeatris](https://github.com/LauraBeatris)
 397 | 
 398 | - [Experimental] Signals ([#6450](https://github.com/clerk/javascript/pull/6450)) by [@dstaley](https://github.com/dstaley)
 399 | 
 400 | - Rename task key from `select-organization` to `choose-organization` ([#6482](https://github.com/clerk/javascript/pull/6482)) by [@LauraBeatris](https://github.com/LauraBeatris)
 401 | 
 402 | ## 4.73.0
 403 | 
 404 | ### Minor Changes
 405 | 
 406 | - [Billing Beta] Update checkout.status type to be `'needs_confirmation' | 'completed'` instead of `string`. ([#6474](https://github.com/clerk/javascript/pull/6474)) by [@panteliselef](https://github.com/panteliselef)
 407 | 
 408 | ### Patch Changes
 409 | 
 410 | - Add types for `form_param_type_invalid` errors. ([#6457](https://github.com/clerk/javascript/pull/6457)) by [@dstaley](https://github.com/dstaley)
 411 | 
 412 | ## 4.72.0
 413 | 
 414 | ### Minor Changes
 415 | 
 416 | - [Billing Beta]: Update prefix for checkout status ([#6438](https://github.com/clerk/javascript/pull/6438)) by [@panteliselef](https://github.com/panteliselef)
 417 | 
 418 |   Replaces `awaiting_` with `needs_`.
 419 | 
 420 | - [Billing Beta] Remove `statement_id` from the checkout resource. ([#6437](https://github.com/clerk/javascript/pull/6437)) by [@panteliselef](https://github.com/panteliselef)
 421 | 
 422 | ### Patch Changes
 423 | 
 424 | - Fix `UseSessionReturn['session']` JSDocs to not mention active status, since pending sessions are also returned ([#6430](https://github.com/clerk/javascript/pull/6430)) by [@LauraBeatris](https://github.com/LauraBeatris)
 425 | 
 426 | - Remove `treatPendingAsSignedOut` from `useSession` and always return pending session ([#6432](https://github.com/clerk/javascript/pull/6432)) by [@LauraBeatris](https://github.com/LauraBeatris)
 427 | 
 428 | - Refactor billing statement page and payment attempt page data loading ([#6420](https://github.com/clerk/javascript/pull/6420)) by [@aeliox](https://github.com/aeliox)
 429 | 
 430 | ## 4.71.0
 431 | 
 432 | ### Minor Changes
 433 | 
 434 | - [Billing Beta]: Replace `org` for `organization` as payer type for billing APIs. ([#6423](https://github.com/clerk/javascript/pull/6423)) by [@panteliselef](https://github.com/panteliselef)
 435 | 
 436 |   This applies for all billing APIs, except the resources classes that represent data from Frontend API.
 437 | 
 438 | - Refactor base theme approach to enable opting into simple theme. ([#6371](https://github.com/clerk/javascript/pull/6371)) by [@alexcarpenter](https://github.com/alexcarpenter)
 439 | 
 440 |   ```tsx
 441 |   appearance={{
 442 |     theme: 'simple' // removes Clerk base theme
 443 |   }}
 444 |   ```
 445 | 
 446 | ### Patch Changes
 447 | 
 448 | - Update JSDocs for `SessionTask` to align with Clerk documentation ([#6396](https://github.com/clerk/javascript/pull/6396)) by [@LauraBeatris](https://github.com/LauraBeatris)
 449 | 
 450 | - Make `.finalize()` from useCheckout to return a Promise. ([#6422](https://github.com/clerk/javascript/pull/6422)) by [@panteliselef](https://github.com/panteliselef)
 451 | 
 452 | ## 4.70.1
 453 | 
 454 | ### Patch Changes
 455 | 
 456 | - Add TypeScript types for `<TaskSelectOrganization />` component. ([#6376](https://github.com/clerk/javascript/pull/6376)) by [@LauraBeatris](https://github.com/LauraBeatris)
 457 | 
 458 | ## 4.70.0
 459 | 
 460 | ### Minor Changes
 461 | 
 462 | - [Billing Beta] Introduce top level subscription. ([#6317](https://github.com/clerk/javascript/pull/6317)) by [@panteliselef](https://github.com/panteliselef)
 463 | 
 464 |   Updated `CommerceSubscriptionJSON` to describe the top level subscription and renamed the existing type to `CommerceSubscriptionItemJSON`.
 465 |   Deprecated `billing.getSubscriptions()` in favour of `billing.getSubscription`.
 466 | 
 467 | ## 4.69.0
 468 | 
 469 | ### Minor Changes
 470 | 
 471 | - [Billing Beta] Replace `payerType[]` with `forPayerType` typed as `'org' | 'user'`. ([#6342](https://github.com/clerk/javascript/pull/6342)) by [@panteliselef](https://github.com/panteliselef)
 472 | 
 473 | - Add optional `cssLayerName` to `BaseTheme` object ([#6322](https://github.com/clerk/javascript/pull/6322)) by [@alexcarpenter](https://github.com/alexcarpenter)
 474 | 
 475 | ### Patch Changes
 476 | 
 477 | - Introduce `__internal_hasAfterAuthFlows` flag ([#6366](https://github.com/clerk/javascript/pull/6366)) by [@LauraBeatris](https://github.com/LauraBeatris)
 478 | 
 479 | - Adjust the cases in which the Billing item shows within the `UserProfile` and `OrgProfile` components ([#6315](https://github.com/clerk/javascript/pull/6315)) by [@aeliox](https://github.com/aeliox)
 480 | 
 481 | - Add `taskUrls` option to customize task flow URLs: ([#6373](https://github.com/clerk/javascript/pull/6373)) by [@LauraBeatris](https://github.com/LauraBeatris)
 482 | 
 483 |   ```tsx
 484 |   <ClerkProvider
 485 |     taskUrls={{
 486 |       org: '/my-custom-org-selector',
 487 |     }}
 488 |   />
 489 |   ```
 490 | 
 491 | - Rename `org` session task key to `select-organization` ([#6372](https://github.com/clerk/javascript/pull/6372)) by [@LauraBeatris](https://github.com/LauraBeatris)
 492 | 
 493 | ## 4.68.0
 494 | 
 495 | ### Minor Changes
 496 | 
 497 | - [Billing Beta] Update `clerk.billing.getPlans()` to return paginated data and introduce the `usePlans()` hook. ([#6327](https://github.com/clerk/javascript/pull/6327)) by [@panteliselef](https://github.com/panteliselef)
 498 | 
 499 | - Improve invalid plan change callout for monthly-only plans ([#6248](https://github.com/clerk/javascript/pull/6248)) by [@aeliox](https://github.com/aeliox)
 500 | 
 501 | ### Patch Changes
 502 | 
 503 | - Ensure proper typing for `SignUpButton` and only allow `unsafeMetadata={...}` when `mode="modal"` ([#6340](https://github.com/clerk/javascript/pull/6340)) by [@tmilewski](https://github.com/tmilewski)
 504 | 
 505 | - - Render parsed `colorRing` at 15% vs 100% ([#6334](https://github.com/clerk/javascript/pull/6334)) by [@alexcarpenter](https://github.com/alexcarpenter)
 506 | 
 507 |   - Render parsed `colorModalBackdrop` at 73% vs 100%
 508 |   - Ensure `avatarBackground` and `avatarBorder` render with parsed neutral colors when `colorNeutral` is passed in via variables prop
 509 | 
 510 | ## 4.67.0
 511 | 
 512 | ### Minor Changes
 513 | 
 514 | - Do not trigger after-auth navigation from `useMultisessionActions` ([#6323](https://github.com/clerk/javascript/pull/6323)) by [@LauraBeatris](https://github.com/LauraBeatris)
 515 | 
 516 | ## 4.66.1
 517 | 
 518 | ### Patch Changes
 519 | 
 520 | - [Billing Beta] Add experimental JSDoc for `org.getSubscriptions`. ([#6318](https://github.com/clerk/javascript/pull/6318)) by [@panteliselef](https://github.com/panteliselef)
 521 | 
 522 | ## 4.66.0
 523 | 
 524 | ### Minor Changes
 525 | 
 526 | - Expose Clerk CSS variables as an option for theming Clerk's components. This change introduces CSS custom properties that allow developers to customize Clerk's appearance using standard CSS variables, providing a more flexible theming approach. ([#6275](https://github.com/clerk/javascript/pull/6275)) by [@alexcarpenter](https://github.com/alexcarpenter)
 527 | 
 528 |   ```css
 529 |   :root {
 530 |     --clerk-color-primary: #6d47ff;
 531 |     --clerk-color-primary-foreground: #ffffff;
 532 |   }
 533 |   ```
 534 | 
 535 |   ## Deprecated variables
 536 | 
 537 |   | Deprecated                     | New                      |
 538 |   | ------------------------------ | ------------------------ |
 539 |   | `colorText`                    | `colorForeground`        |
 540 |   | `colorTextOnPrimaryBackground` | `colorPrimaryForeground` |
 541 |   | `colorTextSecondary`           | `colorMutedForeground`   |
 542 |   | `spacingUnit`                  | `spacing`                |
 543 |   | `colorInputText`               | `colorInputForeground`   |
 544 |   | `colorInputBackground`         | `colorInput`             |
 545 | 
 546 |   Deprecated variables will continue to work but will be removed in the next major version.
 547 | 
 548 |   ## New variables
 549 | 
 550 |   - `colorRing` - The color of the ring when an interactive element is focused.
 551 |   - `colorMuted` - The background color for elements of lower importance, eg: a muted background.
 552 |   - `colorShadow` - The base shadow color used in the components.
 553 |   - `colorBorder` - The base border color used in the components.
 554 |   - `colorModalBackdrop` - The background color of the modal backdrop.
 555 | 
 556 | - Display past due subscriptions properly. ([#6309](https://github.com/clerk/javascript/pull/6309)) by [@panteliselef](https://github.com/panteliselef)
 557 | 
 558 | - Extract `SubscriptionDetails`, into its own internal component, out of existing (also internal) `PlanDetails` component. ([#6148](https://github.com/clerk/javascript/pull/6148)) by [@panteliselef](https://github.com/panteliselef)
 559 | 
 560 | ## 4.65.0
 561 | 
 562 | ### Minor Changes
 563 | 
 564 | - [Billing Beta]: Introduce experimental `Clerk.__experimental_checkout()` for managing the state of a checkout session. ([#6195](https://github.com/clerk/javascript/pull/6195)) by [@panteliselef](https://github.com/panteliselef)
 565 | 
 566 | ### Patch Changes
 567 | 
 568 | - Add notice for upcoming/possible breaking changes in commerce related APIs. ([#6285](https://github.com/clerk/javascript/pull/6285)) by [@panteliselef](https://github.com/panteliselef)
 569 | 
 570 | - Export `ClerkAPIResponseError` interface from types package. ([#6286](https://github.com/clerk/javascript/pull/6286)) by [@panteliselef](https://github.com/panteliselef)
 571 | 
 572 | ## 4.64.0
 573 | 
 574 | ### Minor Changes
 575 | 
 576 | - Add `__internal_loadStripeJs` in Clerk interface. ([#6180](https://github.com/clerk/javascript/pull/6180)) by [@panteliselef](https://github.com/panteliselef)
 577 | 
 578 | ### Patch Changes
 579 | 
 580 | - Add jsdoc comments for `payerType` in `CommercePlanResource`. ([#6257](https://github.com/clerk/javascript/pull/6257)) by [@panteliselef](https://github.com/panteliselef)
 581 | 
 582 | ## 4.63.0
 583 | 
 584 | ### Minor Changes
 585 | 
 586 | - Convert date properties from number to Date in CommerceSubscriptionResource ([#6233](https://github.com/clerk/javascript/pull/6233)) by [@panteliselef](https://github.com/panteliselef)
 587 | 
 588 |   Deprecates fields of type `number`
 589 | 
 590 |   - subscription.periodStart
 591 |   - subscription.periodEnd
 592 |   - subscription.canceledAt
 593 |     Introduces fields of type `Date`
 594 |   - subscription.periodStartDate
 595 |   - subscription.periodEndDate
 596 |   - subscription.canceledAtDate
 597 |   - subscription.createdAt
 598 | 
 599 | - Add `getPlan` by id to the billing namespace. ([#6230](https://github.com/clerk/javascript/pull/6230)) by [@panteliselef](https://github.com/panteliselef)
 600 | 
 601 | ## 4.62.1
 602 | 
 603 | ### Patch Changes
 604 | 
 605 | - Extract internal `ProtectProps` type to shared types to eliminate duplication across SDKs ([#6197](https://github.com/clerk/javascript/pull/6197)) by [@wobsoriano](https://github.com/wobsoriano)
 606 | 
 607 | ## 4.62.0
 608 | 
 609 | ### Minor Changes
 610 | 
 611 | - Introduce experimental paginated hooks for commerce data. ([#6159](https://github.com/clerk/javascript/pull/6159)) by [@panteliselef](https://github.com/panteliselef)
 612 | 
 613 |   - `useStatements`
 614 |   - `usePaymentAttempts`
 615 |   - `usePaymentMethods`
 616 |     Prefixed with `__experimental_`
 617 | 
 618 | ### Patch Changes
 619 | 
 620 | - Fixes stale `SignIn` object on `authenticateWithRedirect` for `saml` and `enterprise_sso` custom flows ([#6160](https://github.com/clerk/javascript/pull/6160)) by [@LauraBeatris](https://github.com/LauraBeatris)
 621 | 
 622 |   Previously, the same connection identifier would be used on every `authenticateWithRedirect` call leading to redirecting to the wrong identity provider
 623 | 
 624 | ## 4.61.0
 625 | 
 626 | ### Minor Changes
 627 | 
 628 | - Expose `__internal_LocalizationResource` which now includes metadata for which keys require interpolation. ([#6108](https://github.com/clerk/javascript/pull/6108)) by [@panteliselef](https://github.com/panteliselef)
 629 | 
 630 | - Add support for `expiresInSeconds` parameter in session token generation. This allows setting custom expiration times for tokens both with and without templates via the backend API. ([#6150](https://github.com/clerk/javascript/pull/6150)) by [@jacekradko](https://github.com/jacekradko)
 631 | 
 632 | ### Patch Changes
 633 | 
 634 | - Add element descriptors to `<APIKeys />` component ([#6095](https://github.com/clerk/javascript/pull/6095)) by [@wobsoriano](https://github.com/wobsoriano)
 635 | 
 636 | - Replace expiration segmented list with dropdown and hide description field in `<APIKeys />` component ([#6153](https://github.com/clerk/javascript/pull/6153)) by [@wobsoriano](https://github.com/wobsoriano)
 637 | 
 638 | ## 4.60.1
 639 | 
 640 | ### Patch Changes
 641 | 
 642 | - Add payment history tab to UserProfile and OrgProfile ([#6075](https://github.com/clerk/javascript/pull/6075)) by [@aeliox](https://github.com/aeliox)
 643 | 
 644 | - Add TypeScript types and en-US localization for upcoming `<APIKeys />` component. This component will initially be in early access. ([#5858](https://github.com/clerk/javascript/pull/5858)) by [@wobsoriano](https://github.com/wobsoriano)
 645 | 
 646 | - Add missing semibold FontWeightScale type ([#6114](https://github.com/clerk/javascript/pull/6114)) by [@jacekradko](https://github.com/jacekradko)
 647 | 
 648 | - Parse partial `plan` in `ClerkAPIError.meta` ([#6102](https://github.com/clerk/javascript/pull/6102)) by [@panteliselef](https://github.com/panteliselef)
 649 | 
 650 | - Add localizations for some commerce strings, general cleanups ([#6101](https://github.com/clerk/javascript/pull/6101)) by [@aeliox](https://github.com/aeliox)
 651 | 
 652 | - Introduce `commerce.checkout.pastDueNotice` localization key. ([#6097](https://github.com/clerk/javascript/pull/6097)) by [@panteliselef](https://github.com/panteliselef)
 653 | 
 654 | ## 4.60.0
 655 | 
 656 | ### Minor Changes
 657 | 
 658 | - Introduce `cssLayerName` option to allow users to opt Clerk styles into a native CSS layer. ([#5552](https://github.com/clerk/javascript/pull/5552)) by [@alexcarpenter](https://github.com/alexcarpenter)
 659 | 
 660 | ### Patch Changes
 661 | 
 662 | - Get `payment_method_order` for Stripe payment elements from backend ([#6034](https://github.com/clerk/javascript/pull/6034)) by [@aeliox](https://github.com/aeliox)
 663 | 
 664 | - Use the `is_removable` flag on a payment source to determine if it can be removed. ([#6033](https://github.com/clerk/javascript/pull/6033)) by [@aeliox](https://github.com/aeliox)
 665 | 
 666 | - Introduce internal `<OAuthConsent />` component to be used internally in the machine auth OAuth flow in account portal. ([#6021](https://github.com/clerk/javascript/pull/6021)) by [@alexcarpenter](https://github.com/alexcarpenter)
 667 | 
 668 | - feat(types,clerk-js): Update types; RoleSelect allows fallbackLabel ([#6037](https://github.com/clerk/javascript/pull/6037)) by [@thiskevinwang](https://github.com/thiskevinwang)
 669 | 
 670 |   - this updates OrganizationInvitation and OrganizationMembership resource+types to include `roleName` which is already present on frontend-api responses, as `role_name`.
 671 |   - this updates RoleSelect to allow rendering a `fallbackLabel` in the event that `value` does not map to any of the supplied roles
 672 | 
 673 | ## 4.59.3
 674 | 
 675 | ### Patch Changes
 676 | 
 677 | - Add "Past Due" amount on checkout flow when applicable ([#6014](https://github.com/clerk/javascript/pull/6014)) by [@octoper](https://github.com/octoper)
 678 | 
 679 | - Handle missing `publicUserData` in `OrganizationMembership` ([#6016](https://github.com/clerk/javascript/pull/6016)) by [@tmilewski](https://github.com/tmilewski)
 680 | 
 681 | ## 4.59.2
 682 | 
 683 | ### Patch Changes
 684 | 
 685 | - Replaces `useFetch` with `useSWR` or `useSWRMutation` in all commerce related components. ([#5939](https://github.com/clerk/javascript/pull/5939)) by [@panteliselef](https://github.com/panteliselef)
 686 | 
 687 | ## 4.59.1
 688 | 
 689 | ### Patch Changes
 690 | 
 691 | - Add support for country-specific alternative phone code channels ([#5937](https://github.com/clerk/javascript/pull/5937)) by [@anagstef](https://github.com/anagstef)
 692 | 
 693 | ## 4.59.0
 694 | 
 695 | ### Minor Changes
 696 | 
 697 | - Introduce `__experimental_startPath` option for `openOrganizationProfile`. ([#5926](https://github.com/clerk/javascript/pull/5926)) by [@alexcarpenter](https://github.com/alexcarpenter)
 698 | 
 699 |   Example usage:
 700 | 
 701 |   ```ts
 702 |   clerk.openOrganizationProfile({
 703 |     __experimental_startPath: '/billing',
 704 |   });
 705 |   ```
 706 | 
 707 | - Add `onClose` to `__internal_CheckoutProps`. ([#5916](https://github.com/clerk/javascript/pull/5916)) by [@panteliselef](https://github.com/panteliselef)
 708 | 
 709 | - Replaces strings with localizations throughout billing components. ([#5922](https://github.com/clerk/javascript/pull/5922)) by [@alexcarpenter](https://github.com/alexcarpenter)
 710 | 
 711 | ### Patch Changes
 712 | 
 713 | - Add `oidcPrompt` prop to `SignIn` and `SignUp` components and `authenticateWithRedirect` method to control the OIDC authentication prompt behavior during Enterprise SSO flows ([#5925](https://github.com/clerk/javascript/pull/5925)) by [@LauraBeatris](https://github.com/LauraBeatris)
 714 | 
 715 |   ```tsx
 716 |   <SignUp oidcPrompt='select_account' />
 717 |   <SignIn oidcPrompt='select_account' />
 718 |   ```
 719 | 
 720 |   ```ts
 721 |   signUp.authenticateWithRedirect({ redirectUrl: '/sso-callback', oidcPrompt: 'select_account' });
 722 |   ```
 723 | 
 724 | - Add `drawerRoot` descriptor and adjust z-index approach. ([#5924](https://github.com/clerk/javascript/pull/5924)) by [@alexcarpenter](https://github.com/alexcarpenter)
 725 | 
 726 | ## 4.58.1
 727 | 
 728 | ### Patch Changes
 729 | 
 730 | - Introduce `WhatsApp` as an alternative channel for phone code delivery. ([#5894](https://github.com/clerk/javascript/pull/5894)) by [@anagstef](https://github.com/anagstef)
 731 | 
 732 |   The new `channel` property accompanies the `phone_code` strategy. Possible values: `whatsapp` and `sms`.
 733 | 
 734 | - Display a better subscription list / button when empty and the free plan is hidden ([#5912](https://github.com/clerk/javascript/pull/5912)) by [@aeliox](https://github.com/aeliox)
 735 | 
 736 | ## 4.58.0
 737 | 
 738 | ### Minor Changes
 739 | 
 740 | - Fix issue where we were not correctly passing the checkoutProps through within the PricingTable component. Removes internal checkoutProps prefix from PricingTableBaseProps. ([#5888](https://github.com/clerk/javascript/pull/5888)) by [@alexcarpenter](https://github.com/alexcarpenter)
 741 | 
 742 | ### Patch Changes
 743 | 
 744 | - Update profile components plans page heading from `Switch plans` to `Plans` ([#5889](https://github.com/clerk/javascript/pull/5889)) by [@alexcarpenter](https://github.com/alexcarpenter)
 745 | 
 746 | - Add element descriptor to the text element rendered within UserPreview component. ([#5878](https://github.com/clerk/javascript/pull/5878)) by [@alexcarpenter](https://github.com/alexcarpenter)
 747 | 
 748 | - Add descriptor ids to `UserMembershipList` and `OrganizationSwitcherTrigger` elements to improve styling experience. ([#5881](https://github.com/clerk/javascript/pull/5881)) by [@alexcarpenter](https://github.com/alexcarpenter)
 749 | 
 750 | - Fix the "Plan starts at" date when a user downgrades from a paid plan to the free plan ([#5893](https://github.com/clerk/javascript/pull/5893)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 751 | 
 752 | ## 4.57.1
 753 | 
 754 | ### Patch Changes
 755 | 
 756 | - Update PricingTable badge and status messaging. ([#5844](https://github.com/clerk/javascript/pull/5844)) by [@alexcarpenter](https://github.com/alexcarpenter)
 757 | 
 758 | - Add new Billing Statements UI to User and Org Profile ([#5850](https://github.com/clerk/javascript/pull/5850)) by [@aeliox](https://github.com/aeliox)
 759 | 
 760 | - Show annual amount in the subscriptions list if the subscription has annual plan period ([#5863](https://github.com/clerk/javascript/pull/5863)) by [@octoper](https://github.com/octoper)
 761 | 
 762 | - Update `PricingTable` plan card UI ([#5844](https://github.com/clerk/javascript/pull/5844)) by [@alexcarpenter](https://github.com/alexcarpenter)
 763 | 
 764 | - Update `<Checkout />` line items to include `x12` prefix when plan is annual ([#5857](https://github.com/clerk/javascript/pull/5857)) by [@nikospapcom](https://github.com/nikospapcom)
 765 | 
 766 | ## 4.57.0
 767 | 
 768 | ### Minor Changes
 769 | 
 770 | - Mark commerce apis as stable ([#5833](https://github.com/clerk/javascript/pull/5833)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 771 | 
 772 | - Expose Clerk Billing APIs. ([#5833](https://github.com/clerk/javascript/pull/5833)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 773 | 
 774 |   ## Render the pricing table component
 775 | 
 776 |   - `Clerk.mountPricingTable`
 777 |   - `Clerk.unmountPricingTable`
 778 | 
 779 |   ## Manage payment methods
 780 | 
 781 |   - `Clerk.[user|organization].initializePaymentSource()`
 782 |   - `Clerk.[user|organization].addPaymentSource()`
 783 |   - `Clerk.[user|organization].getPaymentSources()`
 784 | 
 785 |   ## Billing namespace
 786 | 
 787 |   - `Clerk.billing`
 788 |     - `Clerk.billing.getPlans()`
 789 |     - `Clerk.billing.getSubscriptions()`
 790 |     - `Clerk.billing.getInvoices()`
 791 |     - `Clerk.billing.startCheckout()`
 792 | 
 793 | ### Patch Changes
 794 | 
 795 | - Move `credit` at the top-level and remove `proration` property ([#5849](https://github.com/clerk/javascript/pull/5849)) by [@octoper](https://github.com/octoper)
 796 | 
 797 | - Add support for switching to the free plan ([#5810](https://github.com/clerk/javascript/pull/5810)) by [@aeliox](https://github.com/aeliox)
 798 | 
 799 | - Only allow members with `org:sys_billing:manage` to manage billing for an Organization ([#5835](https://github.com/clerk/javascript/pull/5835)) by [@octoper](https://github.com/octoper)
 800 | 
 801 | - Introduce `<Tooltip />` primitive ([#5841](https://github.com/clerk/javascript/pull/5841)) by [@alexcarpenter](https://github.com/alexcarpenter)
 802 | 
 803 | - Rename ` __experimental_nextTask` to `__experimental_navigateToTask` ([#5715](https://github.com/clerk/javascript/pull/5715)) by [@LauraBeatris](https://github.com/LauraBeatris)
 804 | 
 805 | - Introduce `checkoutContinueUrl` option. ([#5807](https://github.com/clerk/javascript/pull/5807)) by [@alexcarpenter](https://github.com/alexcarpenter)
 806 | 
 807 | - Adjusts the layout of the `PricingTable` plan cards ([#5824](https://github.com/clerk/javascript/pull/5824)) by [@aeliox](https://github.com/aeliox)
 808 | 
 809 | - Allow switching from an existing monthly subscription to an annual subscription for the same plan ([#5811](https://github.com/clerk/javascript/pull/5811)) by [@aeliox](https://github.com/aeliox)
 810 | 
 811 | - Rename CheckoutProps and PlanDetailsProps to **internal_CheckoutProps and **internal_PlanDetailsProps ([#5838](https://github.com/clerk/javascript/pull/5838)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 812 | 
 813 | - Update SubscriptionsList UI to be rendered within ProfileSections within UserProfile and OrganizationProfile. ([#5847](https://github.com/clerk/javascript/pull/5847)) by [@alexcarpenter](https://github.com/alexcarpenter)
 814 | 
 815 | - Update checkout downgrade notice placement and text. ([#5837](https://github.com/clerk/javascript/pull/5837)) by [@alexcarpenter](https://github.com/alexcarpenter)
 816 | 
 817 | - Rename \_\_experimental_checkoutContinueUrl to checkoutContinueUrl ([#5826](https://github.com/clerk/javascript/pull/5826)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 818 | 
 819 | - Add `Pay with test card` button on `<AddPaymentSource />` component in dev instance ([#5831](https://github.com/clerk/javascript/pull/5831)) by [@nikospapcom](https://github.com/nikospapcom)
 820 | 
 821 | - Replace \_\_experimental_PricingTable with PricingTable ([#5828](https://github.com/clerk/javascript/pull/5828)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
 822 | 
 823 | ## 4.56.3
 824 | 
 825 | ### Patch Changes
 826 | 
 827 | - Use the `total.proration.credit` to show the proration credit on checkout flow ([#5792](https://github.com/clerk/javascript/pull/5792)) by [@octoper](https://github.com/octoper)
 828 | 
 829 | - Remove unused properties from proration response in checkout ([#5793](https://github.com/clerk/javascript/pull/5793)) by [@octoper](https://github.com/octoper)
 830 | 
 831 | ## 4.56.2
 832 | 
 833 | ### Patch Changes
 834 | 
 835 | - Fix issue where the checkout component was portaling into the wrong profile component when two profile components were rendered at once. ([#5779](https://github.com/clerk/javascript/pull/5779)) by [@alexcarpenter](https://github.com/alexcarpenter)
 836 | 
 837 | ## 4.56.1
 838 | 
 839 | ### Patch Changes
 840 | 
 841 | - Display upgrade and downgrade information on `<Checkout />`. ([#5746](https://github.com/clerk/javascript/pull/5746)) by [@panteliselef](https://github.com/panteliselef)
 842 | 
 843 | - Refactor PricingTable components to use RootBox component for top level element. ([#5747](https://github.com/clerk/javascript/pull/5747)) by [@alexcarpenter](https://github.com/alexcarpenter)
 844 | 
 845 | ## 4.56.0
 846 | 
 847 | ### Minor Changes
 848 | 
 849 | - Introduce `<PricingTable forOrganizations />` to display plans that available only for organizations. ([#5740](https://github.com/clerk/javascript/pull/5740)) by [@panteliselef](https://github.com/panteliselef)
 850 | 
 851 | ### Patch Changes
 852 | 
 853 | - Checkout confirm request handles both new/existing payment sources ([#5745](https://github.com/clerk/javascript/pull/5745)) by [@octoper](https://github.com/octoper)
 854 | 
 855 | - Exclude matrix variant of `<PricingTable />`. ([#5724](https://github.com/clerk/javascript/pull/5724)) by [@panteliselef](https://github.com/panteliselef)
 856 | 
 857 | - Renames all instances of `SubscriptionDetails` to `PlanDetails` to better reflect the capabilities, use cases, and params of the component. ([#5749](https://github.com/clerk/javascript/pull/5749)) by [@aeliox](https://github.com/aeliox)
 858 | 
 859 | - Split `CommerceTotals` to `CommerceCheckoutTotals` and `CommerceInvoiceTotals`. ([#5726](https://github.com/clerk/javascript/pull/5726)) by [@panteliselef](https://github.com/panteliselef)
 860 | 
 861 | - - Break out subscriptions and plans into different pages within `UserProfile` and `OrgProfile` ([#5727](https://github.com/clerk/javascript/pull/5727)) by [@aeliox](https://github.com/aeliox)
 862 | 
 863 |   - Display free plan row when "active" and plan has features
 864 |   - Tidy up design of subscription rows and badging
 865 |   - Adds `SubscriptionDetails` support for plans without a current subscription
 866 | 
 867 | - Remove stale properties from `__experimental_CommerceInvoiceResource` ([#5738](https://github.com/clerk/javascript/pull/5738)) by [@panteliselef](https://github.com/panteliselef)
 868 | 
 869 | - Switch to "Payment method" terminology instead of "Payment source". ([#5721](https://github.com/clerk/javascript/pull/5721)) by [@panteliselef](https://github.com/panteliselef)
 870 | 
 871 |   - Removes `userProfile.__experimental_billingPage.start.headerTitle__paymentSources`
 872 |   - Adds `userProfile.__experimental_billingPage.start.headerTitle__paymentMethods`
 873 | 
 874 | - Update `checkout.totals.totalDueNow` to always be defined. ([#5720](https://github.com/clerk/javascript/pull/5720)) by [@panteliselef](https://github.com/panteliselef)
 875 | 
 876 | ## 4.55.1
 877 | 
 878 | ### Patch Changes
 879 | 
 880 | - Make the `session_exists` error message more user-friendly and localize ([#5699](https://github.com/clerk/javascript/pull/5699)) by [@tmilewski](https://github.com/tmilewski)
 881 | 
 882 | ## 4.55.0
 883 | 
 884 | ### Minor Changes
 885 | 
 886 | - Introduce `Clerk.status` for tracking the state of the clerk singleton. ([#5476](https://github.com/clerk/javascript/pull/5476)) by [@panteliselef](https://github.com/panteliselef)
 887 | 
 888 |   Possible values for `Clerk.status` are:
 889 | 
 890 |   - `"loading"`: Set during initialization
 891 |   - `"error"`: Set when hotloading clerk-js failed or `Clerk.load()` failed
 892 |   - `"ready"`: Set when Clerk is fully operational
 893 |   - `"degraded"`: Set when Clerk is partially operational
 894 | 
 895 |   The computed value of `Clerk.loaded` is:
 896 | 
 897 |   - `true` when `Clerk.status` is either `"ready"` or `"degraded"`.
 898 |   - `false` when `Clerk.status` is `"loading"` or `"error"`.
 899 | 
 900 | ### Patch Changes
 901 | 
 902 | - - Adds support for collecting and verifying user email (when they don't already have one associated with their payer) during checkout ([#5671](https://github.com/clerk/javascript/pull/5671)) by [@aeliox](https://github.com/aeliox)
 903 | 
 904 |   - Fixes incorrect org invoices endpoint.
 905 |   - Extracts plan CTA button styling, labeling, and selecting into context methods.
 906 |   - Adds UserProfile / OrgProfile specific scrollbox IDs for drawer portal-ing (fixes issue where both could be open)
 907 |   - Fixes incorrect button action in SubscriptionList for active but expiring subscriptions.
 908 | 
 909 | - Add `<SubscriptionsList />` to both UserProfile and OrgProfile components. ([#5658](https://github.com/clerk/javascript/pull/5658)) by [@alexcarpenter](https://github.com/alexcarpenter)
 910 | 
 911 |   Introduce experimental method for opening `<SubscriptionDetails />` component.
 912 | 
 913 |   ```tsx
 914 |   clerk.__experimental_openSubscriptionDetails(...)
 915 |   ```
 916 | 
 917 | ## 4.54.2
 918 | 
 919 | ### Patch Changes
 920 | 
 921 | - Refactor InvoicePage title and invoice ID UI. ([#5655](https://github.com/clerk/javascript/pull/5655)) by [@alexcarpenter](https://github.com/alexcarpenter)
 922 | 
 923 | - Improve JSDoc comments ([#5643](https://github.com/clerk/javascript/pull/5643)) by [@alexisintech](https://github.com/alexisintech)
 924 | 
 925 | - Chore: improve checkout error handling ([#5654](https://github.com/clerk/javascript/pull/5654)) by [@aeliox](https://github.com/aeliox)
 926 | 
 927 | - Chore: display correct total for checkout complete page ([#5650](https://github.com/clerk/javascript/pull/5650)) by [@aeliox](https://github.com/aeliox)
 928 | 
 929 | ## 4.54.1
 930 | 
 931 | ### Patch Changes
 932 | 
 933 | - Improve JSDoc comments ([#5641](https://github.com/clerk/javascript/pull/5641)) by [@LekoArts](https://github.com/LekoArts)
 934 | 
 935 | - Append expired status to invitation types ([#5646](https://github.com/clerk/javascript/pull/5646)) by [@tmilewski](https://github.com/tmilewski)
 936 | 
 937 | - Improve JSDoc comments ([#5630](https://github.com/clerk/javascript/pull/5630)) by [@LekoArts](https://github.com/LekoArts)
 938 | 
 939 | - Chore: tidy up checkout complete state for upcoming subscriptions ([#5644](https://github.com/clerk/javascript/pull/5644)) by [@aeliox](https://github.com/aeliox)
 940 | 
 941 | - Hide Billing tabs from UP and OP when no paid plans exist for an instance. ([#5628](https://github.com/clerk/javascript/pull/5628)) by [@panteliselef](https://github.com/panteliselef)
 942 | 
 943 | - Updates `PricingTable` and `SubscriptionDetailDrawer` to handle `upcoming` and "expiring" subscriptions. ([#5601](https://github.com/clerk/javascript/pull/5601)) by [@aeliox](https://github.com/aeliox)
 944 | 
 945 | ## 4.54.0
 946 | 
 947 | ### Minor Changes
 948 | 
 949 | - Add `pla` claim to `VersionedJwtPayload`. ([#5582](https://github.com/clerk/javascript/pull/5582)) by [@panteliselef](https://github.com/panteliselef)
 950 | 
 951 | ### Patch Changes
 952 | 
 953 | - Nest existing commerce settings under `billing`. ([#5612](https://github.com/clerk/javascript/pull/5612)) by [@panteliselef](https://github.com/panteliselef)
 954 | 
 955 | - Rename the `sendCaptchaToken` to `__internal_sendCaptchaToken`. ([#5581](https://github.com/clerk/javascript/pull/5581)) by [@anagstef](https://github.com/anagstef)
 956 | 
 957 | - Improve JSDoc comments ([#5578](https://github.com/clerk/javascript/pull/5578)) by [@LekoArts](https://github.com/LekoArts)
 958 | 
 959 | - Improve JSDoc comments ([#5596](https://github.com/clerk/javascript/pull/5596)) by [@LekoArts](https://github.com/LekoArts)
 960 | 
 961 | ## 4.53.0
 962 | 
 963 | ### Minor Changes
 964 | 
 965 | - Introduce `sessionClaims` to useAuth(). ([#5565](https://github.com/clerk/javascript/pull/5565)) by [@panteliselef](https://github.com/panteliselef)
 966 | 
 967 |   - thanks to [@ijxy](https://github.com/ijxy) for the [contribution](https://github.com/clerk/javascript/pull/4823)
 968 | 
 969 | ## 4.52.0
 970 | 
 971 | ### Minor Changes
 972 | 
 973 | - Adding the new `o` claim that contains all organization related info for JWT v2 schema ([#5549](https://github.com/clerk/javascript/pull/5549)) by [@octoper](https://github.com/octoper)
 974 | 
 975 | ### Patch Changes
 976 | 
 977 | - Add Payment Sources to `<OrgProfile />`, hook up all org-related payment source and checkout methods to the org-specific endpoints ([#5554](https://github.com/clerk/javascript/pull/5554)) by [@aeliox](https://github.com/aeliox)
 978 | 
 979 | - Add copy and truncation options to `<LineItems.Description />` component. ([#5560](https://github.com/clerk/javascript/pull/5560)) by [@alexcarpenter](https://github.com/alexcarpenter)
 980 | 
 981 | - Optionally handle the `intent` parameter on SSO redirects to reload specific resources. ([#5553](https://github.com/clerk/javascript/pull/5553)) by [@dstaley](https://github.com/dstaley)
 982 | 
 983 | ## 4.51.1
 984 | 
 985 | ### Patch Changes
 986 | 
 987 | - Expose the 'external_account.phone_number' property. This represents the associated phone number, if exists, with the specific external account ([#5557](https://github.com/clerk/javascript/pull/5557)) by [@chanioxaris](https://github.com/chanioxaris)
 988 | 
 989 | ## 4.51.0
 990 | 
 991 | ### Minor Changes
 992 | 
 993 | - Introduces `ver` as JWT claim to allow versioning of the session token. ([#5521](https://github.com/clerk/javascript/pull/5521)) by [@octoper](https://github.com/octoper)
 994 | 
 995 | ### Patch Changes
 996 | 
 997 | - Fixes an issue where a race condition was caused by triggering navigations during a call to `setActive`. ([#5515](https://github.com/clerk/javascript/pull/5515)) by [@dstaley](https://github.com/dstaley)
 998 | 
 999 | - Introduce `clerk.__internal_openCheckout()` and `clerk.__internal_closeCheckout()` methods and remove `<Checkout />` from within the `<PricingTable />` component. ([#5481](https://github.com/clerk/javascript/pull/5481)) by [@alexcarpenter](https://github.com/alexcarpenter)
1000 | 
1001 | - Mark `ver` claim as experimental ([#5548](https://github.com/clerk/javascript/pull/5548)) by [@octoper](https://github.com/octoper)
1002 | 
1003 | ## 4.50.2
1004 | 
1005 | ### Patch Changes
1006 | 
1007 | - Improve JSDoc comments ([#5457](https://github.com/clerk/javascript/pull/5457)) by [@alexisintech](https://github.com/alexisintech)
1008 | 
1009 | - Remove usage of `<PlanCard />` from `<SubscriptionDetailDrawer />`. ([#5469](https://github.com/clerk/javascript/pull/5469)) by [@alexcarpenter](https://github.com/alexcarpenter)
1010 | 
1011 | - Add payment source section to `UserProfile` ([#5492](https://github.com/clerk/javascript/pull/5492)) by [@aeliox](https://github.com/aeliox)
1012 | 
1013 | ## 4.50.1
1014 | 
1015 | ### Patch Changes
1016 | 
1017 | - Add billing page to `OrgProfile`, use new `usePlans` hook, and adds new subscription methods ([#5423](https://github.com/clerk/javascript/pull/5423)) by [@aeliox](https://github.com/aeliox)
1018 | 
1019 | - Refactor `<PricingTableDefault />` to use local sub components to align with `<PricingTableMatrix />` implementation and descriptors. ([#5450](https://github.com/clerk/javascript/pull/5450)) by [@alexcarpenter](https://github.com/alexcarpenter)
1020 | 
1021 | ## 4.50.0
1022 | 
1023 | ### Minor Changes
1024 | 
1025 | - Add support for the `oauthFlow` prop on `<SignIn />` and `<SignUp />`, allowing developers to opt-in to using a popup for OAuth authorization instead of redirects. ([#5239](https://github.com/clerk/javascript/pull/5239)) by [@dstaley](https://github.com/dstaley)
1026 | 
1027 |   With the new `oauthFlow` prop, developers can opt-in to using a popup window instead of redirects for their OAuth flows by setting `oauthFlow` to `"popup"`. While we still recommend the default `"redirect"` for most scenarios, the `"popup"` option is useful in environments where the redirect flow does not currently work, such as when your application is embedded into an `iframe`. We also opt applications into the `"popup"` flow when we detect that your application is running on a domain that's typically embedded into an `iframe`, such as `loveable.app`.
1028 | 
1029 | ### Patch Changes
1030 | 
1031 | - Load tasks based on environment settings ([#5422](https://github.com/clerk/javascript/pull/5422)) by [@LauraBeatris](https://github.com/LauraBeatris)
1032 | 
1033 | - Derive session status from server-side state ([#5447](https://github.com/clerk/javascript/pull/5447)) by [@LauraBeatris](https://github.com/LauraBeatris)
1034 | 
1035 | ## 4.49.2
1036 | 
1037 | ### Patch Changes
1038 | 
1039 | - Wrap nested `<Checkout />` component in its own AppearanceProvider to recieve its own appearance object. ([#5443](https://github.com/clerk/javascript/pull/5443)) by [@alexcarpenter](https://github.com/alexcarpenter)
1040 | 
1041 | ## 4.49.1
1042 | 
1043 | ### Patch Changes
1044 | 
1045 | - Introduce `__experimental_nextTask` method for navigating to next tasks on a after-auth flow ([#5377](https://github.com/clerk/javascript/pull/5377)) by [@LauraBeatris](https://github.com/LauraBeatris)
1046 | 
1047 | ## 4.49.0
1048 | 
1049 | ### Minor Changes
1050 | 
1051 | - Navigate to tasks on after sign-in/sign-up ([#5280](https://github.com/clerk/javascript/pull/5280)) by [@LauraBeatris](https://github.com/LauraBeatris)
1052 | 
1053 | - Allow user set primary web3 wallet in `<UserProfile />` when more than one web3 wallets presented ([#5353](https://github.com/clerk/javascript/pull/5353)) by [@nikospapcom](https://github.com/nikospapcom)
1054 | 
1055 | - Deprecate out of date jwt types in favour of existing that are up-to-date. ([#5354](https://github.com/clerk/javascript/pull/5354)) by [@panteliselef](https://github.com/panteliselef)
1056 | 
1057 | ### Patch Changes
1058 | 
1059 | - Simplify plan card avatar badge container styling. ([#5355](https://github.com/clerk/javascript/pull/5355)) by [@alexcarpenter](https://github.com/alexcarpenter)
1060 | 
1061 | - Introduce `<Drawer.Confirmation />` component to be used within Commerce cancel subscription flow. ([#5376](https://github.com/clerk/javascript/pull/5376)) by [@alexcarpenter](https://github.com/alexcarpenter)
1062 | 
1063 | - Hide personal workspace options when organization selection is enforced ([#5391](https://github.com/clerk/javascript/pull/5391)) by [@LauraBeatris](https://github.com/LauraBeatris)
1064 | 
1065 | - Allow token refresh when Client failed to resolve. ([#5345](https://github.com/clerk/javascript/pull/5345)) by [@panteliselef](https://github.com/panteliselef)
1066 | 
1067 | - Improve JSDoc documentation ([#5372](https://github.com/clerk/javascript/pull/5372)) by [@LekoArts](https://github.com/LekoArts)
1068 | 
1069 | - Introduce experimental billing APIs and components ([#5248](https://github.com/clerk/javascript/pull/5248)) by [@aeliox](https://github.com/aeliox)
1070 | 
1071 | - Introduce `<Drawer />` component and update commerce components implementations to make use of it. ([#5337](https://github.com/clerk/javascript/pull/5337)) by [@alexcarpenter](https://github.com/alexcarpenter)
1072 | 
1073 | - Conditionally render the avatar and badge components within PlanCard. ([#5348](https://github.com/clerk/javascript/pull/5348)) by [@alexcarpenter](https://github.com/alexcarpenter)
1074 | 
1075 | - Refactor `<Checkout />` components to apply descriptors and ensure styling is properly connected to theming layer. ([#5359](https://github.com/clerk/javascript/pull/5359)) by [@alexcarpenter](https://github.com/alexcarpenter)
1076 | 
1077 | ## 4.48.0
1078 | 
1079 | ### Minor Changes
1080 | 
1081 | - Support passkeys as a first factor strategy for reverification ([#5242](https://github.com/clerk/javascript/pull/5242)) by [@octoper](https://github.com/octoper)
1082 | 
1083 | ### Patch Changes
1084 | 
1085 | - Improve JSDoc documentation ([#5296](https://github.com/clerk/javascript/pull/5296)) by [@LekoArts](https://github.com/LekoArts)
1086 | 
1087 | - Improve the UX on Reverification by not requiring the user's current password. ([#5284](https://github.com/clerk/javascript/pull/5284)) by [@chanioxaris](https://github.com/chanioxaris)
1088 | 
1089 |   The user has already verified themselves using Reverification, so there is no point to maintain a two level verification in case they would like to change their password. Also, Reverification is a stronger verification factor, as it includes strategies such as email code.
1090 | 
1091 | - Remove unused `experimental.combinedFlow` option. ([#5290](https://github.com/clerk/javascript/pull/5290)) by [@panteliselef](https://github.com/panteliselef)
1092 | 
1093 | ## 4.47.0
1094 | 
1095 | ### Minor Changes
1096 | 
1097 | - Introduce the `appearance.captcha` property for the CAPTCHA widget ([#5184](https://github.com/clerk/javascript/pull/5184)) by [@anagstef](https://github.com/anagstef)
1098 | 
1099 | - Surface new `pending` session as a signed-in state ([#5136](https://github.com/clerk/javascript/pull/5136)) by [@LauraBeatris](https://github.com/LauraBeatris)
1100 | 
1101 | ### Patch Changes
1102 | 
1103 | - Initialize `tasks` on `Session` resource ([#5170](https://github.com/clerk/javascript/pull/5170)) by [@LauraBeatris](https://github.com/LauraBeatris)
1104 | 
1105 | ## 4.46.1
1106 | 
1107 | ### Patch Changes
1108 | 
1109 | - Support passing additional properties to `eventPrebuiltComponentMounted()`, and ensure `withSignUp` is collected on `SignIn` mount. ([#5150](https://github.com/clerk/javascript/pull/5150)) by [@brkalow](https://github.com/brkalow)
1110 | 
1111 | ## 4.46.0
1112 | 
1113 | ### Minor Changes
1114 | 
1115 | - Introduce `__internal_addNavigationListener` method the `Clerk` singleton. ([#5092](https://github.com/clerk/javascript/pull/5092)) by [@panteliselef](https://github.com/panteliselef)
1116 | 
1117 | - Extract common button component props. ([#5125](https://github.com/clerk/javascript/pull/5125)) by [@alexcarpenter](https://github.com/alexcarpenter)
1118 | 
1119 | ## 4.45.1
1120 | 
1121 | ### Patch Changes
1122 | 
1123 | - Add `menuButtonEllipsis` element descriptor. ([#5090](https://github.com/clerk/javascript/pull/5090)) by [@alexcarpenter](https://github.com/alexcarpenter)
1124 | 
1125 | - Small JSDoc and type improvements ([#5099](https://github.com/clerk/javascript/pull/5099)) by [@LekoArts](https://github.com/LekoArts)
1126 | 
1127 | - Replaces hard-coded string `"Add a passkey"` with a new localization key `userProfile.start.passkeysSection.primaryButton` ([#5105](https://github.com/clerk/javascript/pull/5105)) by [@Philitician](https://github.com/Philitician)
1128 | 
1129 | ## 4.45.0
1130 | 
1131 | ### Minor Changes
1132 | 
1133 | - - `@clerk/clerk-js`, `@clerk/types`: Add `redirectUrl` option to `buildAfterSignInUrl()` and `buildAfterSignUpUrl()` methods. ([#5052](https://github.com/clerk/javascript/pull/5052)) by [@brkalow](https://github.com/brkalow)
1134 | 
1135 |   - `@clerk/elements`: Ensure redirect_url params passed to Elements components are always passed to Clerk's underlying `build*Url()` methods.
1136 | 
1137 | ### Patch Changes
1138 | 
1139 | - Reverts [#4977](https://github.com/clerk/javascript/pull/4977) ([#5057](https://github.com/clerk/javascript/pull/5057)) by [@alexcarpenter](https://github.com/alexcarpenter)
1140 | 
1141 |   Marks virtual routing as deprecated.
1142 | 
1143 | ## 4.44.3
1144 | 
1145 | ### Patch Changes
1146 | 
1147 | - Improve JSDoc comments to provide better IntelliSense in your IDE ([#5053](https://github.com/clerk/javascript/pull/5053)) by [@LekoArts](https://github.com/LekoArts)
1148 | 
1149 | ## 4.44.2
1150 | 
1151 | ### Patch Changes
1152 | 
1153 | - Remove `'virtual'` from the `routing` option. The `'virtual'` value is only used internally and should not be part of the public API. ([#4977](https://github.com/clerk/javascript/pull/4977)) by [@alexcarpenter](https://github.com/alexcarpenter)
1154 | 
1155 | ## 4.44.1
1156 | 
1157 | ### Patch Changes
1158 | 
1159 | - Add `subtitleCombined` localizations to sign-in-or-up flow. ([#4988](https://github.com/clerk/javascript/pull/4988)) by [@alexcarpenter](https://github.com/alexcarpenter)
1160 | 
1161 | - Introduced searching for members list on `OrganizationProfile` ([#4942](https://github.com/clerk/javascript/pull/4942)) by [@LauraBeatris](https://github.com/LauraBeatris)
1162 | 
1163 | ## 4.44.0
1164 | 
1165 | ### Minor Changes
1166 | 
1167 | - Deprecated `userProfile.emailAddressPage.emailLink.formHint` and `userProfile.emailAddressPage.emailCode.formHint` in favor of `userProfile.emailAddressPage.formHint` ([#4406](https://github.com/clerk/javascript/pull/4406)) by [@NicolasLopes7](https://github.com/NicolasLopes7)
1168 | 
1169 | ### Patch Changes
1170 | 
1171 | - Add sign up title localization for use in sign-in-or-up flow. ([#4983](https://github.com/clerk/javascript/pull/4983)) by [@alexcarpenter](https://github.com/alexcarpenter)
1172 | 
1173 | ## 4.43.0
1174 | 
1175 | ### Minor Changes
1176 | 
1177 | - - Introduced an `upsert` method to the `SignUp` resource, which reuses the existing sign-up attempt ID if it exists. ([#4720](https://github.com/clerk/javascript/pull/4720)) by [@kostaspt](https://github.com/kostaspt)
1178 | 
1179 |   - Fix a ticket flow issue on `<SignUp />` component, where in some rare cases the initial ticket/context is lost, because of creating a new sign-up attempt ID.
1180 | 
1181 | ## 4.42.0
1182 | 
1183 | ### Minor Changes
1184 | 
1185 | - Display keyless prompt until the developer manually dismisses it. ([#4940](https://github.com/clerk/javascript/pull/4940)) by [@panteliselef](https://github.com/panteliselef)
1186 | 
1187 | ### Patch Changes
1188 | 
1189 | - Update modal methods to use the correct types. ([#4931](https://github.com/clerk/javascript/pull/4931)) by [@alexcarpenter](https://github.com/alexcarpenter)
1190 | 
1191 | ## 4.41.2
1192 | 
1193 | ### Patch Changes
1194 | 
1195 | - Remove experimental prefix from combined title. ([#4935](https://github.com/clerk/javascript/pull/4935)) by [@alexcarpenter](https://github.com/alexcarpenter)
1196 | 
1197 | ## 4.41.1
1198 | 
1199 | ### Patch Changes
1200 | 
1201 | - Support `enterprise_sso` strategy (SAML, OIDC, EASIE) on custom flows with `@clerk/elements` ([#4916](https://github.com/clerk/javascript/pull/4916)) by [@LauraBeatris](https://github.com/LauraBeatris)
1202 | 
1203 | ## 4.41.0
1204 | 
1205 | ### Minor Changes
1206 | 
1207 | - Introduce sign-in-or-up flow. ([#4788](https://github.com/clerk/javascript/pull/4788)) by [@alexcarpenter](https://github.com/alexcarpenter)
1208 | 
1209 | ### Patch Changes
1210 | 
1211 | - Improve runtime prop checking for single-file components ([#4902](https://github.com/clerk/javascript/pull/4902)) by [@wobsoriano](https://github.com/wobsoriano)
1212 | 
1213 | - Skip fraud protection if client has bypass enabled ([#4907](https://github.com/clerk/javascript/pull/4907)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
1214 | 
1215 | ## 4.40.3
1216 | 
1217 | ### Patch Changes
1218 | 
1219 | - Update `socialButtonsBlockButtonManyInView` to only accept `'${string}{{provider|titleize}}${string}'` or `undefined`. ([#4887](https://github.com/clerk/javascript/pull/4887)) by [@panteliselef](https://github.com/panteliselef)
1220 | 
1221 | ## 4.40.2
1222 | 
1223 | ### Patch Changes
1224 | 
1225 | - Add type-level validation to prevent server-side usage of system permissions ([#4816](https://github.com/clerk/javascript/pull/4816)) by [@LauraBeatris](https://github.com/LauraBeatris)
1226 | 
1227 |   System permissions (e.g., `org:sys_domains:manage`) are intentionally excluded from session claims to maintain reasonable JWT sizes. For more information, refer to our docs: https://clerk.com/docs/organizations/roles-permissions#system-permissions
1228 | 
1229 | ## 4.40.1
1230 | 
1231 | ### Patch Changes
1232 | 
1233 | - Improve error handling when trying to sign-in/sign-up with web3 wallet and wallet is not installed in the browser ([#4845](https://github.com/clerk/javascript/pull/4845)) by [@nikospapcom](https://github.com/nikospapcom)
1234 | 
1235 | ## 4.40.0
1236 | 
1237 | ### Minor Changes
1238 | 
1239 | - Adds `oidcLoginHint` & `oidcPrompt` parameters to following types: ([#4789](https://github.com/clerk/javascript/pull/4789)) by [@octoper](https://github.com/octoper)
1240 | 
1241 |   - `ReauthorizeExternalAccountParams`
1242 |   - `OAuthConfig`
1243 |   - `SignInCreateParams`
1244 |   - `PrepareVerificationParams`
1245 |   - `SignUpCreateParams`
1246 |   - `CreateExternalAccountParams`
1247 | 
1248 | ## 4.39.4
1249 | 
1250 | ### Patch Changes
1251 | 
1252 | - Added min and max length username settings to username field error. ([#4771](https://github.com/clerk/javascript/pull/4771)) by [@alexcarpenter](https://github.com/alexcarpenter)
1253 | 
1254 | - Rename `toJSON()` resource methods to `__internal_toSnapshot()` to avoid issues with serializing functions. ([#4777](https://github.com/clerk/javascript/pull/4777)) by [@anagstef](https://github.com/anagstef)
1255 | 
1256 | ## 4.39.3
1257 | 
1258 | ### Patch Changes
1259 | 
1260 | - Introduce `__internal_copyInstanceKeysUrl` as property in `ClerkOptions`. It is intented for internal usage from other Clerk SDKs and will be used in Keyless mode. ([#4755](https://github.com/clerk/javascript/pull/4755)) by [@panteliselef](https://github.com/panteliselef)
1261 | 
1262 | - Add `claimedAt` property inside AuthConfig for the environment. It describes when a instance that was created from the Keyless mode was finally claimed. ([#4752](https://github.com/clerk/javascript/pull/4752)) by [@panteliselef](https://github.com/panteliselef)
1263 | 
1264 | - Introduce a `toJSON()` function on resources. ([#4604](https://github.com/clerk/javascript/pull/4604)) by [@anagstef](https://github.com/anagstef)
1265 | 
1266 |   This change also introduces two new internal methods on the Clerk resource, to be used by the expo package.
1267 | 
1268 |   - `__internal_getCachedResources()`: (Optional) This function is used to load cached Client and Environment resources if Clerk fails to load them from the Frontend API.
1269 |   - `__internal_reloadInitialResources()`: This function is used to reload the initial resources (Environment/Client) from the Frontend API.
1270 | 
1271 | ## 4.39.2
1272 | 
1273 | ### Patch Changes
1274 | 
1275 | - Introduce the `navbarButtonText` element descriptor. ([#4635](https://github.com/clerk/javascript/pull/4635)) by [@alexcarpenter](https://github.com/alexcarpenter)
1276 | 
1277 | ## 4.39.1
1278 | 
1279 | ### Patch Changes
1280 | 
1281 | - Add `socialButtonsRoot` descriptor. ([#4729](https://github.com/clerk/javascript/pull/4729)) by [@alexcarpenter](https://github.com/alexcarpenter)
1282 | 
1283 | ## 4.39.0
1284 | 
1285 | ### Minor Changes
1286 | 
1287 | - Replace `__internal_claimAccountlessKeysUrl` with `__internal_claimKeylessApplicationUrl`. ([#4602](https://github.com/clerk/javascript/pull/4602)) by [@panteliselef](https://github.com/panteliselef)
1288 | 
1289 | ### Patch Changes
1290 | 
1291 | - Introduce experimental sign-in combined flow. ([#4607](https://github.com/clerk/javascript/pull/4607)) by [@alexcarpenter](https://github.com/alexcarpenter)
1292 | 
1293 | ## 4.38.0
1294 | 
1295 | ### Minor Changes
1296 | 
1297 | - Deprecate the following constants and functions: ([#4716](https://github.com/clerk/javascript/pull/4716)) by [@panteliselef](https://github.com/panteliselef)
1298 | 
1299 |   - `OAUTH_PROVIDERS`
1300 |   - `getOAuthProviderData()`
1301 |   - `sortedOAuthProviders()`
1302 |   - `WEB3_PROVIDERS`
1303 |   - `getWeb3ProviderData()`
1304 | 
1305 | ## 4.37.0
1306 | 
1307 | ### Minor Changes
1308 | 
1309 | - Introduce a new `allowedRedirectProtocols` option to pass additional allowed protocols for user-provided redirect validation. ([#4705](https://github.com/clerk/javascript/pull/4705)) by [@BRKalow](https://github.com/BRKalow)
1310 | 
1311 | ## 4.36.0
1312 | 
1313 | ### Minor Changes
1314 | 
1315 | - Support OKW Wallet Web3 provider and authentication strategy ([#4696](https://github.com/clerk/javascript/pull/4696)) by [@chanioxaris](https://github.com/chanioxaris)
1316 | 
1317 | ### Patch Changes
1318 | 
1319 | - Translates a FAPI error message for when an organization domain is already in use for an organization's SSO ([#4671](https://github.com/clerk/javascript/pull/4671)) by [@LauraBeatris](https://github.com/LauraBeatris)
1320 | 
1321 | ## 4.35.1
1322 | 
1323 | ### Patch Changes
1324 | 
1325 | - Add support for the new `enterprise_sso` strategy. ([#4596](https://github.com/clerk/javascript/pull/4596)) by [@Nikpolik](https://github.com/Nikpolik)
1326 | 
1327 |   This strategy supersedes SAML to provide a single strategy as the entry point for Enterprise Single Sign On regardless of the underlying protocol used to authenticate the user.
1328 |   For now there are two new types of connections that are supported in addition to SAML, Custom OAuth and EASIE (multi-tenant OAuth).
1329 | 
1330 |   - Add a new user setting `enterpriseSSO`, this gets enabled when there is an active enterprise connection for an instance.
1331 |   - Add support for signing in / signing up with the new `enterprise_sso` strategy.
1332 |   - Deprecated `userSettings.saml` in favor of `enterprise_sso`.
1333 |   - Deprecated `saml` sign in strategy in favor of `enterprise_sso`.
1334 | 
1335 | ## 4.35.0
1336 | 
1337 | ### Minor Changes
1338 | 
1339 | - Drop experimental tag related to reverification. ([#4536](https://github.com/clerk/javascript/pull/4536)) by [@panteliselef](https://github.com/panteliselef)
1340 | 
1341 |   Properties of Clerk class:
1342 | 
1343 |   - `__experimental_openUserVerification` -> `__internal_openReverification`
1344 |   - `__experimental_closeUserVerification` -> `__internal_closeReverification`
1345 |   - `__experimental_UserVerificationProps` -> `__internal_ReverificationProps`
1346 |   - `__experimental_UserVerificationModalProps` -> `__internal_ReverificationModalProps`
1347 | 
1348 |   Properties of `Session`:
1349 | 
1350 |   - `__experimental_factorVerificationAge` -> `factorVerificationAge`
1351 |   - `__experimental_startVerification` -> `startVerification`
1352 |   - `__experimental_prepareFirstFactorVerification` -> `prepareFirstFactorVerification`
1353 |   - `__experimental_attemptFirstFactorVerification` -> `attemptFirstFactorVerification`
1354 |   - `__experimental_prepareSecondFactorVerification` -> `prepareSecondFactorVerification`
1355 |   - `__experimental_attemptSecondFactorVerification` -> `attemptSecondFactorVerification`
1356 | 
1357 |   Renaming
1358 | 
1359 |   - `__experimental_SessionVerificationResource` -> `SessionVerificationResource`
1360 |   - `__experimental_SessionVerificationStatus` -> `SessionVerificationStatus`
1361 |   - `__experimental_SessionVerificationLevel` -> `SessionVerificationLevel`
1362 |   - `__experimental_ReverificationConfig` -> `ReverificationConfig`
1363 | 
1364 |   `CheckAuthorizationParamsWithCustomPermissions` and `CheckAuthorizationParams` now include `reverification?: ReverificationConfig;`
1365 | 
1366 |   Properties of `IntialState`:
1367 | 
1368 |   - `__experimental_factorVerificationAge` -> `factorVerificationAge`
1369 | 
1370 |   Localization types:
1371 |   All properties of `__experimental_userVerification` are moved to `reverification`
1372 | 
1373 | ### Patch Changes
1374 | 
1375 | - Rename userVerification to reverification to align with the feature name. ([#4634](https://github.com/clerk/javascript/pull/4634)) by [@BRKalow](https://github.com/BRKalow)
1376 | 
1377 | ## 4.34.2
1378 | 
1379 | ### Patch Changes
1380 | 
1381 | - Add `__internal_claimAccountlessKeysUrl` to `ClerkOptions`. ([#4625](https://github.com/clerk/javascript/pull/4625)) by [@panteliselef](https://github.com/panteliselef)
1382 | 
1383 | - Decouple captcha heartbeat from token refresh mechanism ([#4630](https://github.com/clerk/javascript/pull/4630)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
1384 | 
1385 | ## 4.34.1
1386 | 
1387 | ### Patch Changes
1388 | 
1389 | - Share hook return types ([#4583](https://github.com/clerk/javascript/pull/4583)) by [@wobsoriano](https://github.com/wobsoriano)
1390 | 
1391 | - Inject captcha token into every X heartbeats ([#4614](https://github.com/clerk/javascript/pull/4614)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
1392 | 
1393 | ## 4.34.0
1394 | 
1395 | ### Minor Changes
1396 | 
1397 | - Update reverification config values to snake_case. ([#4556](https://github.com/clerk/javascript/pull/4556)) by [@panteliselef](https://github.com/panteliselef)
1398 | 
1399 |   For `__experimental_ReverificationConfig`
1400 | 
1401 |   - `strictMfa` changes to `strict_mfa`
1402 | 
1403 |   For `__experimental_SessionVerificationLevel`
1404 | 
1405 |   - `firstFactor` changes to `first_factor`
1406 |   - - `secondFactor` changes to `second_factor`
1407 |   - - `multiFactor` changes to `multi_factor`
1408 | 
1409 | ## 4.33.0
1410 | 
1411 | ### Minor Changes
1412 | 
1413 | - Surface enterprise accounts in `UserProfile`, allowing to display more protocols besides SAML ([#4518](https://github.com/clerk/javascript/pull/4518)) by [@LauraBeatris](https://github.com/LauraBeatris)
1414 | 
1415 | - Introduce the `experimental.rethrowOfflineNetworkErrors` option to the `ClerkProvider` component. ([#4525](https://github.com/clerk/javascript/pull/4525)) by [@anagstef](https://github.com/anagstef)
1416 | 
1417 |   When set to `true`, Clerk will rethrow network errors that occur while the user is offline.
1418 | 
1419 | - Replace `veryStrict` with `strictMfa` configuration for reverification. ([#4545](https://github.com/clerk/javascript/pull/4545)) by [@panteliselef](https://github.com/panteliselef)
1420 | 
1421 | ## 4.32.0
1422 | 
1423 | ### Minor Changes
1424 | 
1425 | - Replace `redirectUrl` with `afterJoinWaitlistUrl` in `<Waitlist />` component ([#4532](https://github.com/clerk/javascript/pull/4532)) by [@nikospapcom](https://github.com/nikospapcom)
1426 | 
1427 | ## 4.31.0
1428 | 
1429 | ### Minor Changes
1430 | 
1431 | - Introduce experimental support for passkeys in Expo (iOS, Android, and Web). ([#4352](https://github.com/clerk/javascript/pull/4352)) by [@AlexNti](https://github.com/AlexNti)
1432 | 
1433 |   To use passkeys in Expo projects, pass the `__experimental_passkeys` object, which can be imported from `@clerk/clerk-expo/passkeys`, to the `ClerkProvider` component:
1434 | 
1435 |   ```tsx
1436 |   import { ClerkProvider } from '@clerk/clerk-expo';
1437 |   import { passkeys } from '@clerk/clerk-expo/passkeys';
1438 | 
1439 |   <ClerkProvider __experimental_passkeys={passkeys}>{/* Your app here */}</ClerkProvider>;
1440 |   ```
1441 | 
1442 |   The API for using passkeys in Expo projects is the same as the one used in web apps:
1443 | 
1444 |   ```tsx
1445 |   // passkey creation
1446 |   const { user } = useUser();
1447 | 
1448 |   const handleCreatePasskey = async () => {
1449 |     if (!user) return;
1450 |     try {
1451 |       return await user.createPasskey();
1452 |     } catch (e: any) {
1453 |       // handle error
1454 |     }
1455 |   };
1456 | 
1457 |   // passkey authentication
1458 |   const { signIn, setActive } = useSignIn();
1459 | 
1460 |   const handlePasskeySignIn = async () => {
1461 |     try {
1462 |       const signInResponse = await signIn.authenticateWithPasskey();
1463 |       await setActive({ session: signInResponse.createdSessionId });
1464 |     } catch (err: any) {
1465 |       //handle error
1466 |     }
1467 |   };
1468 |   ```
1469 | 
1470 | - The Legal consent feature is now stable. ([#4487](https://github.com/clerk/javascript/pull/4487)) by [@octoper](https://github.com/octoper)
1471 | 
1472 |   Removed the `__experimental_` prefix.
1473 | 
1474 | ### Patch Changes
1475 | 
1476 | - Fixes issues in `ClerkRouter` that were causing inaccurate pathnames within Elements flows. Also fixes a dependency issue where `@clerk/elements` was pulling in the wrong version of `@clerk/shared`. ([#4513](https://github.com/clerk/javascript/pull/4513)) by [@alexcarpenter](https://github.com/alexcarpenter)
1477 | 
1478 | - Add afterJoinWaitlistUrl to DisplayConfig resource ([#4524](https://github.com/clerk/javascript/pull/4524)) by [@nikospapcom](https://github.com/nikospapcom)
1479 | 
1480 | ## 4.30.0
1481 | 
1482 | ### Minor Changes
1483 | 
1484 | - New Feature: Introduce the `<Waitlist />` component and the `waitlist` sign up mode. ([#4376](https://github.com/clerk/javascript/pull/4376)) by [@nikospapcom](https://github.com/nikospapcom)
1485 | 
1486 |   - Allow users to request access with an email address via the new `<Waitlist />` component.
1487 |   - Show `Join waitlist` prompt from `<SignIn />` component when mode is `waitlist`.
1488 |   - Appropriate the text in the Sign Up component when mode is `waitlist`.
1489 |   - Added `joinWaitlist()` method in `Clerk` singleton.
1490 |   - Added `redirectToWaitlist()` method in `Clerk` singleton to allow user to redirect to waitlist page.
1491 | 
1492 | ### Patch Changes
1493 | 
1494 | - Expose internal `__internal_getOption` method from Clerk. ([#4456](https://github.com/clerk/javascript/pull/4456)) by [@alexcarpenter](https://github.com/alexcarpenter)
1495 | 
1496 | ## 4.29.0
1497 | 
1498 | ### Minor Changes
1499 | 
1500 | - - Introduce `redirectUrl` property on `setActive` as a replacement for `beforeEmit`. ([#4312](https://github.com/clerk/javascript/pull/4312)) by [@issuedat](https://github.com/issuedat)
1501 | 
1502 |   - Deprecates `beforeEmit` property on `setActive`.
1503 | 
1504 | ### Patch Changes
1505 | 
1506 | - Experimental: `asStandalone` now accepts a callback that notifies if the standalone popover needs to unmount. ([#4423](https://github.com/clerk/javascript/pull/4423)) by [@panteliselef](https://github.com/panteliselef)
1507 | 
1508 | - - Changed `__experimental_legalAccepted` checkbox Indicator element descriptor and element id ([#4427](https://github.com/clerk/javascript/pull/4427)) by [@octoper](https://github.com/octoper)
1509 | 
1510 |   - Changed `__experimental_legalAccepted` checkbox Label element descriptor and element id
1511 |   - Added two new element descriptors `formFieldCheckboxInput`, `formFieldCheckboxLabel`.
1512 | 
1513 | ## 4.28.0
1514 | 
1515 | ### Minor Changes
1516 | 
1517 | - Adding experimental support for legal consent for `<SignUp/>` component ([#4337](https://github.com/clerk/javascript/pull/4337)) by [@octoper](https://github.com/octoper)
1518 | 
1519 | ## 4.27.0
1520 | 
1521 | ### Minor Changes
1522 | 
1523 | - Add experimental support for new UI components ([#4114](https://github.com/clerk/javascript/pull/4114)) by [@BRKalow](https://github.com/BRKalow)
1524 | 
1525 | ### Patch Changes
1526 | 
1527 | - Fix `SignInProps`/`SignUpProps` `__experimental` type to allow for arbitrary properties ([#4114](https://github.com/clerk/javascript/pull/4114)) by [@BRKalow](https://github.com/BRKalow)
1528 | 
1529 | ## 4.26.0
1530 | 
1531 | ### Minor Changes
1532 | 
1533 | - Drop `maxAgeMinutes` from `__experimental_startVerification`. ([#4338](https://github.com/clerk/javascript/pull/4338)) by [@panteliselef](https://github.com/panteliselef)
1534 | 
1535 |   Drop types `__experimental_SessionVerificationConfig` and `__experimental_SessionVerificationMaxAgeMinutes`.
1536 | 
1537 | - The "Restricted access" screen has been improved for visual consistency and the ability to contact support. The displayed texts have been made more clear and the sign-in button has been moved to the bottom. ([#4335](https://github.com/clerk/javascript/pull/4335)) by [@nikospapcom](https://github.com/nikospapcom)
1538 | 
1539 | - Add experimental standalone mode for `<UserButton />` and `<OrganizationSwitcher />`. ([#4042](https://github.com/clerk/javascript/pull/4042)) by [@panteliselef](https://github.com/panteliselef)
1540 | 
1541 |   When `__experimental_asStandalone: true` the component will not render its trigger, and instead it will render only the contents of the popover in place.
1542 | 
1543 |   APIs that changed:
1544 | 
1545 |   - (For internal usage) Added `__experimental_prefetchOrganizationSwitcher` as a way to mount an internal component that will render the `useOrganizationList()` hook and prefetch the necessary data for the popover of `<OrganizationSwitcher />`. This enhances the UX since no loading state will be visible and keeps CLS to the minimum.
1546 |   - New property for `mountOrganizationSwitcher(node, { __experimental_asStandalone: true })`
1547 |   - New property for `mountUserButton(node, { __experimental_asStandalone: true })`
1548 | 
1549 | - Use EIP-4361 message spec for Web3 wallets sign in signature requests ([#4334](https://github.com/clerk/javascript/pull/4334)) by [@chanioxaris](https://github.com/chanioxaris)
1550 | 
1551 | ## 4.25.1
1552 | 
1553 | ### Patch Changes
1554 | 
1555 | - Bypass captcha for providers dynamically provided in environment ([#4322](https://github.com/clerk/javascript/pull/4322)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
1556 | 
1557 | ## 4.25.0
1558 | 
1559 | ### Minor Changes
1560 | 
1561 | - Rename `__experimental_assurance` to `__experimental_reverification`. ([#4268](https://github.com/clerk/javascript/pull/4268)) by [@panteliselef](https://github.com/panteliselef)
1562 | 
1563 |   - Supported levels are now are `firstFactor`, `secondFactor`, `multiFactor`.
1564 |   - Support maxAge is now replaced by maxAgeMinutes and afterMinutes depending on usage.
1565 |   - Introduced `____experimental_SessionVerificationTypes` that abstracts away the level and maxAge
1566 |     - Allowed values 'veryStrict' | 'strict' | 'moderate' | 'lax'
1567 | 
1568 | ## 4.24.0
1569 | 
1570 | ### Minor Changes
1571 | 
1572 | - Drop the experimental mounted variant of `UserVerification`. ([#4266](https://github.com/clerk/javascript/pull/4266)) by [@panteliselef](https://github.com/panteliselef)
1573 | 
1574 |   Removes:
1575 | 
1576 |   - `<__experimental_UserVerification/>`
1577 |   - `__experimental_mountUserVerification()`
1578 |   - `__experimental_unmountUserVerification()`
1579 | 
1580 | - _Experimental Feature_: `<UserProfile/>` allows users to update their information. Mostly of this information is considered sensitive data. ([#4127](https://github.com/clerk/javascript/pull/4127)) by [@panteliselef](https://github.com/panteliselef)
1581 | 
1582 |   We want to ensure that only the users themselves can alter any sensitive data.
1583 | 
1584 |   To increase security we are now, require users to re-verify their credentials when they are about to perform these actions:
1585 | 
1586 |   | Operation                        | Reverification | Strategy            | Timeframe |
1587 |   | -------------------------------- | -------------- | ------------------- | --------- |
1588 |   | Update account (first/last name) | ❌             |                     |           |
1589 |   | Update username                  | ✅             | Strongest available | 10m       |
1590 |   | Delete account                   | ✅             | Strongest available | 10m       |
1591 |   | Create/Remove profile image      | ❌             |                     |           |
1592 |   | Update password                  | ✅             | Strongest available | 10m       |
1593 |   | Remove password                  | ❌             |                     |           |
1594 |   | Revoke session                   | ✅             | Strongest available | 10m       |
1595 |   | Create identification            | ✅             | Strongest available | 10m       |
1596 |   | Remove identification            | ✅             | Strongest available | 10m       |
1597 |   | Change primary identification    | ✅             | Strongest available | 10m       |
1598 |   | Update Passkey name              | ❌             |                     |           |
1599 |   | Enable MFA (TOTP, Phone number)  | ✅             | Strongest available | 10m       |
1600 |   | Disable MFA (TOΤP, Phone number) | ✅             | Strongest available | 10m       |
1601 |   | Create/Regenerate Backup Codes   | ✅             | Strongest available | 10m       |
1602 |   | Connect External Account         | ✅             | Strongest available | 10m       |
1603 |   | Re-authorize External Account    | ❌             |                     |           |
1604 |   | Remove External Account          | ✅             | Strongest available | 10m       |
1605 |   | Leave organization               | ❌             |                     |           |
1606 | 
1607 | ## 4.23.0
1608 | 
1609 | ### Minor Changes
1610 | 
1611 | - Render "Restricted access" screen in `<SignUp />` component when `signup.mode` in `userSettings` is `restricted` ([#4220](https://github.com/clerk/javascript/pull/4220)) by [@nikospapcom](https://github.com/nikospapcom)
1612 | 
1613 | ### Patch Changes
1614 | 
1615 | - Conditionally renders identification sections on `UserProfile` based on the SAML connection configuration for disabling additional identifiers. ([#4211](https://github.com/clerk/javascript/pull/4211)) by [@NicolasLopes7](https://github.com/NicolasLopes7)
1616 | 
1617 | - Introduces the CRUD of organization domains under the `organizations` API. ([#4224](https://github.com/clerk/javascript/pull/4224)) by [@NicolasLopes7](https://github.com/NicolasLopes7)
1618 | 
1619 | ## 4.22.0
1620 | 
1621 | ### Minor Changes
1622 | 
1623 | - Hide sign up url from `<SignIn />` component when mode is `restricted` ([#4206](https://github.com/clerk/javascript/pull/4206)) by [@nikospapcom](https://github.com/nikospapcom)
1624 | 
1625 | ### Patch Changes
1626 | 
1627 | - Supports default role on `OrganizationProfile` invitations. When inviting a member, the default role will be automatically selected, otherwise it falls back to the only available role. ([#4210](https://github.com/clerk/javascript/pull/4210)) by [@LauraBeatris](https://github.com/LauraBeatris)
1628 | 
1629 | - Add type for \_\_internal_country ([#4215](https://github.com/clerk/javascript/pull/4215)) by [@dstaley](https://github.com/dstaley)
1630 | 
1631 | ## 4.21.1
1632 | 
1633 | ### Patch Changes
1634 | 
1635 | - Improve JSDoc comments for some public API properties ([#4190](https://github.com/clerk/javascript/pull/4190)) by [@LekoArts](https://github.com/LekoArts)
1636 | 
1637 | ## 4.21.0
1638 | 
1639 | ### Minor Changes
1640 | 
1641 | - Experimental support for `has()` with assurance. ([#4118](https://github.com/clerk/javascript/pull/4118)) by [@panteliselef](https://github.com/panteliselef)
1642 | 
1643 |   Example usage:
1644 | 
1645 |   ```ts
1646 |   has({
1647 |     __experimental_assurance: {
1648 |       level: 'L2.secondFactor',
1649 |       maxAge: 'A1.10min',
1650 |     },
1651 |   });
1652 |   ```
1653 | 
1654 |   Created a shared utility called `createCheckAuthorization` exported from `@clerk/shared`
1655 | 
1656 | ### Patch Changes
1657 | 
1658 | - Adds translation keys for error messages from the [organizations API](https://clerk.com/docs/references/api/organizations#errors). ([#4123](https://github.com/clerk/javascript/pull/4123)) by [@LauraBeatris](https://github.com/LauraBeatris)
1659 | 
1660 | ## 4.20.1
1661 | 
1662 | ### Patch Changes
1663 | 
1664 | - Update type of `__experimental_factorVerificationAge` to be `[number, number] | null`. ([#4135](https://github.com/clerk/javascript/pull/4135)) by [@panteliselef](https://github.com/panteliselef)
1665 | 
1666 | ## 4.20.0
1667 | 
1668 | ### Minor Changes
1669 | 
1670 | - Experimental support: Expect a new sessionClaim called `fva` that tracks the age of verified factor groups. ([#4061](https://github.com/clerk/javascript/pull/4061)) by [@panteliselef](https://github.com/panteliselef)
1671 | 
1672 |   ### Server side
1673 | 
1674 |   This can be applied to any helper that returns the auth object
1675 | 
1676 |   **Nextjs example**
1677 | 
1678 |   ```ts
1679 |   auth().__experimental_factorVerificationAge;
1680 |   ```
1681 | 
1682 |   ### Client side
1683 | 
1684 |   **React example**
1685 | 
1686 |   ```ts
1687 |   const { session } = useSession();
1688 |   session?.__experimental_factorVerificationAge;
1689 |   ```
1690 | 
1691 | ### Patch Changes
1692 | 
1693 | - Improve JSDoc comments coverage on `<ClerkProvider>` properties ([#4098](https://github.com/clerk/javascript/pull/4098)) by [@LekoArts](https://github.com/LekoArts)
1694 | 
1695 | - Drop support for deprecated Coinbase Web3 provider ([#4092](https://github.com/clerk/javascript/pull/4092)) by [@chanioxaris](https://github.com/chanioxaris)
1696 | 
1697 | ## 4.19.0
1698 | 
1699 | ### Minor Changes
1700 | 
1701 | - Add support for the Coinbase Wallet web3 provider and authentication strategy. The Coinbase Wallet provider handles both Coinbase Wallet extension and Smart Wallet ([#4082](https://github.com/clerk/javascript/pull/4082)) by [@chanioxaris](https://github.com/chanioxaris)
1702 | 
1703 | - **Experimental:** Persist the Clerk client after signing out a user. ([#3941](https://github.com/clerk/javascript/pull/3941)) by [@panteliselef](https://github.com/panteliselef)
1704 | 
1705 |   This allows for matching a user's device with a client. To try out this new feature, enable it in your `<ClerkProvider />` or `clerk.load()` call.
1706 | 
1707 |   ```js
1708 |   // React
1709 |   <ClerkProvider experimental={{ persistClient: true }} />;
1710 | 
1711 |   // Vanilla JS
1712 |   await clerk.load({ experimental: { persistClient: true } });
1713 |   ```
1714 | 
1715 | ## 4.18.0
1716 | 
1717 | ### Minor Changes
1718 | 
1719 | - Move SessionVerification methods from UserResource to SessionResource: ([#4073](https://github.com/clerk/javascript/pull/4073)) by [@panteliselef](https://github.com/panteliselef)
1720 | 
1721 |   - `user.__experimental_verifySession` -> `session.__experimental_startVerification`
1722 |   - `user.__experimental_verifySessionPrepareFirstFactor` -> `session.__experimental_prepareFirstFactorVerification`
1723 |   - `user.__experimental_verifySessionAttemptFirstFactor` -> `session.__experimental_attemptFirstFactorVerification`
1724 |   - `user.__experimental_verifySessionPrepareSecondFactor` -> `session.__experimental_prepareSecondFactorVerification`
1725 |   - `user.__experimental_verifySessionAttemptSecondFactor` -> `session.__experimental_attemptSecondFactorVerification`
1726 | 
1727 | - Add types for newly introduced `<__experimental_UserVerification />` component (experimental feature). New types: ([#4016](https://github.com/clerk/javascript/pull/4016)) by [@panteliselef](https://github.com/panteliselef)
1728 | 
1729 |   - `Appearance` has a new `userVerification` property
1730 |   - `__experimental_UserVerificationProps` and `__experimental_UserVerificationModalProps`
1731 |   - `__experimental_openUserVerification` method under the `Clerk` interface
1732 |   - `__experimental_closeUserVerification` method under the `Clerk` interface
1733 |   - `__experimental_mountUserVerification` method under the `Clerk` interface
1734 |   - `__experimental_unmountUserVerification` method under the `Clerk` interface
1735 |   - `__experimental_userVerification` property under `LocalizationResource`
1736 | 
1737 | ## 4.17.0
1738 | 
1739 | ### Minor Changes
1740 | 
1741 | - Add support for Coinbase Wallet strategy during sign in/up flows. Users can now authenticate using their Coinbase Wallet browser extension in the same way as MetaMask ([#4052](https://github.com/clerk/javascript/pull/4052)) by [@chanioxaris](https://github.com/chanioxaris)
1742 | 
1743 | ### Patch Changes
1744 | 
1745 | - Tidy up and improve README ([#4053](https://github.com/clerk/javascript/pull/4053)) by [@LekoArts](https://github.com/LekoArts)
1746 | 
1747 | - Update `SAML_IDPS` constant to refer to Microsoft Entra ID instead of the deprecated Azure AD ([#4041](https://github.com/clerk/javascript/pull/4041)) by [@LauraBeatris](https://github.com/LauraBeatris)
1748 | 
1749 | ## 4.16.0
1750 | 
1751 | ### Minor Changes
1752 | 
1753 | - Support connecting Coinbase Wallet via <UserProfile /> ([#4030](https://github.com/clerk/javascript/pull/4030)) by [@chanioxaris](https://github.com/chanioxaris)
1754 | 
1755 | ## 4.15.1
1756 | 
1757 | ### Patch Changes
1758 | 
1759 | - Introduce Coinbase Wallet Web3 provider types ([#4028](https://github.com/clerk/javascript/pull/4028)) by [@chanioxaris](https://github.com/chanioxaris)
1760 | 
1761 | - Introduce support for the Hugging Face OAuth Provider. ([#4021](https://github.com/clerk/javascript/pull/4021)) by [@Nikpolik](https://github.com/Nikpolik)
1762 | 
1763 | ## 4.15.0
1764 | 
1765 | ### Minor Changes
1766 | 
1767 | - Expose `SessionVerification` as an experimental resource. ([#4011](https://github.com/clerk/javascript/pull/4011)) by [@panteliselef](https://github.com/panteliselef)
1768 | 
1769 |   Update `UserResource` with 5 new experimental methods:
1770 | 
1771 |   - `experimental_verifySession` for creating a new SessionVerification record and initiating a new flow.
1772 |   - `experimental_verifySessionPrepareFirstFactor` for preparing a supported first factor like `phone_code`
1773 |   - `experimental_verifySessionAttemptFirstFactor` for attempting a supported first factor like `password`
1774 |   - `experimental_verifySessionPrepareSecondFactor` for preparing a supported second factor like `phone_code`
1775 |   - `experimental_verifySessionAttemptSecondFactor` for attempting a supported second factor like `totp`
1776 | 
1777 | ## 4.14.0
1778 | 
1779 | ### Minor Changes
1780 | 
1781 | - Inject `windowNavigate` through router functions. ([#3922](https://github.com/clerk/javascript/pull/3922)) by [@panteliselef](https://github.com/panteliselef)
1782 | 
1783 | ## 4.13.1
1784 | 
1785 | ### Patch Changes
1786 | 
1787 | - In certain situations the Frontend API response contains [`supported_first_factors`](https://clerk.com/docs/reference/frontend-api/tag/Sign-Ins#operation/createSignIn!c=200&path=response/supported_first_factors&t=response) with a `null` value while the current code always assumed to receive an array. `SignInResource['supportedFirstFactors']` has been updated to account for that and any code accessing this value has been made more resilient against `null` values. ([#3938](https://github.com/clerk/javascript/pull/3938)) by [@dstaley](https://github.com/dstaley)
1788 | 
1789 | ## 4.13.0
1790 | 
1791 | ### Minor Changes
1792 | 
1793 | - Introduce `transferable` prop for `<SignIn />` to disable the automatic transfer of a sign in attempt to a sign up attempt when attempting to sign in with a social provider when the account does not exist. Also adds a `transferable` option to `Clerk.handleRedirectCallback()` with the same functionality. ([#3845](https://github.com/clerk/javascript/pull/3845)) by [@BRKalow](https://github.com/BRKalow)
1794 | 
1795 | ## 4.12.1
1796 | 
1797 | ### Patch Changes
1798 | 
1799 | - Add option to hide the slug field in the `<CreateOrganization />`, `<OrganizationSwitcher />`, and `<OrganizationList />` components ([#3882](https://github.com/clerk/javascript/pull/3882)) by [@wobsoriano](https://github.com/wobsoriano)
1800 | 
1801 | ## 4.12.0
1802 | 
1803 | ### Minor Changes
1804 | 
1805 | - Add `createOrganizationsLimit` param in `@clerk/backend` method `User.updateUser()` ([#3823](https://github.com/clerk/javascript/pull/3823)) by [@NicolasLopes7](https://github.com/NicolasLopes7)
1806 | 
1807 |   Example:
1808 | 
1809 |   ```typescript
1810 |       import { createClerkClient }  from '@clerk/backend';
1811 | 
1812 |       const clerkClient = createClerkClient({...});
1813 |       // Update user with createOrganizationsLimit equals 10
1814 |       await clerkClient.users.updateUser('user_...', { createOrganizationsLimit: 10 })
1815 | 
1816 |       // Remove createOrganizationsLimit
1817 |       await clerkClient.users.updateUser('user_...', { createOrganizationsLimit: 0 })
1818 |   ```
1819 | 
1820 | ## 4.11.0
1821 | 
1822 | ### Minor Changes
1823 | 
1824 | - Introducing a development mode warning when in development mode in order to mitigate going to production with development keys. ([#3870](https://github.com/clerk/javascript/pull/3870)) by [@octoper](https://github.com/octoper)
1825 | 
1826 |   In case need to deactivate this UI change temporarily to simulate how components will look in production, you can do so by adding the `unsafe_disableDevelopmentModeWarnings` layout appearance prop to `<ClerkProvider>`
1827 | 
1828 |   Example:
1829 | 
1830 |   ```tsx
1831 |   <ClerkProvider
1832 |     appearance={{
1833 |       layout: {
1834 |         unsafe_disableDevelopmentModeWarnings: true,
1835 |       },
1836 |     }}
1837 |   />
1838 |   ```
1839 | 
1840 | - Removed `__experimental_startPath` from `OrganizationProfileProps` in `@clerk/clerk-js` and `@clerk/types`. ([#3888](https://github.com/clerk/javascript/pull/3888)) by [@nikospapcom](https://github.com/nikospapcom)
1841 | 
1842 | ## 4.10.0
1843 | 
1844 | ### Minor Changes
1845 | 
1846 | - Introduce support for custom menu items in `<UserButton/>`. ([#3784](https://github.com/clerk/javascript/pull/3784)) by [@nikospapcom](https://github.com/nikospapcom)
1847 | 
1848 |   - Use `<UserButton.MenuItems>` as a child component to wrap custom menu items.
1849 |   - Use `<UserButton.Link/>` for creating external or internal links.
1850 |   - Use `<UserButton.Action/>` for opening a specific custom page of "UserProfile" or to trigger your own custom logic via `onClick`.
1851 |   - If needed, reorder existing items like `manageAccount` and `signOut`
1852 | 
1853 |   New usage example:
1854 | 
1855 |   ```jsx
1856 |   <UserButton>
1857 |     <UserButton.MenuItems>
1858 |       <UserButton.Link
1859 |         label='Terms'
1860 |         labelIcon={<Icon />}
1861 |         href='/terms'
1862 |       />
1863 |       <UserButton.Action
1864 |         label='Help'
1865 |         labelIcon={<Icon />}
1866 |         open='help'
1867 |       />{' '}
1868 |       // Navigate to `/help` page when UserProfile opens as a modal. (Requires a custom page to have been set in
1869 |       `/help`)
1870 |       <UserButton.Action
1871 |         label='manageAccount'
1872 |         labelIcon={<Icon />}
1873 |       />
1874 |       <UserButton.Action
1875 |         label='Chat Modal'
1876 |         labelIcon={<Icon />}
1877 |         onClick={() => setModal(true)}
1878 |       />
1879 |     </UserButton.MenuItems>
1880 |   </UserButton>
1881 |   ```
1882 | 
1883 | ### Patch Changes
1884 | 
1885 | - Introduce ability to set an active organization by slug ([#3825](https://github.com/clerk/javascript/pull/3825)) by [@wobsoriano](https://github.com/wobsoriano)
1886 | 
1887 | ## 4.9.1
1888 | 
1889 | ### Patch Changes
1890 | 
1891 | - Add support for opening the `UserProfileModal` and `OrganizationProfileModal` to specific navigation items through the `UserButton` and `OrganizationSwitcher`. ([#3732](https://github.com/clerk/javascript/pull/3732)) by [@EmmanouelaPothitou](https://github.com/EmmanouelaPothitou)
1892 | 
1893 | ## 4.9.0
1894 | 
1895 | ### Minor Changes
1896 | 
1897 | - - Introduced `subtitle__disconnected` under `userProfile.start.connectedAccountsSection` ([#3723](https://github.com/clerk/javascript/pull/3723)) by [@panteliselef](https://github.com/panteliselef)
1898 | 
1899 |   - Deprecated `userProfile.start.connectedAccountsSection.actionLabel__reauthorize` and `userProfile.start.connectedAccountsSection.subtitle__reauthorize`
1900 | 
1901 | ### Patch Changes
1902 | 
1903 | - Update types to account for null second factors ([#3780](https://github.com/clerk/javascript/pull/3780)) by [@dstaley](https://github.com/dstaley)
1904 | 
1905 | ## 4.8.0
1906 | 
1907 | ### Minor Changes
1908 | 
1909 | - Added support for Custom OAuth providers by [@nikosdouvlis](https://github.com/nikosdouvlis)
1910 | 
1911 |   - Updated strategy types to include `CustomOAuthStrategy`:
1912 |     - Added the `CustomOAuthStrategy` type with the value `oauth_custom_${string}`
1913 |     - Modified `OAuthStrategy` to include `CustomOAuthStrategy`:
1914 |       `export type OAuthStrategy = `oauth\_${OAuthProvider}` | CustomOAuthStrategy;`
1915 |   - Added the `CustomOauthProvider` type with value `custom_${string}` and extended `OAuthProvider` type to include `CustomOauthProvider`
1916 |   - Added support for displaying provider initials when `logo_url` is null for custom OAuth providers
1917 |   - Created new `ProviderInitialIcon` internal component in order to display custom oauth provider initials if provider `logo_url` is null
1918 | 
1919 | ## 4.7.0
1920 | 
1921 | ### Minor Changes
1922 | 
1923 | - Deprecate `afterSignOutUrl` and `afterMultiSessionSingleSignOutUrl` from UserButton. ([#3544](https://github.com/clerk/javascript/pull/3544)) by [@panteliselef](https://github.com/panteliselef)
1924 | 
1925 |   Developers can now configure these directly in `ClerkProvider` and have them work properly without in UserButton, UserProfile and in impersonation mode.
1926 | 
1927 | ## 4.6.1
1928 | 
1929 | ### Patch Changes
1930 | 
1931 | - Add `organizationAvatarUploaderContainer` descriptor which is used e.g. for the logo upload box inside "Create Organization" flow ([#3596](https://github.com/clerk/javascript/pull/3596)) by [@LekoArts](https://github.com/LekoArts)
1932 | 
1933 | ## 4.6.0
1934 | 
1935 | ### Minor Changes
1936 | 
1937 | - Add descriptor for formatted dates in tables. Those elements can be identified by the `cl-formattedDate__tableCell` css class. ([#3465](https://github.com/clerk/javascript/pull/3465)) by [@panteliselef](https://github.com/panteliselef)
1938 | 
1939 | ### Patch Changes
1940 | 
1941 | - Add support for Enstall OAuth provider ([#3466](https://github.com/clerk/javascript/pull/3466)) by [@Nikpolik](https://github.com/Nikpolik)
1942 | 
1943 | ## 4.5.1
1944 | 
1945 | ### Patch Changes
1946 | 
1947 | - Add experimental support for hCaptcha captcha provider ([#3422](https://github.com/clerk/javascript/pull/3422)) by [@anagstef](https://github.com/anagstef)
1948 | 
1949 | ## 4.5.0
1950 | 
1951 | ### Minor Changes
1952 | 
1953 | - Add support for GoogleOneTap. New APIs listed: ([#3392](https://github.com/clerk/javascript/pull/3392)) by [@panteliselef](https://github.com/panteliselef)
1954 | 
1955 |   ### React component
1956 | 
1957 |   - `<GoogleOneTap/>`
1958 | 
1959 |   Customize the UX of the prompt
1960 | 
1961 |   ```tsx
1962 |   <GoogleOneTap
1963 |     cancelOnTapOutside={false}
1964 |     itpSupport={false}
1965 |     fedCmSupport={false}
1966 |   />
1967 |   ```
1968 | 
1969 |   ### Use the component from with Vanilla JS
1970 | 
1971 |   - `Clerk.openGoogleOneTap(props: GoogleOneTapProps)`
1972 |   - `Clerk.closeGoogleOneTap()`
1973 | 
1974 |   ### Low level APIs for custom flows
1975 | 
1976 |   - `await Clerk.authenticateWithGoogleOneTap({ token: 'xxxx'})`
1977 |   - `await Clerk.handleGoogleOneTapCallback()`
1978 | 
1979 |   We recommend using this two methods together in order and let Clerk to perform the correct redirections.
1980 | 
1981 |   ```tsx
1982 |   google.accounts.id.initialize({
1983 |     callback: async response => {
1984 |       const signInOrUp = await Clerk.authenticateWithGoogleOneTap({
1985 |         token: response.credential,
1986 |       });
1987 |       await Clerk.handleGoogleOneTapCallback(signInOrUp, {
1988 |         signInForceRedirectUrl: window.location.href,
1989 |       });
1990 |     },
1991 |   });
1992 |   ```
1993 | 
1994 |   In case you want to handle the redirection and session management yourself you can do so like this
1995 | 
1996 |   ```tsx
1997 |   google.accounts.id.initialize({
1998 |     callback: async response => {
1999 |       const signInOrUp = await Clerk.authenticateWithGoogleOneTap({
2000 |         token: response.credential,
2001 |       });
2002 |       if (signInOrUp.status === 'complete') {
2003 |         await Clerk.setActive({
2004 |           session: signInOrUp.createdSessionId,
2005 |         });
2006 |       }
2007 |     },
2008 |   });
2009 |   ```
2010 | 
2011 | ## 4.4.0
2012 | 
2013 | ### Minor Changes
2014 | 
2015 | - Replace mount with open for GoogleOneTap. New api is `__experimental_openGoogleOneTap`. ([#3379](https://github.com/clerk/javascript/pull/3379)) by [@panteliselef](https://github.com/panteliselef)
2016 | 
2017 | ## 4.3.1
2018 | 
2019 | ### Patch Changes
2020 | 
2021 | - Add a descriptor for Invitation previews in <OrganizationSwitcher/> ([#3376](https://github.com/clerk/javascript/pull/3376)) by [@EmmanouelaPothitou](https://github.com/EmmanouelaPothitou)
2022 | 
2023 | ## 4.3.0
2024 | 
2025 | ### Minor Changes
2026 | 
2027 | - Updates related to experimental Google One Tap support ([#3250](https://github.com/clerk/javascript/pull/3250)) by [@panteliselef](https://github.com/panteliselef)
2028 | 
2029 |   - By default we are returning back to the location where the flow started.
2030 |     To accomplish that internally we will use the redirect_url query parameter to build the url.
2031 | 
2032 |   ```tsx
2033 |   <__experimental_GoogleOneTap />
2034 |   ```
2035 | 
2036 |   - In the above example if there is a SIGN_UP_FORCE_REDIRECT_URL or SIGN_IN_FORCE_REDIRECT_URL set then the developer would need to pass new values as props like this
2037 | 
2038 |   ```tsx
2039 |   <__experimental_GoogleOneTap
2040 |     signInForceRedirectUrl=''
2041 |     signUpForceRedirectUrl=''
2042 |   />
2043 |   ```
2044 | 
2045 |   - Let the developer configure the experience they want to offer. (All these values are true by default)
2046 | 
2047 |   ```tsx
2048 |   <__experimental_GoogleOneTap
2049 |     cancelOnTapOutside={false}
2050 |     itpSupport={false}
2051 |     fedCmSupport={false}
2052 |   />
2053 |   ```
2054 | 
2055 |   - Moved authenticateWithGoogleOneTap to Clerk singleton
2056 | 
2057 |   ```ts
2058 |   Clerk.__experimental_authenticateWithGoogleOneTap;
2059 |   ```
2060 | 
2061 |   - Created the handleGoogleOneTapCallback in Clerk singleton
2062 | 
2063 |   ```ts
2064 |   Clerk.__experimental_handleGoogleOneTapCallback;
2065 |   ```
2066 | 
2067 | - Introduce new `client_mismatch` verification status for email link sign-in and sign-up. This error (and its message) will be shown if a verification link was opened in another device/browser from which the user initiated the sign-in/sign-up attempt. This functionality needs to be enabled in the Clerk dashboard. ([#3367](https://github.com/clerk/javascript/pull/3367)) by [@mzhong9723](https://github.com/mzhong9723)
2068 | 
2069 | ## 4.2.1
2070 | 
2071 | ### Patch Changes
2072 | 
2073 | - The following are all internal changes and not relevant to any end-user: ([#3329](https://github.com/clerk/javascript/pull/3329)) by [@LauraBeatris](https://github.com/LauraBeatris)
2074 | 
2075 |   Create type interface for `TelemetryCollector` on `@clerk/types`. This allows to assign `telemetry` on the main Clerk SDK object, while inheriting from the actual `TelemetryCollector` implementation.
2076 | 
2077 | ## 4.2.0
2078 | 
2079 | ### Minor Changes
2080 | 
2081 | - Allow localization of text in social buttons when many are listed. ([#3282](https://github.com/clerk/javascript/pull/3282)) by [@panteliselef](https://github.com/panteliselef)
2082 | 
2083 | ## 4.1.0
2084 | 
2085 | ### Minor Changes
2086 | 
2087 | - Remove experimental Passkeys APIs. This includes any API that is marked as experimental or has the `__experimental_` prefix. ([#3233](https://github.com/clerk/javascript/pull/3233)) by [@panteliselef](https://github.com/panteliselef)
2088 | 
2089 |   This prepares the Passkeys release to move further along towards a beta release and eventual stable release.
2090 | 
2091 | ## 4.0.0
2092 | 
2093 | ### Major Changes
2094 | 
2095 | - c2a090513: Change the minimal Node.js version required by Clerk to `18.17.0`.
2096 | - 5f58a2274: - Remove `BuildUrlWithAuthParams` type
2097 |   - `AuthConfigResource` no longer has a `urlBasedSessionSyncing` property
2098 |   - `buildUrlWithAuth` no longer accepts an `options` argument of `BuildUrlWithAuthParams`.
2099 | - 7f833da9e: Drop deprecations. Migration steps:
2100 |   - use `publishableKey` instead of `frontendApi`
2101 |   - use `Clerk.handleEmailLinkVerification()` instead of `Clerk.handleMagicLinkVerification()`
2102 |   - use `isEmailLinkError` instead of `isMagicLinkError`
2103 |   - use `EmailLinkErrorCode` instead of `MagicLinkErrorCode`
2104 |   - use `useEmailLink` instead of `useMagicLink`
2105 |   - drop `orgs` jwt claim from session token
2106 |   - use `ExternalAccount.imageUrl` instead of `ExternalAccount.avatarUrl`
2107 |   - use `Organization.imageUrl` instead of `Organization.logoUrl`
2108 |   - use `User.imageUrl` instead of `User.profileImageUrl`
2109 |   - use `OrganizationMembershipPublicUserData.imageUrl` instead of `OrganizationMembershipPublicUserData.profileImageUrl`
2110 |   - use `useOrganizationList` instead of `useOrganizations`
2111 |   - use `userProfileProps` instead of `userProfile` in `Appearance`
2112 |   - use `Clerk.setActive()` instead of `Clerk.setSession()`
2113 |   - drop `password` param in `User.update()`
2114 |   - use `afterSelectOrganizationUrl` instead of `afterSwitchOrganizationUrl` in `OrganizationSwitcher`
2115 |   - drop `Clerk.experimental_canUseCaptcha` / `Clerk.Clerk.experimental_captchaSiteKey` / `Clerk.experimental_captchaURL` (were meant for internal use)
2116 |   - use `User.getOrganizationMemberships()` instead of `Clerk.getOrganizationMemberships()`
2117 |   - drop `lastOrganizationInvitation` / `lastOrganizationMember` from Clerk emitted events
2118 |   - drop `Clerk.__unstable__invitationUpdate` / `Clerk.__unstable__membershipUpdate`
2119 |   - drop support for string param in `Organization.create()`
2120 |   - use `Organization.getInvitations()` instead of `Organization.getPendingInvitations()`
2121 |   - use `pageSize` instead of `limit` in `OrganizationMembership.retrieve()`
2122 |   - use `initialPage` instead of `offset` in `OrganizationMembership.retrieve()`
2123 |   - drop `lastOrganizationInvitation` / `lastOrganizationMember` from ClerkProvider
2124 |   - use `invitations` instead of `invitationList` in `useOrganization`
2125 |   - use `memberships` instead of `membershipList` in `useOrganization`
2126 |   - use `redirectUrl` instead of `redirect_url` in `User.createExternalAccount()`
2127 |   - use `signature` instead of `generatedSignature` in `Signup.attemptWeb3WalletVerification()`
2128 | - 7bffc47cb: Drop `Clerk.isReady(). Use `Clerk.loaded` instead.`
2129 | - 2a22aade8: Drop deprecations. Migration steps:
2130 |   - drop `orgs` jwt claim from session token
2131 |   - change type of `auth` param of `withServerAuth()` callback to `AuthObject` from `ServerSideAuth` in `gatsby-clerk-plugin`
2132 |     - use `auth.sessionClaims` instead of `auth.claims`
2133 |     - use `AuthObject` properties from `auth`
2134 |   - use `publishableKey` instead of `frontendApi`
2135 |   - use `ClerkProviderOptionsWrapper` type instead of `IsomorphicClerkOptions`
2136 | - 5f58a2274: Remove hashing and third-party cookie functionality related to development instance session syncing in favor of URL-based session syncing with query parameters.
2137 | - a9fe242be: Change return values of `signJwt`, `hasValidSignature`, `decodeJwt`, `verifyJwt`
2138 |   to return `{ data, error }`. Example of keeping the same behavior using those utilities:
2139 | 
2140 |   ```typescript
2141 |   import { signJwt, hasValidSignature, decodeJwt, verifyJwt } from '@clerk/backend/jwt';
2142 | 
2143 |   const { data, error } = await signJwt(...)
2144 |   if (error) throw error;
2145 | 
2146 |   const { data, error } = await hasValidSignature(...)
2147 |   if (error) throw error;
2148 | 
2149 |   const { data, error } = decodeJwt(...)
2150 |   if (error) throw error;
2151 | 
2152 |   const { data, error } = await verifyJwt(...)
2153 |   if (error) throw error;
2154 |   ```
2155 | 
2156 | - 97407d8aa: Dropping support for Node 14 and 16 as they both reached EOL status. The minimal Node.js version required by Clerk is `18.18.0` now.
2157 | - 9a1fe3728: Use the new `routerPush` and `routerReplace` props for `<ClerkProvider />` instead of `navigate`.
2158 | - 7886ba89d: Refresh the look and feel of the Clerk UI components
2159 | 
2160 |   For more info, refer to the [upgrade guide from v4 to v5 in Clerk docs](https://clerk.com/docs/upgrade-guides/upgrading-from-v4-to-v5).
2161 | 
2162 | - 9a1fe3728: Introduces two new props for `<ClerkProvider />`, `push` and `replace`. These props replace the `navigate` prop. Passing both `push` and `replace` will allow Clerk to correctly handle navigations without causing issues with the host application's router.
2163 | - 477170962: Drop deprecations. Migration steps:
2164 |   - drop `formFieldLabel__emailAddress_phoneNumber` from localization keys
2165 |   - drop `formFieldLabel__phoneNumber_username` from localization keys
2166 |   - drop `formFieldLabel__emailAddress_phoneNumber_username` from localization keys
2167 |   - drop `formFieldInputPlaceholder__emailAddress_phoneNumber` from localization keys
2168 |   - drop `formFieldInputPlaceholder__phoneNumber_username` from localization keys
2169 |   - drop `formFieldInputPlaceholder__emailAddress_phoneNumber_username` from localization keys
2170 |   - use `title__connectionFailed` instead of `title__conectionFailed` from localization keys
2171 |   - use `actionLabel__connectionFailed` instead of `actionLabel__conectionFailed` from localization keys
2172 |   - use `headerTitle__members` instead of `headerTitle__active` from localization keys
2173 |   - use `headerTitle__invitations` instead of `headerTitle__invited` from localization keys
2174 |   - drop `createOrganization.subtitle` from localization keys
2175 |   - use `deDE` instead of `deDe` localization from `@clerk/localizations`
2176 | - 41ae1d2f0: Avatar Shimmer will be enabled by default for `<UserButton/>` and `<OrganizationSwitcher/>`.
2177 | - 844847e0b: Align return types for redirectTo\* methods in ClerkJS [SDK-1037]
2178 | 
2179 |   Breaking Changes:
2180 | 
2181 |   - `redirectToUserProfile` now returns `Promise<unknown>` instead of `void`
2182 |   - `redirectToOrganizationProfile` now returns `Promise<unknown>` instead of `void`
2183 |   - `redirectToCreateOrganization` now returns `Promise<unknown>` instead of `void`
2184 |   - `redirectToHome` now returns `Promise<unknown>` instead of `void`
2185 | 
2186 | ### Minor Changes
2187 | 
2188 | - 0d0b1d89a: List passkeys under security in UserProfile.
2189 |   - Supports renaming a passkey.
2190 |   - Supports deleting a passkey.
2191 | - afec17953: Improved error handling for registration and retrieval of passkeys.
2192 |   ClerkRuntimeError codes introduced:
2193 | 
2194 |   - `passkey_not_supported`
2195 |   - `passkeys_pa_not_supported`
2196 |   - `passkey_invalid_rpID_or_domain`
2197 |   - `passkey_already_exists`
2198 |   - `passkey_operation_aborted`
2199 |   - `passkey_retrieval_cancelled`
2200 |   - `passkey_retrieval_failed`
2201 |   - `passkey_registration_cancelled`
2202 |   - `passkey_registration_failed`
2203 | 
2204 |   Example usage:
2205 | 
2206 |   ```ts
2207 |   try {
2208 |     await __experimental_authenticateWithPasskey(...args);
2209 |   }catch (e) {
2210 |     if (isClerkRuntimeError(e)) {
2211 |         if (err.code === 'passkey_operation_aborted') {
2212 |             ...
2213 |         }
2214 |     }
2215 |   }
2216 | 
2217 | 
2218 |   ```
2219 | 
2220 | - 0699fa496: Add support for different CAPTCHA widget types
2221 | - 0293f29c8: Add support for custom roles in `<OrganizationProfile/>`.
2222 | 
2223 |   The previous roles (`admin` and `basic_member`), are still kept as a fallback.
2224 | 
2225 | - 9180c8b80: Deprecate `supported_identifiers` and remove `supported_external_accounts`.
2226 | - fc3ffd880: Support for prompting a user to reset their password if it is found to be compromised during sign-in.
2227 | - 2352149f6: Move passkey related apis to stable:
2228 | 
2229 |   - Register passkey for a user
2230 |     Usage: `await clerk.user.createPasskey()`
2231 |   - Authenticate with passkey
2232 |     Usage: `await clerk.client.signIn.authenticateWithPasskey()`
2233 |     ```ts
2234 |     try {
2235 |       await clerk.client.signIn.authenticateWithPasskey(...args);
2236 |     }catch (e) {
2237 |       if (isClerkRuntimeError(e)) {
2238 |           if (err.code === 'passkey_operation_aborted') {
2239 |               ...
2240 |           }
2241 |       }
2242 |     }
2243 |     ```
2244 |   - ClerkRuntimeError codes introduced:
2245 | 
2246 |     - `passkey_not_supported`
2247 |     - `passkeys_pa_not_supported`
2248 |     - `passkey_invalid_rpID_or_domain`
2249 |     - `passkey_already_exists`
2250 |     - `passkey_operation_aborted`
2251 |     - `passkey_retrieval_cancelled`
2252 |     - `passkey_retrieval_failed`
2253 |     - `passkey_registration_cancelled`
2254 |     - `passkey_registration_failed`
2255 | 
2256 |   - Get the user's passkeys
2257 |     `clerk.user.passkeys`
2258 |   - Update the name of a passkey
2259 |     `clerk.user.passkeys?.[0].update({name:'Company issued passkey'})`
2260 |   - Delete a passkey
2261 |     `clerk.user.passkeys?.[0].delete()`
2262 | 
2263 | - ff08fe237: Introduce experimental support for Google One Tap
2264 |   - React Component `<__experimental_GoogleOneTap/>`
2265 |   - JS `clerk.__experimental_mountGoogleOneTap(node,props)`
2266 | - 9737ef510: Accept `skipInvitationScreen` as a prop from OrganizationSwitcher.
2267 | 
2268 |   `skipInvitationScreen` hides the screen for sending invitations after an organization is created.
2269 |   By default, Clerk will automatically hide the screen if the number of max allowed members is equal to 1
2270 | 
2271 | - fafa76fb6: Experimental support for a user to register a passkey for their account.
2272 |   Usage: `await clerk.user.__experimental__createPasskey()`
2273 | - 1f650f30a: Experimental support for authenticating with a passkey.
2274 |   Example usage: `await signIn.authenticateWithPasskey()`.
2275 | - a9fe242be: Introduce new `ResultWithError` type in `@clerk/types`
2276 | - fe2607b6f: Remove MembershipRole. The type `MembershipRole` would always include the old role keys `admin`, `basic_member`, `guest_member`.
2277 |   If developers still depend on them after the introduction of custom roles, the can provide them as their custom types for authorization.
2278 | 
2279 |   ```ts
2280 |   // clerk.d.ts
2281 |   interface ClerkAuthorization {
2282 |     permission: '';
2283 |     role: 'admin' | 'basic_member' | 'guest_member';
2284 |   }
2285 |   ```
2286 | 
2287 | - c7e6d00f5: Experimental support for `<Gate/>` with role checks.
2288 | - 663243220: Remove the unused appearance keys for accordion and breadcrumb elements.
2289 | - 12962bc58: Re-use common pagination types for consistency across types.
2290 | 
2291 |   Types introduced in `@clerk/types`:
2292 | 
2293 |   - `ClerkPaginationRequest` : describes pagination related props in request payload
2294 |   - `ClerkPaginatedResponse` : describes pagination related props in response body
2295 |   - `ClerkPaginationParams` : describes pagination related props in api client method params
2296 | 
2297 | - 2e4a43017: Update `@clerk/clerk-js` and `@clerk/clerk-react` to support the following examples:
2298 | 
2299 |   ```typescript
2300 |   Clerk.signOut({ redirectUrl: '/' })
2301 | 
2302 |   <SignOutButton redirectUrl='/' />
2303 |   // uses Clerk.signOut({ redirectUrl: '/' })
2304 |   <UserButton afterSignOutUrl='/after' />
2305 |   // uses Clerk.signOut({ redirectUrl: '/after' })
2306 |   <ClerkProvider afterSignOutUrl='/after' />
2307 |   // uses Clerk.signOut({ redirectUrl: '/after' })
2308 |   ```
2309 | 
2310 | - 5aab9f04a: Add `routerDebug` option in `Clerk.load()` to log the destination URLs when navigating
2311 | - 46040a2f3: Introduce Protect for authorization.
2312 |   Changes in public APIs:
2313 |   - Rename Gate to Protect
2314 |   - Support for permission checks. (Previously only roles could be used)
2315 |   - Remove the `experimental` tags and prefixes
2316 |   - Drop `some` from the `has` utility and Protect. Protect now accepts a `condition` prop where a function is expected with the `has` being exposed as the param.
2317 |   - Protect can now be used without required props. In this case behaves as `<SignedIn>`, if no authorization props are passed.
2318 |   - `has` will throw an error if neither `permission` or `role` is passed.
2319 |   - `auth().protect()` for Nextjs App Router. Allow per page protection in app router. This utility will automatically throw a 404 error if user is not authorized or authenticated.
2320 |     - inside a page or layout file it will render the nearest `not-found` component set by the developer
2321 |     - inside a route handler it will return empty response body with a 404 status code
2322 | - 7f751c4ef: Add support for X/Twitter v2 OAuth provider
2323 | - 18c0d015d: Pass environment into `sdkMetadata` in order to detect if production clerk-js is used by other sdks in dev mode. When it is log dev warning from clerk-js.
2324 | - d6a7ea61a: Update the TypeScript types of `<ClerkProvider />`. If you use the `routerPush` prop you're now required to also provide the `routerReplace` prop (or other way around). You can also not provide them at all since both props are optional.
2325 | - ebf9be77f: Allow users to authenticate with passkeys via the `<SignIn/>`.
2326 | - 008ac4217: Experimental support for reading, updating, and deleting a user's registered passkeys.
2327 |   - Get the user's passkeys
2328 |     `clerk.user.__experimental__passkeys`
2329 |   - Update the name of a passkey
2330 |     `clerk.user.__experimental__passkeys?.[0].update({name:'work laptop passkey'})`
2331 |   - Delete a passkey
2332 |     `clerk.user.__experimental__passkeys?.[0].delete()`
2333 | 
2334 | ### Patch Changes
2335 | 
2336 | - 1db1f4068: Add `permissions` to `meta` field of fapi error.
2337 | - d37d44a68: Shows list of domains if member has the `org:sys_domain:read` permission.
2338 | - fe356eebd: Fix the appearance.baseTheme type to accept array of BaseTheme
2339 | - 7f6a64f43: - By default, all the components with routing will have the `routing` prop assigned as `'path'` by default when the `path` prop is filled.
2340 |   - The `<UserButton />` component will set the default value of the `userProfileMode` prop to `'navigation'` if the `userProfileUrl` prop is provided.
2341 |   - The `<OrganizationSwitcher />` component will have the `organizationProfileMode` and `createOrganizationMode` props assigned with `'navigation'` by default if the `organizationProfileUrl` and `createOrganizationUrl` props are filled accordingly.
2342 | - 2de442b24: Rename beta-v5 to beta
2343 | - 840636a14: Adds translation keys to be able to customize error messages when an identifier already exists:
2344 | 
2345 |   - form_identifier_exists\_\_email_address
2346 |   - form_identifier_exists\_\_username
2347 |   - form_identifier_exists\_\_phone_number
2348 | 
2349 | - bab2e7e05: Support but warn when `afterSignInUrl` and `afterSignUpUrl` are used
2350 | - 244de5ea3: Fix using `ClerkPaginationRequest` type without passing a generic.
2351 | 
2352 |   Before the fix the `ClerkPaginationRequest = any` and after the fix the `ClerkPaginationRequest = { limit, offset }`.
2353 | 
2354 | - d9f265fcb: Fallback to invisible CAPTCHA if the element to render to is not found in the DOM
2355 | - 69ce3e185: Adjust `ZxcvbnResult` interface to use current `feedback.warning` type as used in the upstream `@zxcvbn-ts/core` library.
2356 | - 78fc5eec0: Introduces new element appearance descriptors:
2357 | 
2358 |   - `activeDeviceListItem` allows you to customize the appearance of the active device list (accordion) item
2359 |     - `activeDeviceListItem__current` allows you to customize the appearance of the _current_ active device list (accordion) item
2360 |   - `activeDevice` allows you to customize the appearance of the active device item
2361 |     - `activeDevice__current` allows you to customize the appearance of the _current_ active device item
2362 | 
2363 | - 6a33709cc: Drop `org:sys_domains:delete` and `org:sys_memberships:delete` as those have now been merged with the respective `manage` ones.
2364 | - f77e8cdbd: Add Autocomplete TS generic for union literals
2365 | - 8b466a9ba: Prevent Clerk component flickering when mounted in a Next.js app using App Router
2366 | - c6a5e0f5d: Add maintenance mode banner to the SignIn and SignUp components. The text can be customized by updating the maintenanceMode localization key.
2367 | - 4edb77632: Localize placeholder of confirmation field when deleting a user account from `<UserProfile/>`.
2368 | - ab4eb56a5: Drop `redirectToHome` redirect method in favour of `redirectToAfterSignUp` or `redirectToAfterSignIn`.
2369 | 
2370 |   When the `<SignIn/>` and `<SignUp/>` components are rendered while a user is already logged in, they will now redirect to the configured `afterSignIn` and `afterSignUp` URLs, respectively. Previously, the redirect URL was set to the home URL configured in the dashboard.
2371 | 
2372 | - 5c239d973: Update social provider `docsUrl` entries to point to new URLs
2373 | - f00fd2dfe: Support legacy redirectUrl prop on SignIn and SignUp
2374 | - f540e9843: Return to localhost when SSO callback fails on SignIn or SignUp
2375 | - 48ca40af9: Simplify the WithOptions generic type
2376 | - 94519aa33: Renaming `passkeys_pa_not_supported` to `passkey_pa_not_supported` to align with the rest passkey error codes.
2377 | - 40ac4b645: Introduces telemetry collection from Clerk's SDKs. Collected telemetry will be used to gain insights into product usage and help drive roadmap priority. For more information, see https://clerk.com/docs/telemetry.
2378 | - 429d030f7: Introducing some changes and some addition for the appearence descriptors for the organization preview in `<OrganizationSwitcher/>`:
2379 |   - `.cl-organizationPreview__organizationSwitcher` has been renamed to `.cl-organizationPreview__organizationSwitcherTrigger`.
2380 |   - `.cl-organizationPreview__organizationSwitcherListedOrganization` was added to allow you to customize the appearance of all the listed organization previews.
2381 |   - `.cl-organizationPreview__organizationSwitcherActiveOrganizationn` was added to allow you to customize the appearance of the active organization.
2382 | 
2383 | ## 4.0.0-beta.30
2384 | 
2385 | ### Patch Changes
2386 | 
2387 | - Support legacy redirectUrl prop on SignIn and SignUp by [@nikosdouvlis](https://github.com/nikosdouvlis)
2388 | 
2389 | ## 4.0.0-beta.29
2390 | 
2391 | ### Patch Changes
2392 | 
2393 | - Introduce forceRedirectUrl and fallbackRedirectUrl ([#3162](https://github.com/clerk/javascript/pull/3162)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
2394 | 
2395 | ## 4.0.0-beta.28
2396 | 
2397 | ### Minor Changes
2398 | 
2399 | - Introduce experimental support for Google One Tap ([#3176](https://github.com/clerk/javascript/pull/3176)) by [@panteliselef](https://github.com/panteliselef)
2400 | 
2401 |   - React Component `<__experimental_GoogleOneTap/>`
2402 |   - JS `clerk.__experimental_mountGoogleOneTap(node,props)`
2403 | 
2404 | ### Patch Changes
2405 | 
2406 | - Fallback to invisible CAPTCHA if the element to render to is not found in the DOM ([#3191](https://github.com/clerk/javascript/pull/3191)) by [@anagstef](https://github.com/anagstef)
2407 | 
2408 | ## 4.0.0-beta.27
2409 | 
2410 | ### Patch Changes
2411 | 
2412 | - Renaming `passkeys_pa_not_supported` to `passkey_pa_not_supported` to align with the rest passkey error codes. ([#3173](https://github.com/clerk/javascript/pull/3173)) by [@panteliselef](https://github.com/panteliselef)
2413 | 
2414 | ## 4.0.0-beta.26
2415 | 
2416 | ### Minor Changes
2417 | 
2418 | - Add support for different CAPTCHA widget types ([#3154](https://github.com/clerk/javascript/pull/3154)) by [@anagstef](https://github.com/anagstef)
2419 | 
2420 | ## 4.0.0-beta.25
2421 | 
2422 | ### Minor Changes
2423 | 
2424 | - Move passkey related apis to stable: ([#3134](https://github.com/clerk/javascript/pull/3134)) by [@panteliselef](https://github.com/panteliselef)
2425 | 
2426 |   - Register passkey for a user
2427 |     Usage: `await clerk.user.createPasskey()`
2428 |   - Authenticate with passkey
2429 |     Usage: `await clerk.client.signIn.authenticateWithPasskey()`
2430 |     ```ts
2431 |     try {
2432 |       await clerk.client.signIn.authenticateWithPasskey(...args);
2433 |     }catch (e) {
2434 |       if (isClerkRuntimeError(e)) {
2435 |           if (err.code === 'passkey_operation_aborted') {
2436 |               ...
2437 |           }
2438 |       }
2439 |     }
2440 |     ```
2441 |   - ClerkRuntimeError codes introduced:
2442 | 
2443 |     - `passkey_not_supported`
2444 |     - `passkeys_pa_not_supported`
2445 |     - `passkey_invalid_rpID_or_domain`
2446 |     - `passkey_already_exists`
2447 |     - `passkey_operation_aborted`
2448 |     - `passkey_retrieval_cancelled`
2449 |     - `passkey_retrieval_failed`
2450 |     - `passkey_registration_cancelled`
2451 |     - `passkey_registration_failed`
2452 | 
2453 |   - Get the user's passkeys
2454 |     `clerk.user.passkeys`
2455 |   - Update the name of a passkey
2456 |     `clerk.user.passkeys?.[0].update({name:'Company issued passkey'})`
2457 |   - Delete a passkey
2458 |     `clerk.user.passkeys?.[0].delete()`
2459 | 
2460 | ## 4.0.0-beta.24
2461 | 
2462 | ### Minor Changes
2463 | 
2464 | - Deprecate `supported_identifiers` and remove `supported_external_accounts`. ([#3089](https://github.com/clerk/javascript/pull/3089)) by [@panteliselef](https://github.com/panteliselef)
2465 | 
2466 | ### Patch Changes
2467 | 
2468 | - Add maintenance mode banner to the SignIn and SignUp components. The text can be customized by updating the maintenanceMode localization key. by [@nikosdouvlis](https://github.com/nikosdouvlis)
2469 | 
2470 | ## 4.0.0-beta.23
2471 | 
2472 | ### Minor Changes
2473 | 
2474 | - Support for prompting a user to reset their password if it is found to be compromised during sign-in. ([#3034](https://github.com/clerk/javascript/pull/3034)) by [@yourtallness](https://github.com/yourtallness)
2475 | 
2476 | ### Patch Changes
2477 | 
2478 | - Adds translation keys to be able to customize error messages when an identifier already exists: ([#3073](https://github.com/clerk/javascript/pull/3073)) by [@octoper](https://github.com/octoper)
2479 | 
2480 |   - form_identifier_exists\_\_email_address
2481 |   - form_identifier_exists\_\_username
2482 |   - form_identifier_exists\_\_phone_number
2483 | 
2484 | - Return to localhost when SSO callback fails on SignIn or SignUp ([#2955](https://github.com/clerk/javascript/pull/2955)) by [@anagstef](https://github.com/anagstef)
2485 | 
2486 | ## 4.0.0-beta.22
2487 | 
2488 | ### Minor Changes
2489 | 
2490 | - Improved error handling for registration and retrieval of passkeys. ([#3025](https://github.com/clerk/javascript/pull/3025)) by [@panteliselef](https://github.com/panteliselef)
2491 | 
2492 |   ClerkRuntimeError codes introduced:
2493 | 
2494 |   - `passkey_not_supported`
2495 |   - `passkeys_pa_not_supported`
2496 |   - `passkey_invalid_rpID_or_domain`
2497 |   - `passkey_already_exists`
2498 |   - `passkey_operation_aborted`
2499 |   - `passkey_retrieval_cancelled`
2500 |   - `passkey_retrieval_failed`
2501 |   - `passkey_registration_cancelled`
2502 |   - `passkey_registration_failed`
2503 | 
2504 |   Example usage:
2505 | 
2506 |   ```ts
2507 |   try {
2508 |     await __experimental_authenticateWithPasskey(...args);
2509 |   }catch (e) {
2510 |     if (isClerkRuntimeError(e)) {
2511 |         if (err.code === 'passkey_operation_aborted') {
2512 |             ...
2513 |         }
2514 |     }
2515 |   }
2516 | 
2517 | 
2518 |   ```
2519 | 
2520 | ## 4.0.0-beta.21
2521 | 
2522 | ### Minor Changes
2523 | 
2524 | - List passkeys under security in UserProfile. ([#2958](https://github.com/clerk/javascript/pull/2958)) by [@panteliselef](https://github.com/panteliselef)
2525 | 
2526 |   - Supports renaming a passkey.
2527 |   - Supports deleting a passkey.
2528 | 
2529 | - Experimental support for authenticating with a passkey. ([#2970](https://github.com/clerk/javascript/pull/2970)) by [@panteliselef](https://github.com/panteliselef)
2530 | 
2531 |   Example usage: `await signIn.authenticateWithPasskey()`.
2532 | 
2533 | - Remove the unused appearance keys for accordion and breadcrumb elements. ([#2956](https://github.com/clerk/javascript/pull/2956)) by [@desiprisg](https://github.com/desiprisg)
2534 | 
2535 | - Allow users to authenticate with passkeys via the `<SignIn/>`. ([#3000](https://github.com/clerk/javascript/pull/3000)) by [@panteliselef](https://github.com/panteliselef)
2536 | 
2537 | ## 4.0.0-beta.20
2538 | 
2539 | ### Minor Changes
2540 | 
2541 | - Experimental support for reading, updating, and deleting a user's registered passkeys. ([#2926](https://github.com/clerk/javascript/pull/2926)) by [@panteliselef](https://github.com/panteliselef)
2542 | 
2543 |   - Get the user's passkeys
2544 |     `clerk.user.__experimental__passkeys`
2545 |   - Update the name of a passkey
2546 |     `clerk.user.__experimental__passkeys?.[0].update({name:'work laptop passkey'})`
2547 |   - Delete a passkey
2548 |     `clerk.user.__experimental__passkeys?.[0].delete()`
2549 | 
2550 | ## 4.0.0-beta.19
2551 | 
2552 | ### Minor Changes
2553 | 
2554 | - Experimental support for a user to register a passkey for their account. ([#2884](https://github.com/clerk/javascript/pull/2884)) by [@panteliselef](https://github.com/panteliselef)
2555 | 
2556 |   Usage: `await clerk.user.__experimental__createPasskey()`
2557 | 
2558 | ## 4.0.0-beta.18
2559 | 
2560 | ### Minor Changes
2561 | 
2562 | - Pass environment into `sdkMetadata` in order to detect if production clerk-js is used by other sdks in dev mode. When it is log dev warning from clerk-js. ([#2802](https://github.com/clerk/javascript/pull/2802)) by [@panteliselef](https://github.com/panteliselef)
2563 | 
2564 | ## 4.0.0-beta.17
2565 | 
2566 | ### Patch Changes
2567 | 
2568 | - Fix the appearance.baseTheme type to accept array of BaseTheme ([#2887](https://github.com/clerk/javascript/pull/2887)) by [@anagstef](https://github.com/anagstef)
2569 | 
2570 | ## 4.0.0-beta.16
2571 | 
2572 | ### Patch Changes
2573 | 
2574 | - Update social provider `docsUrl` entries to point to new URLs ([#2817](https://github.com/clerk/javascript/pull/2817)) by [@kylemac](https://github.com/kylemac)
2575 | 
2576 | ## 4.0.0-beta.15
2577 | 
2578 | ### Patch Changes
2579 | 
2580 | - Rename beta-v5 to beta by [@nikosdouvlis](https://github.com/nikosdouvlis)
2581 | 
2582 | ## 4.0.0-beta-v5.14
2583 | 
2584 | ### Minor Changes
2585 | 
2586 | - Accept `skipInvitationScreen` as a prop from OrganizationSwitcher. ([#2713](https://github.com/clerk/javascript/pull/2713)) by [@panteliselef](https://github.com/panteliselef)
2587 | 
2588 |   `skipInvitationScreen` hides the screen for sending invitations after an organization is created.
2589 |   By default, Clerk will automatically hide the screen if the number of max allowed members is equal to 1
2590 | 
2591 | - Add support for X/Twitter v2 OAuth provider ([#2690](https://github.com/clerk/javascript/pull/2690)) by [@kostaspt](https://github.com/kostaspt)
2592 | 
2593 | ### Patch Changes
2594 | 
2595 | - Fix using `ClerkPaginationRequest` type without passing a generic. ([#2714](https://github.com/clerk/javascript/pull/2714)) by [@dimkl](https://github.com/dimkl)
2596 | 
2597 |   Before the fix the `ClerkPaginationRequest = any` and after the fix the `ClerkPaginationRequest = { limit, offset }`.
2598 | 
2599 | - Prevent Clerk component flickering when mounted in a Next.js app using App Router ([#2765](https://github.com/clerk/javascript/pull/2765)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
2600 | 
2601 | ## 4.0.0-beta-v5.13
2602 | 
2603 | ### Major Changes
2604 | 
2605 | - Refresh the look and feel of the Clerk UI components ([#2622](https://github.com/clerk/javascript/pull/2622)) by [@anagstef](https://github.com/anagstef)
2606 | 
2607 |   For more info, refer to the [upgrade guide from v4 to v5 in Clerk docs](https://clerk.com/docs/upgrade-guides/upgrading-from-v4-to-v5).
2608 | 
2609 | ## 4.0.0-alpha-v5.12
2610 | 
2611 | ### Minor Changes
2612 | 
2613 | - Remove MemberRole Type`MemberRole` would always include the old role keys `admin`, `member`, `guest_member`. ([#2388](https://github.com/clerk/javascript/pull/2388)) by [@panteliselef](https://github.com/panteliselef)
2614 | 
2615 |   If developers still depend on them after the introduction of custom roles, the can provide them as their custom types for authorization.
2616 | 
2617 |   ```ts
2618 |   // clerk.d.ts
2619 |   export {};
2620 | 
2621 |   interface ClerkAuthorization {
2622 |     permission: '';
2623 |     role: 'admin' | 'basic_member' | 'guest_member';
2624 |   }
2625 |   ```
2626 | 
2627 | - Update `@clerk/clerk-js` and `@clerk/clerk-react` to support the following examples: ([#2412](https://github.com/clerk/javascript/pull/2412)) by [@dimkl](https://github.com/dimkl)
2628 | 
2629 |   ```typescript
2630 |   Clerk.signOut({ redirectUrl: '/' })
2631 | 
2632 |   <SignOutButton redirectUrl='/' />
2633 |   // uses Clerk.signOut({ redirectUrl: '/' })
2634 |   <UserButton afterSignOutUrl='/after' />
2635 |   // uses Clerk.signOut({ redirectUrl: '/after' })
2636 |   <ClerkProvider afterSignOutUrl='/after' />
2637 |   // uses Clerk.signOut({ redirectUrl: '/after' })
2638 |   ```
2639 | 
2640 | ## 4.0.0-alpha-v5.11
2641 | 
2642 | ### Major Changes
2643 | 
2644 | - - Remove `BuildUrlWithAuthParams` type ([#2367](https://github.com/clerk/javascript/pull/2367)) by [@tmilewski](https://github.com/tmilewski)
2645 | 
2646 |   - `AuthConfigResource` no longer has a `urlBasedSessionSyncing` property
2647 |   - `buildUrlWithAuth` no longer accepts an `options` argument of `BuildUrlWithAuthParams`.
2648 | 
2649 | - Remove hashing and third-party cookie functionality related to development instance session syncing in favor of URL-based session syncing with query parameters. ([#2367](https://github.com/clerk/javascript/pull/2367)) by [@tmilewski](https://github.com/tmilewski)
2650 | 
2651 | - Change return values of `signJwt`, `hasValidSignature`, `decodeJwt`, `verifyJwt` ([#2377](https://github.com/clerk/javascript/pull/2377)) by [@dimkl](https://github.com/dimkl)
2652 | 
2653 |   to return `{ data, error }`. Example of keeping the same behavior using those utilities:
2654 | 
2655 |   ```typescript
2656 |   import { signJwt, hasValidSignature, decodeJwt, verifyJwt } from '@clerk/backend/jwt';
2657 | 
2658 |   const { data, error } = await signJwt(...)
2659 |   if (error) throw error;
2660 | 
2661 |   const { data, error } = await hasValidSignature(...)
2662 |   if (error) throw error;
2663 | 
2664 |   const { data, error } = decodeJwt(...)
2665 |   if (error) throw error;
2666 | 
2667 |   const { data, error } = await verifyJwt(...)
2668 |   if (error) throw error;
2669 |   ```
2670 | 
2671 | ### Minor Changes
2672 | 
2673 | - Introduce new `ResultWithError` type in `@clerk/types` ([#2377](https://github.com/clerk/javascript/pull/2377)) by [@dimkl](https://github.com/dimkl)
2674 | 
2675 | ## 4.0.0-alpha-v5.10
2676 | 
2677 | ### Major Changes
2678 | 
2679 | - Align return types for redirectTo\* methods in ClerkJS [SDK-1037] ([#2316](https://github.com/clerk/javascript/pull/2316)) by [@tmilewski](https://github.com/tmilewski)
2680 | 
2681 |   Breaking Changes:
2682 | 
2683 |   - `redirectToUserProfile` now returns `Promise<unknown>` instead of `void`
2684 |   - `redirectToOrganizationProfile` now returns `Promise<unknown>` instead of `void`
2685 |   - `redirectToCreateOrganization` now returns `Promise<unknown>` instead of `void`
2686 |   - `redirectToHome` now returns `Promise<unknown>` instead of `void`
2687 | 
2688 | ### Minor Changes
2689 | 
2690 | - Introduce Protect for authorization. ([#2170](https://github.com/clerk/javascript/pull/2170)) by [@panteliselef](https://github.com/panteliselef)
2691 | 
2692 |   Changes in public APIs:
2693 | 
2694 |   - Rename Gate to Protect
2695 |   - Support for permission checks. (Previously only roles could be used)
2696 |   - Remove the `experimental` tags and prefixes
2697 |   - Drop `some` from the `has` utility and Protect. Protect now accepts a `condition` prop where a function is expected with the `has` being exposed as the param.
2698 |   - Protect can now be used without required props. In this case behaves as `<SignedIn>`, if no authorization props are passed.
2699 |   - `has` will throw an error if neither `permission` or `role` is passed.
2700 |   - `auth().protect()` for Nextjs App Router. Allow per page protection in app router. This utility will automatically throw a 404 error if user is not authorized or authenticated.
2701 |     - inside a page or layout file it will render the nearest `not-found` component set by the developer
2702 |     - inside a route handler it will return empty response body with a 404 status code
2703 | 
2704 | ### Patch Changes
2705 | 
2706 | - Adjust `ZxcvbnResult` interface to use current `feedback.warning` type as used in the upstream `@zxcvbn-ts/core` library. ([#2326](https://github.com/clerk/javascript/pull/2326)) by [@LekoArts](https://github.com/LekoArts)
2707 | 
2708 | - Drop `redirectToHome` redirect method in favour of `redirectToAfterSignUp` or `redirectToAfterSignIn`. ([#2251](https://github.com/clerk/javascript/pull/2251)) by [@octoper](https://github.com/octoper)
2709 | 
2710 |   When the `<SignIn/>` and `<SignUp/>` components are rendered while a user is already logged in, they will now redirect to the configured `afterSignIn` and `afterSignUp` URLs, respectively. Previously, the redirect URL was set to the home URL configured in the dashboard.
2711 | 
2712 | ## 4.0.0-alpha-v5.9
2713 | 
2714 | ### Major Changes
2715 | 
2716 | - Drop `Clerk.isReady(). Use `Clerk.loaded` instead.` ([#2294](https://github.com/clerk/javascript/pull/2294)) by [@dimkl](https://github.com/dimkl)
2717 | 
2718 | ### Patch Changes
2719 | 
2720 | - Add `permissions` to `meta` field of fapi error. ([#2282](https://github.com/clerk/javascript/pull/2282)) by [@panteliselef](https://github.com/panteliselef)
2721 | 
2722 | ## 4.0.0-alpha-v5.8
2723 | 
2724 | ### Patch Changes
2725 | 
2726 | - Drop `org:sys_domains:delete` and `org:sys_memberships:delete` as those have now been merged with the respective `manage` ones. ([#2256](https://github.com/clerk/javascript/pull/2256)) by [@panteliselef](https://github.com/panteliselef)
2727 | 
2728 | ## 4.0.0-alpha-v5.7
2729 | 
2730 | ### Minor Changes
2731 | 
2732 | - Update the TypeScript types of `<ClerkProvider />`. If you use the `routerPush` prop you're now required to also provide the `routerReplace` prop (or other way around). You can also not provide them at all since both props are optional. ([#2227](https://github.com/clerk/javascript/pull/2227)) by [@dimkl](https://github.com/dimkl)
2733 | 
2734 | ## 4.0.0-alpha-v5.6
2735 | 
2736 | ### Major Changes
2737 | 
2738 | - Use the new `routerPush` and `routerReplace` props for `<ClerkProvider />` instead of `navigate`. ([#1304](https://github.com/clerk/javascript/pull/1304)) by [@desiprisg](https://github.com/desiprisg)
2739 | 
2740 | - Introduces two new props for `<ClerkProvider />`, `push` and `replace`. These props replace the `navigate` prop. Passing both `push` and `replace` will allow Clerk to correctly handle navigations without causing issues with the host application's router. ([#1304](https://github.com/clerk/javascript/pull/1304)) by [@desiprisg](https://github.com/desiprisg)
2741 | 
2742 | ### Minor Changes
2743 | 
2744 | - Add `routerDebug` option in `Clerk.load()` to log the destination URLs when navigating ([#2223](https://github.com/clerk/javascript/pull/2223)) by [@dimkl](https://github.com/dimkl)
2745 | 
2746 | ## 4.0.0-alpha-v5.5
2747 | 
2748 | ### Minor Changes
2749 | 
2750 | - Re-use common pagination types for consistency across types. ([#2210](https://github.com/clerk/javascript/pull/2210)) by [@dimkl](https://github.com/dimkl)
2751 | 
2752 |   Types introduced in `@clerk/types`:
2753 | 
2754 |   - `ClerkPaginationRequest` : describes pagination related props in request payload
2755 |   - `ClerkPaginatedResponse` : describes pagination related props in response body
2756 |   - `ClerkPaginationParams` : describes pagination related props in api client method params
2757 | 
2758 | ## 4.0.0-alpha-v5.4
2759 | 
2760 | ### Patch Changes
2761 | 
2762 | - - By default, all the components with routing will have the `routing` prop assigned as `'path'` by default when the `path` prop is filled. ([#1957](https://github.com/clerk/javascript/pull/1957)) by [@octoper](https://github.com/octoper)
2763 | 
2764 |   - The `<UserButton />` component will set the default value of the `userProfileMode` prop to `'navigation'` if the `userProfileUrl` prop is provided.
2765 |   - The `<OrganizationSwitcher />` component will have the `organizationProfileMode` and `createOrganizationMode` props assigned with `'navigation'` by default if the `organizationProfileUrl` and `createOrganizationUrl` props are filled accordingly.
2766 | 
2767 | ## 4.0.0-alpha-v5.3
2768 | 
2769 | ### Patch Changes
2770 | 
2771 | - Introduces telemetry collection from Clerk's SDKs. Collected telemetry will be used to gain insights into product usage and help drive roadmap priority. For more information, see https://clerk.com/docs/telemetry. ([#2154](https://github.com/clerk/javascript/pull/2154)) by [@BRKalow](https://github.com/BRKalow)
2772 | 
2773 | - Introducing some changes and some addition for the appearence descriptors for the organization preview in `<OrganizationSwitcher/>`: ([#2158](https://github.com/clerk/javascript/pull/2158)) by [@octoper](https://github.com/octoper)
2774 | 
2775 |   - `.cl-organizationPreview__organizationSwitcher` has been renamed to `.cl-organizationPreview__organizationSwitcherTrigger`.
2776 |   - `.cl-organizationPreview__organizationSwitcherListedOrganization` was added to allow you to customize the appearance of all the listed organization previews.
2777 |   - `.cl-organizationPreview__organizationSwitcherActiveOrganizationn` was added to allow you to customize the appearance of the active organization.
2778 | 
2779 | ## 4.0.0-alpha-v5.2
2780 | 
2781 | ### Major Changes
2782 | 
2783 | - Change the minimal Node.js version required by Clerk to `18.17.0`. ([#2162](https://github.com/clerk/javascript/pull/2162)) by [@dimkl](https://github.com/dimkl)
2784 | 
2785 | ## 4.0.0-alpha-v5.1
2786 | 
2787 | ### Major Changes
2788 | 
2789 | - Drop deprecations. Migration steps: ([#2082](https://github.com/clerk/javascript/pull/2082)) by [@dimkl](https://github.com/dimkl)
2790 | 
2791 |   - use `publishableKey` instead of `frontendApi`
2792 |   - use `Clerk.handleEmailLinkVerification()` instead of `Clerk.handleMagicLinkVerification()`
2793 |   - use `isEmailLinkError` instead of `isMagicLinkError`
2794 |   - use `EmailLinkErrorCode` instead of `MagicLinkErrorCode`
2795 |   - use `useEmailLink` instead of `useMagicLink`
2796 |   - drop `orgs` jwt claim from session token
2797 |   - use `ExternalAccount.imageUrl` instead of `ExternalAccount.avatarUrl`
2798 |   - use `Organization.imageUrl` instead of `Organization.logoUrl`
2799 |   - use `User.imageUrl` instead of `User.profileImageUrl`
2800 |   - use `OrganizationMembershipPublicUserData.imageUrl` instead of `OrganizationMembershipPublicUserData.profileImageUrl`
2801 |   - use `useOrganizationList` instead of `useOrganizations`
2802 |   - use `userProfileProps` instead of `userProfile` in `Appearance`
2803 |   - use `Clerk.setActive()` instead of `Clerk.setSession()`
2804 |   - drop `password` param in `User.update()`
2805 |   - use `afterSelectOrganizationUrl` instead of `afterSwitchOrganizationUrl` in `OrganizationSwitcher`
2806 |   - drop `Clerk.experimental_canUseCaptcha` / `Clerk.Clerk.experimental_captchaSiteKey` / `Clerk.experimental_captchaURL` (were meant for internal use)
2807 |   - use `User.getOrganizationMemberships()` instead of `Clerk.getOrganizationMemberships()`
2808 |   - drop `lastOrganizationInvitation` / `lastOrganizationMember` from Clerk emitted events
2809 |   - drop `Clerk.__unstable__invitationUpdate` / `Clerk.__unstable__membershipUpdate`
2810 |   - drop support for string param in `Organization.create()`
2811 |   - use `Organization.getInvitations()` instead of `Organization.getPendingInvitations()`
2812 |   - use `pageSize` instead of `limit` in `OrganizationMembership.retrieve()`
2813 |   - use `initialPage` instead of `offset` in `OrganizationMembership.retrieve()`
2814 |   - drop `lastOrganizationInvitation` / `lastOrganizationMember` from ClerkProvider
2815 |   - use `invitations` instead of `invitationList` in `useOrganization`
2816 |   - use `memberships` instead of `membershipList` in `useOrganization`
2817 |   - use `redirectUrl` instead of `redirect_url` in `User.createExternalAccount()`
2818 |   - use `signature` instead of `generatedSignature` in `Signup.attemptWeb3WalletVerification()`
2819 | 
2820 | - Drop deprecations. Migration steps: ([#2109](https://github.com/clerk/javascript/pull/2109)) by [@dimkl](https://github.com/dimkl)
2821 | 
2822 |   - drop `orgs` jwt claim from session token
2823 |   - change type of `auth` param of `withServerAuth()` callback to `AuthObject` from `ServerSideAuth` in `gatsby-clerk-plugin`
2824 |     - use `auth.sessionClaims` instead of `auth.claims`
2825 |     - use `AuthObject` properties from `auth`
2826 |   - use `publishableKey` instead of `frontendApi`
2827 |   - use `ClerkProviderOptionsWrapper` type instead of `IsomorphicClerkOptions`
2828 | 
2829 | - Drop deprecations. Migration steps: ([#2151](https://github.com/clerk/javascript/pull/2151)) by [@dimkl](https://github.com/dimkl)
2830 | 
2831 |   - drop `formFieldLabel__emailAddress_phoneNumber` from localization keys
2832 |   - drop `formFieldLabel__phoneNumber_username` from localization keys
2833 |   - drop `formFieldLabel__emailAddress_phoneNumber_username` from localization keys
2834 |   - drop `formFieldInputPlaceholder__emailAddress_phoneNumber` from localization keys
2835 |   - drop `formFieldInputPlaceholder__phoneNumber_username` from localization keys
2836 |   - drop `formFieldInputPlaceholder__emailAddress_phoneNumber_username` from localization keys
2837 |   - use `title__connectionFailed` instead of `title__conectionFailed` from localization keys
2838 |   - use `actionLabel__connectionFailed` instead of `actionLabel__conectionFailed` from localization keys
2839 |   - use `headerTitle__members` instead of `headerTitle__active` from localization keys
2840 |   - use `headerTitle__invitations` instead of `headerTitle__invited` from localization keys
2841 |   - drop `createOrganization.subtitle` from localization keys
2842 |   - use `deDE` instead of `deDe` localization from `@clerk/localizations`
2843 | 
2844 | ### Patch Changes
2845 | 
2846 | - Add Autocomplete TS generic for union literals ([#2132](https://github.com/clerk/javascript/pull/2132)) by [@tmilewski](https://github.com/tmilewski)
2847 | 
2848 | ## 4.0.0-alpha-v5.0
2849 | 
2850 | ### Major Changes
2851 | 
2852 | - Dropping support for Node 14 and 16 as they both reached EOL status. The minimal Node.js version required by Clerk is `18.18.0` now. ([#1864](https://github.com/clerk/javascript/pull/1864)) by [@dimkl](https://github.com/dimkl)
2853 | 
2854 | - Avatar Shimmer will be enabled by default for `<UserButton/>` and `<OrganizationSwitcher/>`. ([#1972](https://github.com/clerk/javascript/pull/1972)) by [@octoper](https://github.com/octoper)
2855 | 
2856 | ### Minor Changes
2857 | 
2858 | - Add support for custom roles in `<OrganizationProfile/>`. ([#2004](https://github.com/clerk/javascript/pull/2004)) by [@panteliselef](https://github.com/panteliselef)
2859 | 
2860 |   The previous roles (`admin` and `basic_member`), are still kept as a fallback.
2861 | 
2862 | - Experimental support for `<Gate/>` with role checks. ([#1942](https://github.com/clerk/javascript/pull/1942)) by [@panteliselef](https://github.com/panteliselef)
2863 | 
2864 | ### Patch Changes
2865 | 
2866 | - Shows list of domains if member has the `org:sys_domain:read` permission. ([#1988](https://github.com/clerk/javascript/pull/1988)) by [@panteliselef](https://github.com/panteliselef)
2867 | 
2868 | - Introduces new element appearance descriptors: ([#1994](https://github.com/clerk/javascript/pull/1994)) by [@tmilewski](https://github.com/tmilewski)
2869 | 
2870 |   - `activeDeviceListItem` allows you to customize the appearance of the active device list (accordion) item
2871 |     - `activeDeviceListItem__current` allows you to customize the appearance of the _current_ active device list (accordion) item
2872 |   - `activeDevice` allows you to customize the appearance of the active device item
2873 |     - `activeDevice__current` allows you to customize the appearance of the _current_ active device item
2874 | 
2875 | - Localize placeholder of confirmation field when deleting a user account from `<UserProfile/>`. ([#2036](https://github.com/clerk/javascript/pull/2036)) by [@panteliselef](https://github.com/panteliselef)
2876 | 
2877 | - Simplify the WithOptions generic type ([#1995](https://github.com/clerk/javascript/pull/1995)) by [@tmilewski](https://github.com/tmilewski)
2878 | 
2879 | ## 3.57.0
2880 | 
2881 | ### Minor Changes
2882 | 
2883 | - Introduce customization in `UserProfile` and `OrganizationProfile` ([#1822](https://github.com/clerk/javascript/pull/1822)) by [@anagstef](https://github.com/anagstef)
2884 | 
2885 |   The `<UserProfile />` component now allows the addition of custom pages and external links to the navigation sidebar. Custom pages can be created using the `<UserProfile.Page>` component, and external links can be added using the `<UserProfile.Link>` component. The default routes, such as `Account` and `Security`, can be reordered.
2886 | 
2887 |   Example React API usage:
2888 | 
2889 |   ```tsx
2890 |   <UserProfile>
2891 |     <UserProfile.Page
2892 |       label='Custom Page'
2893 |       url='custom'
2894 |       labelIcon={<CustomIcon />}
2895 |     >
2896 |       <MyCustomPageContent />
2897 |     </UserProfile.Page>
2898 |     <UserProfile.Link
2899 |       label='External'
2900 |       url='/home'
2901 |       labelIcon={<Icon />}
2902 |     />
2903 |     <UserProfile.Page label='account' />
2904 |     <UserProfile.Page label='security' />
2905 |   </UserProfile>
2906 |   ```
2907 | 
2908 |   Custom pages and links should be provided as children using the `<UserButton.UserProfilePage>` and `<UserButton.UserProfileLink>` components when using the `UserButton` component.
2909 | 
2910 |   The `<OrganizationProfile />` component now supports the addition of custom pages and external links to the navigation sidebar. Custom pages can be created using the `<OrganizationProfile.Page>` component, and external links can be added using the `<OrganizationProfile.Link>` component. The default routes, such as `Members` and `Settings`, can be reordered.
2911 | 
2912 |   Example React API usage:
2913 | 
2914 |   ```tsx
2915 |   <OrganizationProfile>
2916 |     <OrganizationProfile.Page
2917 |       label='Custom Page'
2918 |       url='custom'
2919 |       labelIcon={<CustomIcon />}
2920 |     >
2921 |       <MyCustomPageContent />
2922 |     </OrganizationProfile.Page>
2923 |     <OrganizationProfile.Link
2924 |       label='External'
2925 |       url='/home'
2926 |       labelIcon={<Icon />}
2927 |     />
2928 |     <OrganizationProfile.Page label='members' />
2929 |     <OrganizationProfile.Page label='settings' />
2930 |   </OrganizationProfile>
2931 |   ```
2932 | 
2933 |   Custom pages and links should be provided as children using the `<OrganizationSwitcher.OrganizationProfilePage>` and `<OrganizationSwitcher.OrganizationProfileLink>` components when using the `OrganizationSwitcher` component.
2934 | 
2935 | ### Patch Changes
2936 | 
2937 | - Publish packages with [npm provenance](https://docs.npmjs.com/generating-provenance-statements) enabled ([#1891](https://github.com/clerk/javascript/pull/1891)) by [@LekoArts](https://github.com/LekoArts)
2938 | 
2939 | - Drop `experimental_force_oauth_first` & `experimental__forceOauthFirst` from `DisplayConfig` ([#1918](https://github.com/clerk/javascript/pull/1918)) by [@dimkl](https://github.com/dimkl)
2940 | 
2941 | ## 3.56.1
2942 | 
2943 | ### Patch Changes
2944 | 
2945 | - Deprecate experimental captcha from Clerk singleton. ([#1905](https://github.com/clerk/javascript/pull/1905)) by [@panteliselef](https://github.com/panteliselef)
2946 | 
2947 | ## 3.56.0
2948 | 
2949 | ### Minor Changes
2950 | 
2951 | - Introduces three new element appearance descriptors: ([#1803](https://github.com/clerk/javascript/pull/1803)) by [@octoper](https://github.com/octoper)
2952 | 
2953 |   - `tableHead` let's you customize the tables head styles.
2954 |   - `paginationButton` let's you customize the pagination buttons.
2955 |   - `paginationRowText` let's you customize the pagination text.
2956 | 
2957 | ### Patch Changes
2958 | 
2959 | - Update default organization permissions with a `sys_` prefix as part of the entitlement. This changes makes it easy to distinguish between clerk reserved permissions and custom permissions created by developers. ([#1865](https://github.com/clerk/javascript/pull/1865)) by [@mzhong9723](https://github.com/mzhong9723)
2960 | 
2961 | - Mark the following SAML related types as stable: ([#1876](https://github.com/clerk/javascript/pull/1876)) by [@dimkl](https://github.com/dimkl)
2962 | 
2963 |   - `User.samlAccounts`
2964 |   - `SamlAccount`
2965 |   - `UserSettingsResource.saml`
2966 |   - `UserSettingsJSON.saml`
2967 |   - `SamlSettings`
2968 |   - `UserResource.samlAccounts`
2969 |   - `SamlAccountResource`
2970 |   - `SamlStrategy`
2971 |   - `UserJSON.saml_accounts`
2972 |   - `SamlAccountJSON`
2973 |   - `SamlConfig`
2974 |   - `SamlFactor`
2975 |   - `HandleSamlCallbackParams`
2976 | 
2977 | - Deprecate the `organization.__unstable__invitationUpdate` and `organization.__unstable__membershipUpdate` methods. ([#1879](https://github.com/clerk/javascript/pull/1879)) by [@panteliselef](https://github.com/panteliselef)
2978 | 
2979 | - Fix methods in clerk-js that consumede paginated endpoints in order to retrieve single resources. ([#1871](https://github.com/clerk/javascript/pull/1871)) by [@panteliselef](https://github.com/panteliselef)
2980 | 
2981 | - In invite members screen of the <OrganizationProfile /> component, consume any invalid email addresses as they are returned in the API error and remove them from the input automatically. ([#1869](https://github.com/clerk/javascript/pull/1869)) by [@chanioxaris](https://github.com/chanioxaris)
2982 | 
2983 | ## 3.55.0
2984 | 
2985 | ### Minor Changes
2986 | 
2987 | - Add support for LinkedIn OIDC ([#1772](https://github.com/clerk/javascript/pull/1772)) by [@fragoulis](https://github.com/fragoulis)
2988 | 
2989 | ### Patch Changes
2990 | 
2991 | - Introduces a new `isAuthorized()` method in the `Session` class. Returns a promise and checks whether the active user is allowed to perform an action based on the passed (required) permission and the ones attached to the membership. ([#1834](https://github.com/clerk/javascript/pull/1834)) by [@panteliselef](https://github.com/panteliselef)
2992 | 
2993 | - Introduce a new property on the core Clerk singleton, `sdkMetadata`. This will be populated by each host SDK. This metadata will be used to make logging and debugging easier. ([#1857](https://github.com/clerk/javascript/pull/1857)) by [@BRKalow](https://github.com/BRKalow)
2994 | 
2995 | - Introduce new `*EmailLink*` helpers that will replace the `*MagicLink*` helpers. ([#1833](https://github.com/clerk/javascript/pull/1833)) by [@dimkl](https://github.com/dimkl)
2996 | 
2997 |   Also marked all the `*MagicLink*` as deprecated using JSDocs.
2998 | 
2999 | ## 3.54.0
3000 | 
3001 | ### Minor Changes
3002 | 
3003 | - Introduce a new user resource method to leave an organization. You can now call 'user.leaveOrganization(<org_id>)' when a user chooses to leave an organization instead of 'organization.removeMember(<user_id>)' which is mostly meant for organization based actions. ([#1809](https://github.com/clerk/javascript/pull/1809)) by [@chanioxaris](https://github.com/chanioxaris)
3004 | 
3005 | ### Patch Changes
3006 | 
3007 | - - Introduce organizationProfileProps as prop in `<OrganizationSwitcher/>`. ([#1801](https://github.com/clerk/javascript/pull/1801)) by [@panteliselef](https://github.com/panteliselef)
3008 | 
3009 |   - Introduce appearance in userProfileProps in `<UserButton/>`.
3010 |   - Deprecate the usage of `appearance.userProfile` in `<UserButton/>`.
3011 | 
3012 | - Introduce ClerkRuntimeError class for localizing error messages in ClerkJS components ([#1813](https://github.com/clerk/javascript/pull/1813)) by [@panteliselef](https://github.com/panteliselef)
3013 | 
3014 | - Enables you to translate the tooltip hint while creating an organization through the `formFieldHintText__slug` key ([#1811](https://github.com/clerk/javascript/pull/1811)) by [@LekoArts](https://github.com/LekoArts)
3015 | 
3016 | - Drop `password` property from `UserJSON` since it's not being returned by the Frontend API ([#1805](https://github.com/clerk/javascript/pull/1805)) by [@dimkl](https://github.com/dimkl)
3017 | 
3018 | - Remove experimental jsdoc tags from multi-domain types. ([#1819](https://github.com/clerk/javascript/pull/1819)) by [@panteliselef](https://github.com/panteliselef)
3019 | 
3020 | - Warn about `publicUserData.profileImageUrl` nested property deprecation in `OrganizationMembership` & `OrganizationMembershipRequest` resources. ([#1812](https://github.com/clerk/javascript/pull/1812)) by [@dimkl](https://github.com/dimkl)
3021 | 
3022 | ## 3.53.0
3023 | 
3024 | ### Minor Changes
3025 | 
3026 | - `<SignIn/>`, `<SignUp/>`, `<RedirectToSignin/>`, `<RedirectToSignUp/>`, `clerk.redirectToSignIn()` and `clerk.redirectToSignUp()` now accept the `initialValues` option, which will prefill the appropriate form fields with the values provided. ([#1701](https://github.com/clerk/javascript/pull/1701)) by [@desiprisg](https://github.com/desiprisg)
3027 | 
3028 | ## 3.52.1
3029 | 
3030 | ### Patch Changes
3031 | 
3032 | - Introduces a new method for fetching organization invitations called `Organization.getInvitations`. ([#1766](https://github.com/clerk/javascript/pull/1766)) by [@panteliselef](https://github.com/panteliselef)
3033 | 
3034 |   Deprecate `Organization.getPendingInvitations`
3035 | 
3036 | - Adds the ability to force users to reset their password. ([#1757](https://github.com/clerk/javascript/pull/1757)) by [@kostaspt](https://github.com/kostaspt)
3037 | 
3038 | ## 3.52.0
3039 | 
3040 | ### Minor Changes
3041 | 
3042 | - Introduce the new brand-new component OrganizationList ([#1692](https://github.com/clerk/javascript/pull/1692)) by [@panteliselef](https://github.com/panteliselef)
3043 | 
3044 |   - Lists all the memberships, invitations or suggestions an active user may have
3045 |   - Powered by our `useOrganizationList` react hook
3046 | 
3047 | ### Patch Changes
3048 | 
3049 | - Change `README` to include updated links to issue templates and update Discord link. ([#1750](https://github.com/clerk/javascript/pull/1750)) by [@LekoArts](https://github.com/LekoArts)
3050 | 
3051 | - This PR replaces `The verification link expired. Please resend it.` message with the localization key `formFieldError__verificationLinkExpired`. The english message was also adjust to `The verification link expired. Please request a new link.` to make the second sentence clearer. ([#1738](https://github.com/clerk/javascript/pull/1738)) by [@LekoArts](https://github.com/LekoArts)
3052 | 
3053 | ## 3.51.0
3054 | 
3055 | ### Minor Changes
3056 | 
3057 | - Introduced a new `firstFactorUrl` property in sign-in callback to handle unverified emails. ([#1629](https://github.com/clerk/javascript/pull/1629)) by [@kostaspt](https://github.com/kostaspt)
3058 | 
3059 | ### Patch Changes
3060 | 
3061 | - Organization Switcher now displays organization invitations and suggestions in a more compact form. ([#1675](https://github.com/clerk/javascript/pull/1675)) by [@panteliselef](https://github.com/panteliselef)
3062 | 
3063 | ## 3.50.0
3064 | 
3065 | ### Minor Changes
3066 | 
3067 | - Introducing validatePassword for SignIn and SignUp resources ([#1445](https://github.com/clerk/javascript/pull/1445)) by [@panteliselef](https://github.com/panteliselef)
3068 | 
3069 |   - Validate a password based on the instance's configuration set in Password Policies in Dashboard
3070 | 
3071 | - Introduce a new resource called OrganizationSuggestion along with retrieve() & accept() methods ([#1574](https://github.com/clerk/javascript/pull/1574)) by [@chanioxaris](https://github.com/chanioxaris)
3072 | 
3073 |   Also make available the user's suggestions from the useOrganizationList hook
3074 | 
3075 | - Introduces userInvitations from `useOrganizationList` ([#1520](https://github.com/clerk/javascript/pull/1520)) by [@panteliselef](https://github.com/panteliselef)
3076 | 
3077 |   `userInvitations` is a paginated list of data. It can be used to create Paginated tables or Infinite lists.
3078 | 
3079 | - Introduce `hasImage` in User / Organization / Session resources ([#1544](https://github.com/clerk/javascript/pull/1544)) by [@dimkl](https://github.com/dimkl)
3080 | 
3081 | - Improve redirects on OAuth callback. Now, if you try to sign up with a provider that allows unverified accounts, it will ([#1563](https://github.com/clerk/javascript/pull/1563)) by [@kostaspt](https://github.com/kostaspt)
3082 | 
3083 |   navigate to the appropriate change when needed, fixing the broken flow.
3084 | 
3085 | - Introduce `logoLinkUrl` prop in `appearance.layout` ([#1449](https://github.com/clerk/javascript/pull/1449)) by [@nikospapcom](https://github.com/nikospapcom)
3086 | 
3087 |   A new `logoLinkUrl` prop has been added to `appearance.layout` and used in `ApplicationLogo` to change the `href` of the link.
3088 |   By default, the logo link url will be the Home URL you've set in the Clerk Dashboard.
3089 | 
3090 | ### Patch Changes
3091 | 
3092 | - Introduces a new resource called OrganizationMembership ([#1572](https://github.com/clerk/javascript/pull/1572)) by [@panteliselef](https://github.com/panteliselef)
3093 | 
3094 |   - useOrganization has been updated in order to return a list of domain with the above type
3095 | 
3096 | - Introduces Membership Requests in <OrganizationProfile /> ([#1576](https://github.com/clerk/javascript/pull/1576)) by [@panteliselef](https://github.com/panteliselef)
3097 | 
3098 |   - This is a list of users that have requested to join the active organization
3099 | 
3100 | - Updates signature of OrganizationMembership.retrieve to support backwards compatibility while allowing using the new paginated responses. ([#1606](https://github.com/clerk/javascript/pull/1606)) by [@panteliselef](https://github.com/panteliselef)
3101 | 
3102 |   - userMemberships is now also part of the returned values of useOrganizationList
3103 | 
3104 | - Introduces the accept method in UserOrganizationInvitation class ([#1550](https://github.com/clerk/javascript/pull/1550)) by [@panteliselef](https://github.com/panteliselef)
3105 | 
3106 | - Display a notification counter for organization invitations in OrganizationSwitcher ([#1627](https://github.com/clerk/javascript/pull/1627)) by [@panteliselef](https://github.com/panteliselef)
3107 | 
3108 | - Introduces a new resource called OrganizationDomain ([#1569](https://github.com/clerk/javascript/pull/1569)) by [@panteliselef](https://github.com/panteliselef)
3109 | 
3110 |   - useOrganization has been updated in order to return a list of domain with the above type
3111 | 
3112 | - Introduces domains and invitations in <OrganizationProfile /> ([#1560](https://github.com/clerk/javascript/pull/1560)) by [@panteliselef](https://github.com/panteliselef)
3113 | 
3114 |   - The "Members" page now accommodates Domain and Individual invitations
3115 |   - The "Settings" page allows for the addition, edit and removal of a domain
3116 | 
3117 | - A OrganizationMembershipRequest can now be rejected ([#1612](https://github.com/clerk/javascript/pull/1612)) by [@panteliselef](https://github.com/panteliselef)
3118 | 
3119 |   - New `OrganizationMembershipRequest.reject` method alongside `accept`
3120 |   - As an organization admin, navigate to `Organization Profile` > `Members` > `Requests`. You can now reject a request from the table.
3121 | 
3122 | - Introduces an invitation list within <OrganizationSwitcher/> ([#1554](https://github.com/clerk/javascript/pull/1554)) by [@panteliselef](https://github.com/panteliselef)
3123 | 
3124 |   - Users can accept the invitation that is sent to them
3125 | 
3126 | - When updating enrollment mode of a domain uses can now delete any pending invitations or suggestions. ([#1632](https://github.com/clerk/javascript/pull/1632)) by [@panteliselef](https://github.com/panteliselef)
3127 | 
3128 | - Construct urls based on context in <OrganizationSwitcher/> ([#1503](https://github.com/clerk/javascript/pull/1503)) by [@panteliselef](https://github.com/panteliselef)
3129 | 
3130 |   - Deprecate `afterSwitchOrganizationUrl`
3131 |   - Introduce `afterSelectOrganizationUrl` & `afterSelectPersonalUrl`
3132 | 
3133 |   `afterSelectOrganizationUrl` accepts
3134 | 
3135 |   - Full URL -> 'https://clerk.com/'
3136 |   - relative path -> '/organizations'
3137 |   - relative path -> with param '/organizations/:id'
3138 |   - function that returns a string -> (org) => `/org/${org.slug}`
3139 |     `afterSelectPersonalUrl` accepts
3140 |   - Full URL -> 'https://clerk.com/'
3141 |   - relative path -> '/users'
3142 |   - relative path -> with param '/users/:username'
3143 |   - function that returns a string -> (user) => `/users/${user.id}`
3144 | 
3145 | - Introduces list of suggestions within <OrganizationSwitcher/> ([#1577](https://github.com/clerk/javascript/pull/1577)) by [@panteliselef](https://github.com/panteliselef)
3146 | 
3147 |   - Users can request to join a suggested organization
3148 | 
3149 | ## 3.49.0
3150 | 
3151 | ### Minor Changes
3152 | 
3153 | - Handle the construction of zxcvbn errors with information from FAPI ([#1526](https://github.com/clerk/javascript/pull/1526)) by [@raptisj](https://github.com/raptisj)
3154 | 
3155 | ### Patch Changes
3156 | 
3157 | - Deprecate usage of old image fields in favor of `imageUrl` ([#1543](https://github.com/clerk/javascript/pull/1543)) by [@dimkl](https://github.com/dimkl)
3158 | 
3159 | - New localization keys for max length exceeded validation: ([#1521](https://github.com/clerk/javascript/pull/1521)) by [@nikospapcom](https://github.com/nikospapcom)
3160 | 
3161 |   - Organization name (form_param_max_length_exceeded\_\_name)
3162 |   - First name (form_param_max_length_exceeded\_\_first_name)
3163 |   - Last name (form_param_max_length_exceeded\_\_last_name)
3164 | 
3165 | - Introduces a new internal class `UserOrganizationInvitation` that represents and invitation to join an organization with the organization data populated ([#1527](https://github.com/clerk/javascript/pull/1527)) by [@panteliselef](https://github.com/panteliselef)
3166 | 
3167 |   Additions to support the above
3168 | 
3169 |   - UserOrganizationInvitationResource
3170 |   - UserOrganizationInvitationJSON
3171 |   - ClerkPaginatedResponse
3172 | 
3173 |   ClerkPaginatedResponse represents a paginated FAPI response
3174 | 
3175 | - Introduce Clerk.client.clearCache() method ([#1545](https://github.com/clerk/javascript/pull/1545)) by [@SokratisVidros](https://github.com/SokratisVidros)
3176 | 
3177 | ## 3.48.1
3178 | 
3179 | ### Patch Changes
3180 | 
3181 | - Introduce the `skipInvitationScreen` prop on `<CreateOrganization />` component ([#1501](https://github.com/clerk/javascript/pull/1501)) by [@panteliselef](https://github.com/panteliselef)
3182 | 
3183 | ## 3.48.0
3184 | 
3185 | ### Minor Changes
3186 | 
3187 | - Add unsafeMetadata prop to the SignUp component ([#1464](https://github.com/clerk/javascript/pull/1464)) by [@tmilewski](https://github.com/tmilewski)
3188 | 
3189 | ## 3.47.0
3190 | 
3191 | ### Minor Changes
3192 | 
3193 | - Add a confirmation input as an additional check when doing destructive actions such as: ([#1454](https://github.com/clerk/javascript/pull/1454)) by [@raptisj](https://github.com/raptisj)
3194 | 
3195 |   - delete an organization
3196 |   - delete a user account
3197 |   - leave an organization
3198 | 
3199 |   Νew localization keys were introduced to support the above
3200 | 
3201 | ### Patch Changes
3202 | 
3203 | - Add missing property 'maxAllowedMemberships' in Organization resource ([#1468](https://github.com/clerk/javascript/pull/1468)) by [@chanioxaris](https://github.com/chanioxaris)
3204 | 
3205 | - Add `form_username_invalid_character` unstable error localization key. ([#1475](https://github.com/clerk/javascript/pull/1475)) by [@desiprisg](https://github.com/desiprisg)
3206 | 
3207 | - Add missing property 'privateMetadata' in OrganizationInvitation resource ([#1468](https://github.com/clerk/javascript/pull/1468)) by [@chanioxaris](https://github.com/chanioxaris)
3208 | 
3209 | - Enable the ability to target the avatar upload and remove action buttons ([#1455](https://github.com/clerk/javascript/pull/1455)) by [@tmilewski](https://github.com/tmilewski)
3210 | 
3211 | ## 3.46.1
3212 | 
3213 | ### Patch Changes
3214 | 
3215 | - Add missing `create` method to `PhoneNumberResource`, `EmailAddressResource`, `Web3WalletResource` interfaces ([#1411](https://github.com/clerk/javascript/pull/1411)) by [@crutchcorn](https://github.com/crutchcorn)
3216 | 
3217 | ## 3.46.0
3218 | 
3219 | ### Minor Changes
3220 | 
3221 | - Add ability for organization admins to delete an organization if they have permission to do so ([#1368](https://github.com/clerk/javascript/pull/1368)) by [@jescalan](https://github.com/jescalan)
3222 | 
3223 | ## 3.45.0
3224 | 
3225 | ### Minor Changes
3226 | 
3227 | - If user does not have permission to create an org, create org button will not display in the OrganizationSwitcher UI ([#1373](https://github.com/clerk/javascript/pull/1373)) by [@jescalan](https://github.com/jescalan)
3228 | 
3229 | ### Patch Changes
3230 | 
3231 | - Fix to pull from the correct permissions set when displaying user delete self UI ([#1372](https://github.com/clerk/javascript/pull/1372)) by [@jescalan](https://github.com/jescalan)
3232 | 
3233 | ## 3.44.0
3234 | 
3235 | ### Minor Changes
3236 | 
3237 | - Add localization keys for when the phone number exists and the last identification is deleted ([#1383](https://github.com/clerk/javascript/pull/1383)) by [@raptisj](https://github.com/raptisj)
3238 | 
3239 | ## 3.43.0
3240 | 
3241 | ### Minor Changes
3242 | 
3243 | - Adds the ability for users to delete their own accounts, as long as they have permission to do so ([#1307](https://github.com/clerk/javascript/pull/1307)) by [@jescalan](https://github.com/jescalan)
3244 | 
3245 | ### Patch Changes
3246 | 
3247 | - Password, first name & last name fields will be disabled if there are active SAML accounts. ([#1326](https://github.com/clerk/javascript/pull/1326)) by [@yourtallness](https://github.com/yourtallness)
3248 | 
3249 | ## 3.42.0
3250 | 
3251 | ### Minor Changes
3252 | 
3253 | - Add base64 string support in Organization.setLogo ([#1309](https://github.com/clerk/javascript/pull/1309)) by [@raptisj](https://github.com/raptisj)
3254 | 
3255 | ## 3.41.1
3256 | 
3257 | ### Patch Changes
3258 | 
3259 | - fix(types,localizations): Improve invalid form email_address param error message by [@nikosdouvlis](https://github.com/nikosdouvlis)
3260 | 
3261 | - Make first name, last name & password readonly for users with active SAML accounts by [@nikosdouvlis](https://github.com/nikosdouvlis)
3262 | 
3263 | - Add support for dataURLs in User.setProfileImage by [@nikosdouvlis](https://github.com/nikosdouvlis)
3264 | 
3265 | ## [3.41.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-06-03)
3266 | 
3267 | **Note:** Version bump only for package @clerk/types
3268 | 
3269 | ## [3.40.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-26)
3270 | 
3271 | **Note:** Version bump only for package @clerk/types
3272 | 
3273 | ## [3.39.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-23)
3274 | 
3275 | **Note:** Version bump only for package @clerk/types
3276 | 
3277 | ### [3.38.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-18)
3278 | 
3279 | **Note:** Version bump only for package @clerk/types
3280 | 
3281 | ## [3.38.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-17)
3282 | 
3283 | **Note:** Version bump only for package @clerk/types
3284 | 
3285 | ## [3.37.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-15)
3286 | 
3287 | **Note:** Version bump only for package @clerk/types
3288 | 
3289 | ## [3.36.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-04)
3290 | 
3291 | **Note:** Version bump only for package @clerk/types
3292 | 
3293 | ## [3.36.0-staging.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-04)
3294 | 
3295 | ### Features
3296 | 
3297 | - **clerk-js,types:** Support sign in with SAML strategy ([6da395f](https://github.com/clerk/javascript/commit/6da395fd785467aa934896942408bdb5f64aa887))
3298 | - **clerk-js,types:** Support sign up with SAML strategy ([6d9c93e](https://github.com/clerk/javascript/commit/6d9c93e9d782f17bbddde1e68c2ce977415b45db))
3299 | - **clerk-js:** Use allowed special characters for password from environment ([dec0512](https://github.com/clerk/javascript/commit/dec05120c180e53595e87817a2f44ef62af0f4f1))
3300 | 
3301 | ## [3.36.0-staging.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-02)
3302 | 
3303 | ### Features
3304 | 
3305 | - **clerk-js:** Add resetPasswordFlow to SignIn resource ([6155f5b](https://github.com/clerk/javascript/commit/6155f5bde6fe0a140bffb7d8087c2246716abf7e))
3306 | - **clerk-js:** Create <ResetPasswordSuccess /> page ([3fbf8e7](https://github.com/clerk/javascript/commit/3fbf8e7157774412096ff432e622540ae2d96ef4))
3307 | - **clerk-js:** Introduce Reset Password flow ([e903c4f](https://github.com/clerk/javascript/commit/e903c4f430ae629625177637bb14f965a37596e1))
3308 | - **clerk-js:** Localize "Password don't match" field error ([c573599](https://github.com/clerk/javascript/commit/c573599a370d4f3925d0e8a87b37f28f157bb62b))
3309 | - **clerk-js:** Reset password for first factor ([280b5df](https://github.com/clerk/javascript/commit/280b5df2428b790e679a04004461aadb2717ae2b))
3310 | - **clerk-js:** Reset password MFA ([5978756](https://github.com/clerk/javascript/commit/5978756640bc5f5bb4726f72ca2e53ba43f009d6))
3311 | 
3312 | ### Bug Fixes
3313 | 
3314 | - **clerk-js,types:** Remove after_sign_out_url as it not returned by FAPI ([#1121](https://github.com/clerk/javascript/issues/1121)) ([d87493d](https://github.com/clerk/javascript/commit/d87493d13e2c7a3ffbf37ba728e6cde7f6f14682))
3315 | - **clerk-js:** Reset Password missing localization keys ([b1df074](https://github.com/clerk/javascript/commit/b1df074ad203e07b55b0051c9f97d4fd26e0fde5))
3316 | - **clerk-js:** Update type of resetPasswordFlow in SignInResource ([637b791](https://github.com/clerk/javascript/commit/637b791b0086be35a67e7d8a6a0e7c42989296b5))
3317 | 
3318 | ### [3.35.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-19)
3319 | 
3320 | **Note:** Version bump only for package @clerk/types
3321 | 
3322 | ### [3.35.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-19)
3323 | 
3324 | ### Bug Fixes
3325 | 
3326 | - **clerk-js:** Add resetPassword method as a core resource ([fa70749](https://github.com/clerk/javascript/commit/fa70749c3bc0e37433b314ea9e12c5153bf60e0e))
3327 | - **clerk-js:** Refactor types for resetPassword ([fd53901](https://github.com/clerk/javascript/commit/fd53901c0fd4ce7c7c81a9239d4818002b83f58c))
3328 | 
3329 | ### [3.35.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-12)
3330 | 
3331 | **Note:** Version bump only for package @clerk/types
3332 | 
3333 | ## [3.35.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-11)
3334 | 
3335 | **Note:** Version bump only for package @clerk/types
3336 | 
3337 | ## [3.34.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-06)
3338 | 
3339 | **Note:** Version bump only for package @clerk/types
3340 | 
3341 | ## [3.33.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-31)
3342 | 
3343 | **Note:** Version bump only for package @clerk/types
3344 | 
3345 | ## [3.32.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-29)
3346 | 
3347 | **Note:** Version bump only for package @clerk/types
3348 | 
3349 | ### [3.30.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-10)
3350 | 
3351 | **Note:** Version bump only for package @clerk/types
3352 | 
3353 | ## [3.30.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-09)
3354 | 
3355 | **Note:** Version bump only for package @clerk/types
3356 | 
3357 | ## [3.29.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-07)
3358 | 
3359 | **Note:** Version bump only for package @clerk/types
3360 | 
3361 | ### [3.28.5](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-03)
3362 | 
3363 | **Note:** Version bump only for package @clerk/types
3364 | 
3365 | ### [3.28.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-01)
3366 | 
3367 | **Note:** Version bump only for package @clerk/types
3368 | 
3369 | ### [3.28.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-25)
3370 | 
3371 | **Note:** Version bump only for package @clerk/types
3372 | 
3373 | ### [3.28.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-24)
3374 | 
3375 | **Note:** Version bump only for package @clerk/types
3376 | 
3377 | ### [3.28.2-staging.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-22)
3378 | 
3379 | ### Bug Fixes
3380 | 
3381 | - **clerk-js:** Pass unsafe metadata to sign up methods ([e2510e6](https://github.com/clerk/javascript/commit/e2510e65b726c113de977fb8252cdcd708ad9bb7))
3382 | 
3383 | ### [3.28.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-17)
3384 | 
3385 | **Note:** Version bump only for package @clerk/types
3386 | 
3387 | ## [3.28.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-15)
3388 | 
3389 | **Note:** Version bump only for package @clerk/types
3390 | 
3391 | ## [3.27.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-10)
3392 | 
3393 | **Note:** Version bump only for package @clerk/types
3394 | 
3395 | ### [3.26.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-07)
3396 | 
3397 | **Note:** Version bump only for package @clerk/types
3398 | 
3399 | ### [3.26.1-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-07)
3400 | 
3401 | **Note:** Version bump only for package @clerk/types
3402 | 
3403 | ## [3.26.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-07)
3404 | 
3405 | **Note:** Version bump only for package @clerk/types
3406 | 
3407 | ### [3.25.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-01)
3408 | 
3409 | **Note:** Version bump only for package @clerk/types
3410 | 
3411 | ## [3.25.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-27)
3412 | 
3413 | **Note:** Version bump only for package @clerk/types
3414 | 
3415 | ### [3.24.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-20)
3416 | 
3417 | ### Bug Fixes
3418 | 
3419 | - **nextjs,types:** Make frontendApi or publishableKey mutually exclusive but optional ([953c276](https://github.com/clerk/javascript/commit/953c27622ba24054172d6f4178bd5af50f73fa36))
3420 | 
3421 | ## [3.24.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-17)
3422 | 
3423 | **Note:** Version bump only for package @clerk/types
3424 | 
3425 | ## [3.23.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-19)
3426 | 
3427 | **Note:** Version bump only for package @clerk/types
3428 | 
3429 | ### [3.22.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-13)
3430 | 
3431 | **Note:** Version bump only for package @clerk/types
3432 | 
3433 | ### [3.22.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-12)
3434 | 
3435 | **Note:** Version bump only for package @clerk/types
3436 | 
3437 | ## [3.22.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-09)
3438 | 
3439 | **Note:** Version bump only for package @clerk/types
3440 | 
3441 | ### [3.21.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-08)
3442 | 
3443 | ### Reverts
3444 | 
3445 | - Revert "feat(clerk-js,types): Terse paths parameters (#572)" (#603) ([d535eac](https://github.com/clerk/javascript/commit/d535eace3d7733ce3b848bb05f1b0c02e5faf15d)), closes [#572](https://github.com/clerk/javascript/issues/572) [#603](https://github.com/clerk/javascript/issues/603)
3446 | 
3447 | ## [3.21.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-08)
3448 | 
3449 | **Note:** Version bump only for package @clerk/types
3450 | 
3451 | ## [3.20.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-02)
3452 | 
3453 | **Note:** Version bump only for package @clerk/types
3454 | 
3455 | ## [3.19.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-30)
3456 | 
3457 | **Note:** Version bump only for package @clerk/types
3458 | 
3459 | ## [3.19.0-staging.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-29)
3460 | 
3461 | **Note:** Version bump only for package @clerk/types
3462 | 
3463 | ## [3.18.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-25)
3464 | 
3465 | **Note:** Version bump only for package @clerk/types
3466 | 
3467 | ### [3.17.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-25)
3468 | 
3469 | **Note:** Version bump only for package @clerk/types
3470 | 
3471 | ### [3.17.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-23)
3472 | 
3473 | **Note:** Version bump only for package @clerk/types
3474 | 
3475 | ## [3.17.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-22)
3476 | 
3477 | **Note:** Version bump only for package @clerk/types
3478 | 
3479 | ## [3.17.0-staging.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-21)
3480 | 
3481 | ### Features
3482 | 
3483 | - **types:** Introduce Xero & Box OAuth provider types ([d7da1f2](https://github.com/clerk/javascript/commit/d7da1f2cbefef2841781202ac2853402c0b8eb2b))
3484 | 
3485 | ### [3.16.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-18)
3486 | 
3487 | **Note:** Version bump only for package @clerk/types
3488 | 
3489 | ## [3.16.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-15)
3490 | 
3491 | **Note:** Version bump only for package @clerk/types
3492 | 
3493 | ### [3.15.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-10)
3494 | 
3495 | **Note:** Version bump only for package @clerk/types
3496 | 
3497 | ## [3.15.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-05)
3498 | 
3499 | ### Features
3500 | 
3501 | - **types,clerk-js:** Introduce OrganizationSettings resource ([455911f](https://github.com/clerk/javascript/commit/455911f4166e4bea00aa62b32a05bef297983c61))
3502 | 
3503 | ## [3.14.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-03)
3504 | 
3505 | **Note:** Version bump only for package @clerk/types
3506 | 
3507 | ## [3.14.0-staging.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-02)
3508 | 
3509 | **Note:** Version bump only for package @clerk/types
3510 | 
3511 | ## [3.14.0-staging.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-02)
3512 | 
3513 | **Note:** Version bump only for package @clerk/types
3514 | 
3515 | ## [3.14.0-staging.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-02)
3516 | 
3517 | **Note:** Version bump only for package @clerk/types
3518 | 
3519 | ## [3.14.0-staging.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-02)
3520 | 
3521 | ### Features
3522 | 
3523 | - **clerk-js,types:** Organization invitation metadata ([87764b8](https://github.com/clerk/javascript/commit/87764b839cc65455347e1c19b15f4a17603201b8))
3524 | - **clerk-js:** Add `loaded` to core Clerk instance ([7c08a91](https://github.com/clerk/javascript/commit/7c08a914d674f05608503898542b907886465b7e))
3525 | 
3526 | ## [3.13.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-10-24)
3527 | 
3528 | **Note:** Version bump only for package @clerk/types
3529 | 
3530 | ## [3.12.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-10-14)
3531 | 
3532 | ### Features
3533 | 
3534 | - **types,clerk-js:** List only authenticatable OAuth providers in Sign in/up components ([4b3f1e6](https://github.com/clerk/javascript/commit/4b3f1e67d655dfb3e818ce9015b68b369d7a1bd4))
3535 | 
3536 | ## [3.11.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-10-14)
3537 | 
3538 | **Note:** Version bump only for package @clerk/types
3539 | 
3540 | ## [3.11.0-staging.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-10-13)
3541 | 
3542 | ### Features
3543 | 
3544 | - **clerk-js,clerk-react,types:** Wire up `OrganizationSwitcher` and `OrganizationProfile` ([1e34e69](https://github.com/clerk/javascript/commit/1e34e6986ee49aeb9ca9f72cdc5d799d6611b53f))
3545 | - **clerk-js:** Add table and pagination elements ([cb56f5c](https://github.com/clerk/javascript/commit/cb56f5c0313ba6f1fce50eae6fc3e3d596cf1b16))
3546 | 
3547 | ### Bug Fixes
3548 | 
3549 | - **clerk-js:** Add appearance customization support for avatar gradient ([96cde45](https://github.com/clerk/javascript/commit/96cde45b4f1db5ff074289b57ff58c40bf80f6e1))
3550 | - **clerk-js:** Add global not_allowed_access error to localization prop ([0313fe5](https://github.com/clerk/javascript/commit/0313fe5ce4e0afca20865ad1b6d0503502ea6e4d))
3551 | - **types:** Remove unused hideNavigation prop from UserProfile ([21cafcb](https://github.com/clerk/javascript/commit/21cafcb488d66f90a3b0a13a2079d9b0473ecf7e))
3552 | 
3553 | ### [3.10.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-10-07)
3554 | 
3555 | **Note:** Version bump only for package @clerk/types
3556 | 
3557 | ## [3.10.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-10-05)
3558 | 
3559 | **Note:** Version bump only for package @clerk/types
3560 | 
3561 | ## [3.9.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-10-03)
3562 | 
3563 | ### Features
3564 | 
3565 | - **clerk-js:** Add open prop in user button ([6ae7f42](https://github.com/clerk/javascript/commit/6ae7f4226f4db5760e04ee812a494beb66ab2502))
3566 | 
3567 | ### Bug Fixes
3568 | 
3569 | - **clerk-js:** Refactor defaultOpen prop ([1d7b0a9](https://github.com/clerk/javascript/commit/1d7b0a997a86686644d28ac58d0bd7143af9023f))
3570 | - **clerk-js:** Refactor isOpen prop ([044860f](https://github.com/clerk/javascript/commit/044860f7204988876b258141108d0e1741204bc1))
3571 | 
3572 | ## [3.8.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-09-29)
3573 | 
3574 | **Note:** Version bump only for package @clerk/types
3575 | 
3576 | ### [3.7.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-09-25)
3577 | 
3578 | **Note:** Version bump only for package @clerk/types
3579 | 
3580 | ## [3.7.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-09-24)
3581 | 
3582 | **Note:** Version bump only for package @clerk/types
3583 | 
3584 | ## [3.6.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-09-22)
3585 | 
3586 | **Note:** Version bump only for package @clerk/types
3587 | 
3588 | ### [3.5.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-09-19)
3589 | 
3590 | ### Bug Fixes
3591 | 
3592 | - **types:** Completely remove totp2Fa.resendButton key ([434fae5](https://github.com/clerk/javascript/commit/434fae5803122c825ce6da8ca2dccad13889605b))
3593 | 
3594 | ## [3.5.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-09-16)
3595 | 
3596 | ### Bug Fixes
3597 | 
3598 | - **types:** Completely remove totp2Fa.resendButton key ([434fae5](https://github.com/clerk/javascript/commit/434fae5803122c825ce6da8ca2dccad13889605b))
3599 | 
3600 | ### [3.4.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-09-07)
3601 | 
3602 | **Note:** Version bump only for package @clerk/types
3603 | 
3604 | ### [3.4.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-29)
3605 | 
3606 | **Note:** Version bump only for package @clerk/types
3607 | 
3608 | ## [3.4.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-29)
3609 | 
3610 | **Note:** Version bump only for package @clerk/types
3611 | 
3612 | ### [3.3.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-24)
3613 | 
3614 | **Note:** Version bump only for package @clerk/types
3615 | 
3616 | ## [3.3.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-18)
3617 | 
3618 | ### Features
3619 | 
3620 | - **types:** Introduce Instagram OAuth ([2991b01](https://github.com/clerk/javascript/commit/2991b011bf8002ed9a9c88fbe4cb911665201245))
3621 | 
3622 | ## [3.2.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-18)
3623 | 
3624 | **Note:** Version bump only for package @clerk/types
3625 | 
3626 | ### [3.1.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-16)
3627 | 
3628 | ### Bug Fixes
3629 | 
3630 | - **types:** Deprecate orgs session token claim, add org_slug for active organization ([4175040](https://github.com/clerk/javascript/commit/4175040ca2257265cc0b8c12389056933765040b))
3631 | 
3632 | ## [3.1.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-09)
3633 | 
3634 | ### Bug Fixes
3635 | 
3636 | - **clerk-js:** Introduce more selectors ([bf4c3b3](https://github.com/clerk/javascript/commit/bf4c3b372c7e74b1b42ce53cb7254e54b67c7815))
3637 | 
3638 | ### [3.0.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-07)
3639 | 
3640 | **Note:** Version bump only for package @clerk/types
3641 | 
3642 | ## [3.0.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-05)
3643 | 
3644 | **Note:** Version bump only for package @clerk/types
3645 | 
3646 | ## [2.21.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-08-04)
3647 | 
3648 | ### Features
3649 | 
3650 | - **clerk-js:** Get support email from FAPI /v1/environment if exists ([c9bb8d7](https://github.com/clerk/javascript/commit/c9bb8d7aaf3958207d4799bdd30e3b15b2890a5d))
3651 | 
3652 | ## [2.20.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-07-13)
3653 | 
3654 | ### Features
3655 | 
3656 | - **types,clerk-react,nextjs:** Add loadOrg option for Next.js withServerSideAuth middleware ([0889bde](https://github.com/clerk/javascript/commit/0889bde9bc7f9e1a5d4c1e706c49212e1f7b36f4))
3657 | 
3658 | ### Bug Fixes
3659 | 
3660 | - **types:** Typo rename Line to LINE ([79b3dd5](https://github.com/clerk/javascript/commit/79b3dd581e9750ac943d9a7a1091a37a48647538))
3661 | 
3662 | ### [2.19.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-07-07)
3663 | 
3664 | ### Bug Fixes
3665 | 
3666 | - **types:** Proper documentation url for OAuth providers ([4398cb2](https://github.com/clerk/javascript/commit/4398cb2ce0914ecd4850b1e3ccbbe64d3d25b031))
3667 | 
3668 | ## [2.19.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-07-06)
3669 | 
3670 | ### Features
3671 | 
3672 | - **types:** Introduce Line OAuth ([e9d429d](https://github.com/clerk/javascript/commit/e9d429d63fcfacd3d393fa9e104e8a1b46f41a67))
3673 | 
3674 | ## [2.18.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-07-01)
3675 | 
3676 | ### Features
3677 | 
3678 | - **types,clerk-js:** Introduce user hasVerifiedEmailAddress & hasVerifiedPhoneNumber attributes ([ea68447](https://github.com/clerk/javascript/commit/ea684473697c33b7b5d8930fe24b7667f6edeaad))
3679 | 
3680 | ## [2.17.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-06-24)
3681 | 
3682 | ### Features
3683 | 
3684 | - **clerk-js:** Add supportEmail property option ([71eff74](https://github.com/clerk/javascript/commit/71eff74383bcd1c3044cfd42ceae70de5b246e68))
3685 | - **types,backend-core:** Add org_role, org_id claims ([03da4cf](https://github.com/clerk/javascript/commit/03da4cffee2e5c493d0219d417842a13e066ffe6))
3686 | - **types,backend-core:** Consolidate Clerk issued JWT claims under ClerkJWTClaims ([e6bc9fb](https://github.com/clerk/javascript/commit/e6bc9fb380d38d7f89cc2059e0211b0ad55bd1a5))
3687 | 
3688 | ### Bug Fixes
3689 | 
3690 | - **edge,nextjs,remix,clerk-sdk-node,types:** Correct SSR claims typing ([09c147c](https://github.com/clerk/javascript/commit/09c147c196c08e64794423f9eae791bfe453b858))
3691 | 
3692 | ## [2.16.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-06-16)
3693 | 
3694 | **Note:** Version bump only for package @clerk/types
3695 | 
3696 | ## [2.15.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-06-06)
3697 | 
3698 | **Note:** Version bump only for package @clerk/types
3699 | 
3700 | ## [2.15.0-staging.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-06-03)
3701 | 
3702 | ### Bug Fixes
3703 | 
3704 | - **clerk-js,types:** Typo for MetaMask web3 provider name ([922dcb5](https://github.com/clerk/javascript/commit/922dcb52f406a17da8038cafaf10353b15aab2bf))
3705 | 
3706 | ## [2.15.0-staging.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-06-02)
3707 | 
3708 | ### Features
3709 | 
3710 | - **types,clerk-js:** Support required/optional email/phone for Progressive sign up instances ([13da457](https://github.com/clerk/javascript/commit/13da4576a08e4e396fa48605ecf61accc06057d5))
3711 | 
3712 | ## [2.15.0-staging.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-06-01)
3713 | 
3714 | ### Features
3715 | 
3716 | - **types,clerk-js:** Introduce web3 wallet operations in UserProfile ([6570a87](https://github.com/clerk/javascript/commit/6570a87439d92a59057b2df50ec482511428495e))
3717 | 
3718 | ### Bug Fixes
3719 | 
3720 | - **clerk-js:** Emit changes in organization to listeners ([798ee62](https://github.com/clerk/javascript/commit/798ee622e7961d3aa7f8842184f5fadbcfed517f))
3721 | - **types,clerk-js:** Same component navigate after OAuth flow with missing requirements ([39ca6ce](https://github.com/clerk/javascript/commit/39ca6cee3a8a160fdf0ca95a713707afee55f1fc))
3722 | 
3723 | ## [2.14.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-20)
3724 | 
3725 | **Note:** Version bump only for package @clerk/types
3726 | 
3727 | ## [2.14.0-staging.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-18)
3728 | 
3729 | ### Features
3730 | 
3731 | - **types,clerk-js:** Enhance Web3 wallet resource with relevant operations ([a166716](https://github.com/clerk/javascript/commit/a166716db44db8e765e67c154093c9d3c3f24c75))
3732 | - **types:** Include new organization role `guest_member` ([ba7f27b](https://github.com/clerk/javascript/commit/ba7f27b42be283f9b7b4126cecc8d93ab9a6f04e))
3733 | 
3734 | ### Bug Fixes
3735 | 
3736 | - **clerk-js:** Navigate to sign up continue in web3 ([460ba1c](https://github.com/clerk/javascript/commit/460ba1cc82bbad6197224ca71ad39302564408b4))
3737 | 
3738 | ## [2.14.0-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-17)
3739 | 
3740 | ### Features
3741 | 
3742 | - **types:** Include new organization role `guest_member` ([ba7f27b](https://github.com/clerk/javascript/commit/ba7f27b42be283f9b7b4126cecc8d93ab9a6f04e))
3743 | 
3744 | ### Bug Fixes
3745 | 
3746 | - **clerk-js:** Navigate to sign up continue in web3 ([460ba1c](https://github.com/clerk/javascript/commit/460ba1cc82bbad6197224ca71ad39302564408b4))
3747 | 
3748 | ## [2.13.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-13)
3749 | 
3750 | ### Features
3751 | 
3752 | - **clerk-js:** Add shortcut to active org in Clerk singleton ([03e68d4](https://github.com/clerk/javascript/commit/03e68d4667e7abcd006c4a3a2a2fe7f65bfca417))
3753 | - **types:** Introduce Web3 provider types and helpers ([8291d75](https://github.com/clerk/javascript/commit/8291d75a7f3172d05f76c0f9aeb08aab98e7d81c))
3754 | 
3755 | ## [2.12.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-12)
3756 | 
3757 | ### Features
3758 | 
3759 | - **types:** Introduce Web3 provider types and helpers ([8291d75](https://github.com/clerk/javascript/commit/8291d75a7f3172d05f76c0f9aeb08aab98e7d81c))
3760 | 
3761 | ## [2.11.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-12)
3762 | 
3763 | ### Features
3764 | 
3765 | - **types:** Introduce Web3 provider types and helpers ([8291d75](https://github.com/clerk/javascript/commit/8291d75a7f3172d05f76c0f9aeb08aab98e7d81c))
3766 | 
3767 | ### [2.10.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-11)
3768 | 
3769 | **Note:** Version bump only for package @clerk/types
3770 | 
3771 | ## [2.10.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-06)
3772 | 
3773 | ### Features
3774 | 
3775 | - **nextjs,clerk-sdk-node,remix:** Add claims attribute to req.auth ([c695529](https://github.com/clerk/javascript/commit/c695529089f55baef72b86e3b73b8cd9f4f58e6d))
3776 | 
3777 | ## [2.9.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-05-05)
3778 | 
3779 | **Note:** Version bump only for package @clerk/types
3780 | 
3781 | ## [2.8.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-28)
3782 | 
3783 | ### Features
3784 | 
3785 | - **clerk-js:** Add members to organizations ([d6787b6](https://github.com/clerk/javascript/commit/d6787b659744ea2ca178d6cf7df488be265d7a69))
3786 | - **clerk-js:** Delete organizations ([7cb1bea](https://github.com/clerk/javascript/commit/7cb1beaf12b293b9fde541855eb2cda81e0d6be4))
3787 | 
3788 | ### [2.7.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-19)
3789 | 
3790 | **Note:** Version bump only for package @clerk/types
3791 | 
3792 | ### [2.7.1-staging.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-19)
3793 | 
3794 | ### Bug Fixes
3795 | 
3796 | - **clerk-js:** Pass rotating_token_nonce correctly to FAPIClient ([370cb0e](https://github.com/clerk/javascript/commit/370cb0e26bccd524c44b9e7fc0e15521193f514f))
3797 | 
3798 | ## [2.7.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-18)
3799 | 
3800 | ### Features
3801 | 
3802 | - **clerk-js:** Organization slugs ([7f0e771](https://github.com/clerk/javascript/commit/7f0e771036815885b01da095979cf39da212503f))
3803 | 
3804 | ### [2.6.1-alpha.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-15)
3805 | 
3806 | **Note:** Version bump only for package @clerk/types
3807 | 
3808 | ## [2.6.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-15)
3809 | 
3810 | **Note:** Version bump only for package @clerk/types
3811 | 
3812 | ## [2.5.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-13)
3813 | 
3814 | **Note:** Version bump only for package @clerk/types
3815 | 
3816 | ## [2.4.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-07)
3817 | 
3818 | ### Features
3819 | 
3820 | - **types:** Introduce global UserPublicMetadata and UserUnsafeMetadata interfaces ([b1220ae](https://github.com/clerk/javascript/commit/b1220ae83afac53edac5f09ce2c332f188952ed4))
3821 | 
3822 | ## [2.3.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-04-04)
3823 | 
3824 | **Note:** Version bump only for package @clerk/types
3825 | 
3826 | ### [2.2.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-28)
3827 | 
3828 | **Note:** Version bump only for package @clerk/types
3829 | 
3830 | ## [2.2.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-24)
3831 | 
3832 | **Note:** Version bump only for package @clerk/types
3833 | 
3834 | ## [2.2.0-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-24)
3835 | 
3836 | ### Features
3837 | 
3838 | - **types,clerk-js,backend-core,clerk-react:** Replace thrown error with null return in getToken ([d972f93](https://github.com/clerk/javascript/commit/d972f93684a39abf3619c335cc012b61d5187100))
3839 | 
3840 | ### [2.1.1-alpha.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-23)
3841 | 
3842 | **Note:** Version bump only for package @clerk/types
3843 | 
3844 | ## [2.1.0-alpha.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-23)
3845 | 
3846 | ### Features
3847 | 
3848 | - **types,clerk-js:** Allow connecting external accounts from the user profile page ([180961b](https://github.com/clerk/javascript/commit/180961b61d5f6b75b5bc373f5d644cd0576831a8))
3849 | 
3850 | ## [2.1.0-alpha.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-23)
3851 | 
3852 | ### Features
3853 | 
3854 | - **clerk-js,types:** Rename UserButton params to afterSignOutUrl, afterMultiSessionSingleSignOutUrl ([c4cb76a](https://github.com/clerk/javascript/commit/c4cb76a1133fd2308b217cacaffb086b175f6347))
3855 | 
3856 | ### [2.0.1-alpha.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-22)
3857 | 
3858 | ### Bug Fixes
3859 | 
3860 | - **clerk-js:** Add createdUserId attribute to SignUp ([#132](https://github.com/clerk/javascript/issues/132)) ([b1884bd](https://github.com/clerk/javascript/commit/b1884bd950d9fcb27505269a09038dd571072a4e))
3861 | 
3862 | ### [2.0.1-alpha.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-22)
3863 | 
3864 | ### Bug Fixes
3865 | 
3866 | - **clerk-js:** Fix signIn.prepareFirstFactor params ([e435245](https://github.com/clerk/javascript/commit/e4352454028099f0973203aa79e548890c6327bd))
3867 | - **clerk-js:** Make getToken use /user endpoint for integration tokens ([b61213b](https://github.com/clerk/javascript/commit/b61213b4c94952e6f21dd8e036aa6815c5c38c06))
3868 | 
3869 | ### [2.0.1-alpha.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-20)
3870 | 
3871 | ### Bug Fixes
3872 | 
3873 | - **clerk-js:** Fix signIn.prepareFirstFactor params ([e435245](https://github.com/clerk/javascript/commit/e4352454028099f0973203aa79e548890c6327bd))
3874 | - **clerk-js:** Make getToken use /user endpoint for integration tokens ([b61213b](https://github.com/clerk/javascript/commit/b61213b4c94952e6f21dd8e036aa6815c5c38c06))
3875 | 
3876 | ### [2.0.1-alpha.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-19)
3877 | 
3878 | ### Bug Fixes
3879 | 
3880 | - **clerk-js:** Fix signIn.prepareFirstFactor params ([e435245](https://github.com/clerk/javascript/commit/e4352454028099f0973203aa79e548890c6327bd))
3881 | - **clerk-js:** Make getToken use /user endpoint for integration tokens ([b61213b](https://github.com/clerk/javascript/commit/b61213b4c94952e6f21dd8e036aa6815c5c38c06))
3882 | 
3883 | ## [2.0.0-alpha.9](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-11)
3884 | 
3885 | ### Features
3886 | 
3887 | - **nextjs:** Move shared NextJS SSR types to types package ([78d8c7c](https://github.com/clerk/javascript/commit/78d8c7c3e84f3926127e48c655793a0fca3cdc2c))
3888 | - **types:** Support for oauth_apple ([57b675c](https://github.com/clerk/javascript/commit/57b675c762187d1f16cde6d2577bac71f7993438))
3889 | 
3890 | ## [2.0.0-alpha.8](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-28)
3891 | 
3892 | ### Features
3893 | 
3894 | - **nextjs:** Move shared NextJS SSR types to types package ([78d8c7c](https://github.com/clerk/javascript/commit/78d8c7c3e84f3926127e48c655793a0fca3cdc2c))
3895 | - **types:** Add support for oauth_microsoft ([96c1cc6](https://github.com/clerk/javascript/commit/96c1cc6817b9bbc6917ea2773498299c1ff9b951))
3896 | 
3897 | ## [2.0.0-alpha.7](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-25)
3898 | 
3899 | ### Features
3900 | 
3901 | - **nextjs:** Move shared NextJS SSR types to types package ([8b898a1](https://github.com/clerk/javascript/commit/8b898a1aa503889921180850292fbfa3c8133ef5))
3902 | 
3903 | ## [2.0.0-alpha.6](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-18)
3904 | 
3905 | ### Features
3906 | 
3907 | - **nextjs:** Move shared NextJS SSR types to types package ([757dc2e](https://github.com/clerk/javascript/commit/757dc2ef1acf32f31bdad8bcab076bb710723781))
3908 | 
3909 | ### [1.29.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-17)
3910 | 
3911 | **Note:** Version bump only for package @clerk/types
3912 | 
3913 | ### [1.29.2-staging.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-17)
3914 | 
3915 | **Note:** Version bump only for package @clerk/types
3916 | 
3917 | ## [1.29.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-11)
3918 | 
3919 | ### Features
3920 | 
3921 | - **types:** Support for oauth_apple ([57b675c](https://github.com/clerk/javascript/commit/57b675c762187d1f16cde6d2577bac71f7993438))
3922 | 
3923 | ### [1.28.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-09)
3924 | 
3925 | **Note:** Version bump only for package @clerk/types
3926 | 
3927 | ### [1.28.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-04)
3928 | 
3929 | ### Bug Fixes
3930 | 
3931 | - **clerk-react,clerk-js,types:** Crate of API feedback fixes ([721ce72](https://github.com/clerk/javascript/commit/721ce7228c37b012891b2bec8caf290239164d05))
3932 | - **types:** Add OrganizationMembership methods on types ([8bac04c](https://github.com/clerk/javascript/commit/8bac04c90ab79c6fb2e319f5c566f421e5984fa7))
3933 | - **types:** Change type import from dot ([a1cdb79](https://github.com/clerk/javascript/commit/a1cdb79f9abde74b92911394b50e7d75107a9cfd))
3934 | 
3935 | ## [1.28.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-04)
3936 | 
3937 | ### Features
3938 | 
3939 | - **clerk-js,clerk-react:** GetOrganization/s hook methods, fetching mechanism alignment ([fc11087](https://github.com/clerk/javascript/commit/fc110874f9a3e056cd43c773c267409dd9b318d6))
3940 | - **clerk-js:** Add more attributes on organization models ([af010ba](https://github.com/clerk/javascript/commit/af010bac4b6e0519eff42d210049c7b3a6bda203))
3941 | - **clerk-js:** Add organization basic resources ([09f9012](https://github.com/clerk/javascript/commit/09f90126282f757cee6f97e7eae8747abc641bb0))
3942 | - **clerk-js:** Basic organization data shape tests ([0ca9a31](https://github.com/clerk/javascript/commit/0ca9a3114b34bfaa338e6e90f1b0d57e02b7dd58))
3943 | - **clerk-js:** Invitation flow draft ([d6faaab](https://github.com/clerk/javascript/commit/d6faaabb7efec09a699c7e83ba24fd4bad199d6b))
3944 | - **clerk-js:** Sign up next draft and fixes ([e2eef78](https://github.com/clerk/javascript/commit/e2eef782d644f7fd1925fee67ee81d27473255fc))
3945 | - **clerk-js:** SignUp with organization invitation flow draft ([2a9edbd](https://github.com/clerk/javascript/commit/2a9edbd52916f9bc037f266d1f96269cf54023cb))
3946 | - **clerk-react,clerk-js:** Add useOrganization hook using \_\_unstable attribute ([1635132](https://github.com/clerk/javascript/commit/16351321a99945d167cbf6e6ca0efdbbbf7efe5a))
3947 | 
3948 | ### Bug Fixes
3949 | 
3950 | - **types:** Guarantee elements not in oauth sorting array will be sorted last ([f3c2869](https://github.com/clerk/javascript/commit/f3c2869bc244fc594522ef8f889055f82d31463f))
3951 | 
3952 | ### [1.27.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-03)
3953 | 
3954 | ### Bug Fixes
3955 | 
3956 | - **types:** Consolidate oauth provider types ([bce9ef5](https://github.com/clerk/javascript/commit/bce9ef5cbfe02e11fe71db3e34dbf4fd9be9c3ed))
3957 | 
3958 | ## [1.27.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-02)
3959 | 
3960 | ### Features
3961 | 
3962 | - **types,clerk-js:** Introduce Notion OAuth ([#72](https://github.com/clerk/javascript/issues/72)) ([9e556d0](https://github.com/clerk/javascript/commit/9e556d00fb41dedbbd05de59947d00c720bb3d95))
3963 | 
3964 | ## [1.26.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-03-01)
3965 | 
3966 | ### Features
3967 | 
3968 | - **types:** Add support for oauth_microsoft ([96c1cc6](https://github.com/clerk/javascript/commit/96c1cc6817b9bbc6917ea2773498299c1ff9b951))
3969 | 
3970 | ### [1.25.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-24)
3971 | 
3972 | **Note:** Version bump only for package @clerk/types
3973 | 
3974 | ### [1.25.4-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-24)
3975 | 
3976 | ### Features
3977 | 
3978 | - **clerk-js:** Introduce `UserSettings.instanceIsPasswordBased` ([f72a555](https://github.com/clerk/javascript/commit/f72a555f6adb38870539e9bab63cb638c04517d6))
3979 | 
3980 | ### Bug Fixes
3981 | 
3982 | - **clerk-js,clerk-react:** Revert user settings work ([9a70576](https://github.com/clerk/javascript/commit/9a70576d1a47f01e6dbbfd8704f321daddcfe590))
3983 | 
3984 | ### [1.25.3-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-17)
3985 | 
3986 | **Note:** Version bump only for package @clerk/types
3987 | 
3988 | ### [1.25.2-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-15)
3989 | 
3990 | ### Features
3991 | 
3992 | - **clerk-js:** Refactor signUp utils to work with userSettings ([0eb3352](https://github.com/clerk/javascript/commit/0eb3352cf93c35eb5de162822802124248cef840))
3993 | - **types:** Introduce 'UserSettingsResource' ([32fcf04](https://github.com/clerk/javascript/commit/32fcf0477e6db4851f4de50904c02868ba1790ee))
3994 | 
3995 | ### [1.25.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-02-14)
3996 | 
3997 | **Note:** Version bump only for package @clerk/types
3998 | 
3999 | ### 1.25.1-staging.0 (2022-02-11)
4000 | 
4001 | **Note:** Version bump only for package @clerk/types
4002 | 
```
Page 3451/3458FirstPrevNextLast