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 |
```