This is page 3455 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/backend/CHANGELOG.md:
--------------------------------------------------------------------------------
```markdown
1 | # Change Log
2 |
3 | ## 2.20.0
4 |
5 | ### Minor Changes
6 |
7 | - Fixed API keys `list` method return type ([#7162](https://github.com/clerk/javascript/pull/7162)) by [@wobsoriano](https://github.com/wobsoriano)
8 |
9 | ```ts
10 | const apiKeys = await clerkClient.apiKeys.list({ subject: 'user_xxxxx' });
11 |
12 | apiKeys.data;
13 | apiKeys.totalCount;
14 | ```
15 |
16 | ### Patch Changes
17 |
18 | - Updated dependencies [[`a474c59`](https://github.com/clerk/javascript/commit/a474c59e3017358186de15c5b1e5b83002e72527), [`5536429`](https://github.com/clerk/javascript/commit/55364291e245ff05ca1e50e614e502d2081b87fb)]:
19 | - @clerk/[email protected]
20 | - @clerk/[email protected]
21 |
22 | ## 2.19.3
23 |
24 | ### Patch Changes
25 |
26 | - Updated dependencies [[`85b5acc`](https://github.com/clerk/javascript/commit/85b5acc5ba192a8247f072fa93d5bc7d42986293), [`ea65d39`](https://github.com/clerk/javascript/commit/ea65d390cd6d3b0fdd35202492e858f8c8370f73), [`b09b29e`](https://github.com/clerk/javascript/commit/b09b29e82323c8fc508c49ffe10c77a737ef0bec)]:
27 | - @clerk/[email protected]
28 | - @clerk/[email protected]
29 |
30 | ## 2.19.2
31 |
32 | ### Patch Changes
33 |
34 | - Deprecate `@clerk/types` in favor of `@clerk/shared/types` ([#7022](https://github.com/clerk/javascript/pull/7022)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
35 |
36 | 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.
37 |
38 | **Backward Compatibility:**
39 |
40 | 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.
41 |
42 | **Migration Steps:**
43 |
44 | Please update your imports from `@clerk/types` to `@clerk/shared/types`:
45 |
46 | ```typescript
47 | // Before
48 | import type { ClerkResource, UserResource } from '@clerk/types';
49 |
50 | // After
51 | import type { ClerkResource, UserResource } from '@clerk/shared/types';
52 | ```
53 |
54 | **What Changed:**
55 |
56 | All type definitions including:
57 |
58 | - Resource types (User, Organization, Session, etc.)
59 | - API response types
60 | - Configuration types
61 | - Authentication types
62 | - Error types
63 | - And all other shared types
64 |
65 | Have been moved from `packages/types/src` to `packages/shared/src/types` and are now exported via `@clerk/shared/types`.
66 |
67 | - Updated dependencies [[`3e0ef92`](https://github.com/clerk/javascript/commit/3e0ef9281194714f56dcf656d0caf4f75dcf097c), [`2587aa6`](https://github.com/clerk/javascript/commit/2587aa671dac1ca66711889bf1cd1c2e2ac8d7c8)]:
68 | - @clerk/[email protected]
69 | - @clerk/[email protected]
70 |
71 | ## 2.19.1
72 |
73 | ### Patch Changes
74 |
75 | - Remove \_\_clerk_handshake_nonce query parameter from redirect URLs in development mode to prevent infinite loops. ([#7054](https://github.com/clerk/javascript/pull/7054)) by [@bratsos](https://github.com/bratsos)
76 |
77 | - Updated dependencies [[`791ff19`](https://github.com/clerk/javascript/commit/791ff19a55ecb39eac20e1533a7d578a30386388), [`439427e`](https://github.com/clerk/javascript/commit/439427e44adef4f43e5f0719adf5654ea58c33e7), [`7dfbf3a`](https://github.com/clerk/javascript/commit/7dfbf3aa1b5269aee2d3af628b02027be9767088), [`d33b7b5`](https://github.com/clerk/javascript/commit/d33b7b5538e9bcbbca1ac23c46793d0cddcef533)]:
78 | - @clerk/[email protected]
79 | - @clerk/[email protected]
80 |
81 | ## 2.19.0
82 |
83 | ### Minor Changes
84 |
85 | - Add missing payer field to BillingSubscriptionItemWebhookEventJSON ([#7024](https://github.com/clerk/javascript/pull/7024)) by [@Wendrowiec13](https://github.com/Wendrowiec13)
86 |
87 | ### Patch Changes
88 |
89 | - Fix infinite redirect loop in multi-domain development flows by reordering authentication checks to prioritize satellite sync requests over dev-browser-sync handshakes. ([#7018](https://github.com/clerk/javascript/pull/7018)) by [@jacekradko](https://github.com/jacekradko)
90 |
91 | - Updated dependencies [[`4d46e4e`](https://github.com/clerk/javascript/commit/4d46e4e601a5f2a213f1718af3f9271db4db0911)]:
92 | - @clerk/[email protected]
93 | - @clerk/[email protected]
94 |
95 | ## 2.18.3
96 |
97 | ### Patch Changes
98 |
99 | - Updated dependencies [[`a172d51`](https://github.com/clerk/javascript/commit/a172d51df2d7f2e450c983a15ae897624304a764), [`947d0f5`](https://github.com/clerk/javascript/commit/947d0f5480b0151a392966cad2e1a45423f66035)]:
100 | - @clerk/[email protected]
101 | - @clerk/[email protected]
102 |
103 | ## 2.18.2
104 |
105 | ### Patch Changes
106 |
107 | - Updated dependencies [[`d8147fb`](https://github.com/clerk/javascript/commit/d8147fb58bfd6caf9a4f0a36fdc48c630d00387f)]:
108 | - @clerk/[email protected]
109 |
110 | ## 2.18.1
111 |
112 | ### Patch Changes
113 |
114 | - Fixed JWT public key caching in `verifyToken()` to support multi-instance scenarios. Public keys are now correctly cached per `kid` from the token header instead of using a single shared cache key. ([#6993](https://github.com/clerk/javascript/pull/6993)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
115 |
116 | **What was broken:**
117 |
118 | When verifying JWT tokens with the `jwtKey` option (PEM public key), all keys were cached under the same cache key. This caused verification failures in multi-instance scenarios.
119 |
120 | **What's fixed:**
121 |
122 | JWT public keys are now cached using the `kid` value from each token's header.
123 |
124 | - Replace `/commerce` endpoints with `/billing` endpoints. ([#6854](https://github.com/clerk/javascript/pull/6854)) by [@panteliselef](https://github.com/panteliselef)
125 |
126 | - Updated dependencies [[`305f4ee`](https://github.com/clerk/javascript/commit/305f4eeb825086d55d1b0df198a0c43da8d94993), [`53214f9`](https://github.com/clerk/javascript/commit/53214f9a600074affc84d616bbbe7a6b625e7d33), [`1441e68`](https://github.com/clerk/javascript/commit/1441e6851102e9eed5697ad78c695f75b4a20db2), [`1236c74`](https://github.com/clerk/javascript/commit/1236c745fd58020e0972938ca0a9ae697a24af02)]:
127 | - @clerk/[email protected]
128 | - @clerk/[email protected]
129 |
130 | ## 2.18.0
131 |
132 | ### Minor Changes
133 |
134 | - Added support for User `locale` ([#6938](https://github.com/clerk/javascript/pull/6938)) by [@tmilewski](https://github.com/tmilewski)
135 |
136 | ### Patch Changes
137 |
138 | - Add `enterpriseConnectionId` to `SamlAccount` and `EnterpriseAccount` resources ([#6961](https://github.com/clerk/javascript/pull/6961)) by [@LauraBeatris](https://github.com/LauraBeatris)
139 |
140 | - Added API keys list method to the backend SDK client ([#6948](https://github.com/clerk/javascript/pull/6948)) by [@wobsoriano](https://github.com/wobsoriano)
141 |
142 | - Add `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)
143 |
144 | - Added internal helper type for `auth` and `getAuth()` functions that don't require a request or context parameter ([#6910](https://github.com/clerk/javascript/pull/6910)) by [@wobsoriano](https://github.com/wobsoriano)
145 |
146 | - Added `adminDeleteEnabled` param to Organization update method ([#6880](https://github.com/clerk/javascript/pull/6880)) by [@ccaspanello](https://github.com/ccaspanello)
147 |
148 | - Updated dependencies [[`65b7cc7`](https://github.com/clerk/javascript/commit/65b7cc787a5f02a302b665b6eaf4d4b9a1cae4b0), [`6e09786`](https://github.com/clerk/javascript/commit/6e09786adeb0f481ca8b6d060ae8754b556a3f9a), [`aa7210c`](https://github.com/clerk/javascript/commit/aa7210c7fff34f6c6e2d4ca3cb736bbd35439cb6), [`2cd53cd`](https://github.com/clerk/javascript/commit/2cd53cd8c713dfa7f2e802fe08986411587095fa), [`1a2eee6`](https://github.com/clerk/javascript/commit/1a2eee6b8b6ead2d0481e93104fcaed6452bd1b9), [`2cd53cd`](https://github.com/clerk/javascript/commit/2cd53cd8c713dfa7f2e802fe08986411587095fa), [`1a2430a`](https://github.com/clerk/javascript/commit/1a2430a166fb1df5fbca76437c63423b18a49ced), [`31a04fc`](https://github.com/clerk/javascript/commit/31a04fc2b783f01cd4848c1e681af3b30e57bb2f), [`9766c4a`](https://github.com/clerk/javascript/commit/9766c4afd26f2841d6f79dbdec2584ef8becd22f), [`22b8e49`](https://github.com/clerk/javascript/commit/22b8e49f9fb65d55ab737d11f1f57a25bf947511), [`a66357e`](https://github.com/clerk/javascript/commit/a66357e8a5928199aebde408ec7cfaac152c2c42), [`dacc1af`](https://github.com/clerk/javascript/commit/dacc1af22e1d1af0940b2d626b8a47d376c19342)]:
149 | - @clerk/[email protected]
150 | - @clerk/[email protected]
151 |
152 | ## 2.17.2
153 |
154 | ### Patch Changes
155 |
156 | - Updated dependencies [[`fba4781`](https://github.com/clerk/javascript/commit/fba4781ff2a2d16f8934029fa6fb77d70953f2be), [`a1f6714`](https://github.com/clerk/javascript/commit/a1f671480cda6f978db059ba0640d4ed8b08f112)]:
157 | - @clerk/[email protected]
158 | - @clerk/[email protected]
159 |
160 | ## 2.17.1
161 |
162 | ### Patch Changes
163 |
164 | - Add `slug_disabled` field on organization settings ([#6902](https://github.com/clerk/javascript/pull/6902)) by [@LauraBeatris](https://github.com/LauraBeatris)
165 |
166 | - Updated dependencies [[`f737d26`](https://github.com/clerk/javascript/commit/f737d268aa167889a4f3f7aba2658c2ba1fd909a), [`8777f35`](https://github.com/clerk/javascript/commit/8777f350f5fb51413609a53d9de05b2e5d1d7cfe), [`2c0128b`](https://github.com/clerk/javascript/commit/2c0128b05ecf48748f27f10f0b0215a279ba6cc1)]:
167 | - @clerk/[email protected]
168 | - @clerk/[email protected]
169 |
170 | ## 2.17.0
171 |
172 | ### Minor Changes
173 |
174 | - Add `user_id` field to `organizationInvitation.accepted` webhook events. ([#6887](https://github.com/clerk/javascript/pull/6887)) by [@kduprey](https://github.com/kduprey)
175 |
176 | Creates a new `OrganizationInvitationAcceptedJSON` interface that extends `OrganizationInvitationJSON` with a required `user_id` field, and updates the webhook type system to use this interface specifically for `organizationInvitation`.accepted events.
177 |
178 | ### Patch Changes
179 |
180 | - Updated dependencies [[`37028ca`](https://github.com/clerk/javascript/commit/37028caad59cb0081ac74e70a44e4a419082a999)]:
181 | - @clerk/[email protected]
182 | - @clerk/[email protected]
183 |
184 | ## 2.16.0
185 |
186 | ### Minor Changes
187 |
188 | - Udpate Tyepdoc links to fix temporary ignore warnings ([#6846](https://github.com/clerk/javascript/pull/6846)) by [@SarahSoutoul](https://github.com/SarahSoutoul)
189 |
190 | - [Billing Beta] Update subscription item `plan` and `planId` properties to be `null`. ([#6839](https://github.com/clerk/javascript/pull/6839)) by [@paddycarver](https://github.com/paddycarver)
191 |
192 | ### Patch Changes
193 |
194 | - Updated dependencies [[`e3e77eb`](https://github.com/clerk/javascript/commit/e3e77eb277c6b36847265db7b863c418e3708ab6), [`9cf89cd`](https://github.com/clerk/javascript/commit/9cf89cd3402c278e8d5bfcd8277cee292bc45333), [`090ca74`](https://github.com/clerk/javascript/commit/090ca742c590bc4f369cf3e1ca2ec9917410ffe4), [`5546352`](https://github.com/clerk/javascript/commit/55463527df9a710ef3215c353bab1ef423d1de62)]:
195 | - @clerk/[email protected]
196 | - @clerk/[email protected]
197 |
198 | ## 2.15.0
199 |
200 | ### Minor Changes
201 |
202 | - Add invite, reject, and delete to Waitlist Entry API resources ([#6799](https://github.com/clerk/javascript/pull/6799)) by [@tmilewski](https://github.com/tmilewski)
203 |
204 | - [Billing Beta] Rename types and classes that contain commerce to use billing instead. ([#6812](https://github.com/clerk/javascript/pull/6812)) by [@panteliselef](https://github.com/panteliselef)
205 |
206 | ### Patch Changes
207 |
208 | - Fix a case where handshakes would get triggered in a loop on cross origin requests in development. ([#6755](https://github.com/clerk/javascript/pull/6755)) by [@brkalow](https://github.com/brkalow)
209 |
210 | - Update jsdocs mentions of `@experimental` tag. ([#6651](https://github.com/clerk/javascript/pull/6651)) by [@panteliselef](https://github.com/panteliselef)
211 |
212 | - [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)
213 |
214 | - Updated dependencies [[`41e0a41`](https://github.com/clerk/javascript/commit/41e0a4190b33dd2c4bdc0d536bbe83fcf99af9b0), [`1aa9e9f`](https://github.com/clerk/javascript/commit/1aa9e9f10c051319e9ff4b1a0ecd71507bd6a6aa), [`a88ee58`](https://github.com/clerk/javascript/commit/a88ee5827adee0cc8a62246d03a3034d8566fe21), [`d6c7bbb`](https://github.com/clerk/javascript/commit/d6c7bbba23f38c0b3ca7edebb53028a05c7b38e6)]:
215 | - @clerk/[email protected]
216 | - @clerk/[email protected]
217 |
218 | ## 2.14.1
219 |
220 | ### Patch Changes
221 |
222 | - Added missing `orderBy` field to machines list method ([#6767](https://github.com/clerk/javascript/pull/6767)) by [@wobsoriano](https://github.com/wobsoriano)
223 |
224 | Example:
225 |
226 | ```ts
227 | clerkClient.machines.list({
228 | ...params,
229 | orderBy: 'name',
230 | });
231 | ```
232 |
233 | - Add JSDoc around Machine and M2M resource types ([#6774](https://github.com/clerk/javascript/pull/6774)) by [@wobsoriano](https://github.com/wobsoriano)
234 |
235 | - Updated dependencies [[`bcf24f2`](https://github.com/clerk/javascript/commit/bcf24f2f91913fa0dd3fbf02b3bbef345c4e1ea9), [`1ceedad`](https://github.com/clerk/javascript/commit/1ceedad4bc5bc3d5f01c95185f82ff0f43983cf5), [`de90ede`](https://github.com/clerk/javascript/commit/de90ede82664b58bef9e294498384cf2c99a331e), [`9d4a95c`](https://github.com/clerk/javascript/commit/9d4a95c766396a0bc327fbf0560228bedb4828eb), [`428cd57`](https://github.com/clerk/javascript/commit/428cd57a8581a58a6a42325ec50eb98000068e97)]:
236 | - @clerk/[email protected]
237 | - @clerk/[email protected]
238 |
239 | ## 2.14.0
240 |
241 | ### Minor Changes
242 |
243 | - Adds the ability to create bulk invitations with `.createInvitationBulk([{...}])` ([#6751](https://github.com/clerk/javascript/pull/6751)) by [@tmilewski](https://github.com/tmilewski)
244 |
245 | - Add lastAuthenticationStrategy to API resources ([#6748](https://github.com/clerk/javascript/pull/6748)) by [@tmilewski](https://github.com/tmilewski)
246 |
247 | ### Patch Changes
248 |
249 | - Align create params for Invitation and OrganizationInvitation with backend API ([#6750](https://github.com/clerk/javascript/pull/6750)) by [@tmilewski](https://github.com/tmilewski)
250 |
251 | - Add machine secret key rotation BAPI method ([#6760](https://github.com/clerk/javascript/pull/6760)) by [@wobsoriano](https://github.com/wobsoriano)
252 |
253 | Usage:
254 |
255 | ```ts
256 | clerkClient.machines.rotateSecretKey({
257 | machineId: 'mch_xxx',
258 | previousTokenTtl: 3600,
259 | });
260 | ```
261 |
262 | - Remove `expired` from `OrganizationInvitationStatus` according to latest Backend API spec ([#6753](https://github.com/clerk/javascript/pull/6753)) by [@LauraBeatris](https://github.com/LauraBeatris)
263 |
264 | - Updated dependencies [[`23948dc`](https://github.com/clerk/javascript/commit/23948dc777ec6a17bafbae59c253a93143b0e105), [`82b84fe`](https://github.com/clerk/javascript/commit/82b84fed5f207673071ba7354a17f4a76e101201), [`54b4b5a`](https://github.com/clerk/javascript/commit/54b4b5a5f811f612fadf5c47ffda94a750c57a5e), [`50a8622`](https://github.com/clerk/javascript/commit/50a8622c3579306f15e5d40e5ea72b4fe4384ef7), [`23948dc`](https://github.com/clerk/javascript/commit/23948dc777ec6a17bafbae59c253a93143b0e105)]:
265 | - @clerk/[email protected]
266 | - @clerk/[email protected]
267 |
268 | ## 2.13.0
269 |
270 | ### Minor Changes
271 |
272 | - Extend the trial of a subscription item via the BillingAPI. ([#6714](https://github.com/clerk/javascript/pull/6714)) by [@panteliselef](https://github.com/panteliselef)
273 |
274 | ### Patch Changes
275 |
276 | - Updated dependencies [[`55490c3`](https://github.com/clerk/javascript/commit/55490c31fadc82bdca6cd5f2b22e5e158aaba0cb), [`e8d21de`](https://github.com/clerk/javascript/commit/e8d21de39b591973dad48fc1d1851c4d28b162fe), [`637f2e8`](https://github.com/clerk/javascript/commit/637f2e8768b76aaf756062b6b5b44bf651f66789)]:
277 | - @clerk/[email protected]
278 | - @clerk/[email protected]
279 |
280 | ## 2.12.1
281 |
282 | ### Patch Changes
283 |
284 | - Updated dependencies [[`fced4fc`](https://github.com/clerk/javascript/commit/fced4fc869bb21c77826dfaf281b6640e0f0c006), [`e6e19d2`](https://github.com/clerk/javascript/commit/e6e19d2d2f3b2c4617b25f53830216a1d550e616), [`1b1e8b1`](https://github.com/clerk/javascript/commit/1b1e8b1fd33b787f956b17b193e5fd0a4cdc6cec)]:
285 | - @clerk/[email protected]
286 | - @clerk/[email protected]
287 |
288 | ## 2.12.0
289 |
290 | ### Minor Changes
291 |
292 | - [Billing Beta] Use correct casing for past due events types. ([#6687](https://github.com/clerk/javascript/pull/6687)) by [@panteliselef](https://github.com/panteliselef)
293 |
294 | - `'subscription.past_due'` -> `'subscription.pastDue'`
295 | - `'subscriptionItem.past_due'` -> `'subscriptionItem.pastDue'`
296 |
297 | - Include `'subscriptionItem.freeTrialEnding'` event in `CommerceSubscriptionItemWebhookEvent`. ([#6684](https://github.com/clerk/javascript/pull/6684)) by [@panteliselef](https://github.com/panteliselef)
298 |
299 | ## 2.11.0
300 |
301 | ### Minor Changes
302 |
303 | - Get user's subscription via BillingApi. ([#6667](https://github.com/clerk/javascript/pull/6667)) by [@panteliselef](https://github.com/panteliselef)
304 |
305 | ### Patch Changes
306 |
307 | - - Export `Feature` type from backend resource. ([#6649](https://github.com/clerk/javascript/pull/6649)) by [@alexisintech](https://github.com/alexisintech)
308 |
309 | - Re-export canonical `CommerceMoneyAmount` type from `@clerk/types`.
310 |
311 | - Updated dependencies [[`2a82737`](https://github.com/clerk/javascript/commit/2a8273705b9764e1a4613d5a0dbb738d0b156c05), [`cda5d7b`](https://github.com/clerk/javascript/commit/cda5d7b79b28dc03ec794ea54e0feb64b148cdd2), [`ba25a5b`](https://github.com/clerk/javascript/commit/ba25a5b5a3fa686a65f52e221d9d1712a389fea9), [`a50cfc8`](https://github.com/clerk/javascript/commit/a50cfc8f1dd168b436499e32fc8b0fc41d28bbff), [`377f67b`](https://github.com/clerk/javascript/commit/377f67b8e552d1a19efbe4530e9306675b7f8eab), [`65b12ee`](https://github.com/clerk/javascript/commit/65b12eeeb57ee80cdd8c36c5949d51f1227a413e), [`263722e`](https://github.com/clerk/javascript/commit/263722e61fd27403b4c8d9794880686771e123f9)]:
312 | - @clerk/[email protected]
313 | - @clerk/[email protected]
314 |
315 | ## 2.10.1
316 |
317 | ### Patch Changes
318 |
319 | - Updated dependencies [[`600c648`](https://github.com/clerk/javascript/commit/600c648d4087a823341041c90018797fbc0033f0)]:
320 | - @clerk/[email protected]
321 | - @clerk/[email protected]
322 |
323 | ## 2.10.0
324 |
325 | ### Minor Changes
326 |
327 | - Add missing properties to OAuthApplicationJSON ([#6378](https://github.com/clerk/javascript/pull/6378)) by [@SarahSoutoul](https://github.com/SarahSoutoul)
328 |
329 | - [Billing Beta] Add `cancelSubscriptionItem` to BillingApi. ([#6611](https://github.com/clerk/javascript/pull/6611)) by [@panteliselef](https://github.com/panteliselef)
330 |
331 | - Add `getOrganizationBillingSubscription` to BillingApi. ([#6632](https://github.com/clerk/javascript/pull/6632)) by [@panteliselef](https://github.com/panteliselef)
332 |
333 | ### Patch Changes
334 |
335 | - Fixes an issue where a handshake would trigger more than intended in development. ([#6635](https://github.com/clerk/javascript/pull/6635)) by [@brkalow](https://github.com/brkalow)
336 |
337 | - Fix logic for forcing a session sync on cross origin requests. ([#6600](https://github.com/clerk/javascript/pull/6600)) by [@brkalow](https://github.com/brkalow)
338 |
339 | - Updated dependencies [[`d52714e`](https://github.com/clerk/javascript/commit/d52714e4cb7f369c74826cd4341c58eb1900abe4), [`ce49740`](https://github.com/clerk/javascript/commit/ce49740d474d6dd9da5096982ea4e9f14cf68f09), [`2ed539c`](https://github.com/clerk/javascript/commit/2ed539cc7f08ed4d70c33621563ad386ea8becc5), [`deaafe4`](https://github.com/clerk/javascript/commit/deaafe449773632d690aa2f8cafaf959392622b9), [`a26ecae`](https://github.com/clerk/javascript/commit/a26ecae09fd06cd34f094262f038a8eefbb23f7d), [`c16a7a5`](https://github.com/clerk/javascript/commit/c16a7a5837fc15e0e044baf9c809b8da6fbac795), [`05b6d65`](https://github.com/clerk/javascript/commit/05b6d65c0bc5736443325a5defee4c263ef196af)]:
340 | - @clerk/[email protected]
341 | - @clerk/[email protected]
342 |
343 | ## 2.9.4
344 |
345 | ### Patch Changes
346 |
347 | - Add `orderBy` parameter to OAuth Applications list request ([#6593](https://github.com/clerk/javascript/pull/6593)) by [@tmilewski](https://github.com/tmilewski)
348 |
349 | - Updated dependencies [[`e52bf8e`](https://github.com/clerk/javascript/commit/e52bf8ebef74a9e123c69b69acde1340c01d32d7), [`c043c19`](https://github.com/clerk/javascript/commit/c043c1919854aaa5b9cf7f6df5bb517f5617f7a1), [`c28d29c`](https://github.com/clerk/javascript/commit/c28d29c79bb4f144d782313ca72df7db91a77340), [`172e054`](https://github.com/clerk/javascript/commit/172e054a3511be12d16ba19037db320c2d9838bf)]:
350 | - @clerk/[email protected]
351 | - @clerk/[email protected]
352 |
353 | ## 2.9.3
354 |
355 | ### Patch Changes
356 |
357 | - Updated dependencies [[`8dc6bad`](https://github.com/clerk/javascript/commit/8dc6bad5c7051b59bd8c73e65d497f6a974bb1c3), [`aa6a3c3`](https://github.com/clerk/javascript/commit/aa6a3c3d3ba2de67a468c996cbf0bff43a09ddb8), [`db50c47`](https://github.com/clerk/javascript/commit/db50c4734920ada6002de8c62c994047eb6cb5a0)]:
358 | - @clerk/[email protected]
359 | - @clerk/[email protected]
360 |
361 | ## 2.9.2
362 |
363 | ### Patch Changes
364 |
365 | - Updated dependencies [[`413468c`](https://github.com/clerk/javascript/commit/413468c9b9c8fb7576f8e4cbdccff98784e33fef), [`7b7eb1f`](https://github.com/clerk/javascript/commit/7b7eb1fc0235249c5c179239078294118f2947cd)]:
366 | - @clerk/[email protected]
367 | - @clerk/[email protected]
368 |
369 | ## 2.9.1
370 |
371 | ### Patch Changes
372 |
373 | - Updated dependencies [[`5b24129`](https://github.com/clerk/javascript/commit/5b24129ddcfc2f7dc6eb79d8c818b4ff97c68e9a)]:
374 | - @clerk/[email protected]
375 | - @clerk/[email protected]
376 |
377 | ## 2.9.0
378 |
379 | ### Minor Changes
380 |
381 | - Remove `secret` in favor of `token` in m2m response. ([#6542](https://github.com/clerk/javascript/pull/6542)) by [@wobsoriano](https://github.com/wobsoriano)
382 |
383 | Before:
384 |
385 | ```ts
386 | const result = await clerkClient.m2mTokens.create();
387 |
388 | console.log(result.secret);
389 | ```
390 |
391 | After:
392 |
393 | ```ts
394 | const result = await clerkClient.m2mTokens.create();
395 |
396 | console.log(result.token);
397 | ```
398 |
399 | - Rename M2M namespace from `m2mTokens` to `m2m` in Backend API client ([#6544](https://github.com/clerk/javascript/pull/6544)) by [@wobsoriano](https://github.com/wobsoriano)
400 |
401 | Before:
402 |
403 | ```ts
404 | clerkClient.m2mTokens.create();
405 |
406 | clerkClient.m2mTokens.revoke();
407 |
408 | clerkClient.m2mTokens.verifySecret({ secret: 'ak_xxx' });
409 | ```
410 |
411 | After:
412 |
413 | ```ts
414 | clerkClient.m2m.createToken();
415 |
416 | clerkClient.m2m.revokeToken();
417 |
418 | clerkClient.m2m.verifyToken({ token: 'ak_xxx' });
419 | ```
420 |
421 | The `verifySecret()` method is removed. Please use `.verifyToken()` instead.
422 |
423 | - Deprecates `clerkClient.m2mTokens.verifySecret({ secret: 'mt_xxx' })` in favor or `clerkClient.m2mTokens.verifyToken({ token: 'mt_xxx' })` ([#6536](https://github.com/clerk/javascript/pull/6536)) by [@wobsoriano](https://github.com/wobsoriano)
424 |
425 | ### Patch Changes
426 |
427 | - Updated dependencies [[`4db1e58`](https://github.com/clerk/javascript/commit/4db1e58d70b60e1e236709b507666715d571e925), [`69498df`](https://github.com/clerk/javascript/commit/69498dfca3e6bb388eb8c94313eac06347dd5a27), [`59f1559`](https://github.com/clerk/javascript/commit/59f15593bab708b9e13eebfff6780c2d52b31b0a)]:
428 | - @clerk/[email protected]
429 | - @clerk/[email protected]
430 |
431 | ## 2.8.0
432 |
433 | ### Minor Changes
434 |
435 | - Exports `Machine` and `M2MToken` resource classes ([#6500](https://github.com/clerk/javascript/pull/6500)) by [@wobsoriano](https://github.com/wobsoriano)
436 |
437 | ### Patch Changes
438 |
439 | - Updated dependencies [[`15fe106`](https://github.com/clerk/javascript/commit/15fe1060f730a6a4391f3d2451d23edd3218e1ae), [`173837c`](https://github.com/clerk/javascript/commit/173837c2526aa826b7981ee8d6d4f52c00675da5), [`8b52d7a`](https://github.com/clerk/javascript/commit/8b52d7ae19407e8ab5a5451bd7d34b6bc38417de), [`854dde8`](https://github.com/clerk/javascript/commit/854dde88e642c47b5a29ac8f576c8c1976e5d067), [`ae2e2d6`](https://github.com/clerk/javascript/commit/ae2e2d6b336be6b596cc855e549843beb5bfd2a1), [`037f25a`](https://github.com/clerk/javascript/commit/037f25a8171888168913b186b7edf871e0aaf197), [`f8b38b7`](https://github.com/clerk/javascript/commit/f8b38b7059e498fef3ac1271346be0710aa31c76)]:
440 | - @clerk/[email protected]
441 | - @clerk/[email protected]
442 |
443 | ## 2.7.1
444 |
445 | ### Patch Changes
446 |
447 | - Updated dependencies [[`b72a3dd`](https://github.com/clerk/javascript/commit/b72a3dda2467720e5dc8cab3e7e6a110f3beb79b), [`d93b0ed`](https://github.com/clerk/javascript/commit/d93b0edf4adc57d48a26cb08444192887ccec659), [`6459f7d`](https://github.com/clerk/javascript/commit/6459f7dabe5f163f48ed73106bb901d8187da3e2), [`0ff648a`](https://github.com/clerk/javascript/commit/0ff648aeac0e2f5481596a98c8046d9d58a7bf75), [`9084759`](https://github.com/clerk/javascript/commit/90847593300be605e1ee1c06dac147ce68b25dc7)]:
448 | - @clerk/[email protected]
449 | - @clerk/[email protected]
450 |
451 | ## 2.7.0
452 |
453 | ### Minor Changes
454 |
455 | - Add billing API for fetching available plans. ([#6449](https://github.com/clerk/javascript/pull/6449)) by [@panteliselef](https://github.com/panteliselef)
456 |
457 | - Adds machine-to-machine endpoints to the Backend SDK: ([#6479](https://github.com/clerk/javascript/pull/6479)) by [@wobsoriano](https://github.com/wobsoriano)
458 |
459 | **Note:** Renamed from "machine_tokens" to "m2m_tokens" for clarity and consistency with canonical terminology. This avoids confusion with other machine-related concepts like machine secrets.
460 |
461 | ### Create M2M Tokens
462 |
463 | A machine secret is required when creating M2M tokens.
464 |
465 | ```ts
466 | const clerkClient = createClerkClient({
467 | machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY,
468 | });
469 |
470 | clerkClient.m2mTokens.create({
471 | // or pass as an option here
472 | // machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY
473 | secondsUntilExpiration: 3600,
474 | });
475 | ```
476 |
477 | ### Revoke M2M Tokens
478 |
479 | You can revoke tokens using either a machine secret or instance secret:
480 |
481 | ```ts
482 | // Using machine secret
483 | const clerkClient = createClerkClient({ machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY });
484 | clerkClient.m2mTokens.revoke({
485 | // or pass as an option here
486 | // machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY
487 | m2mTokenId: 'mt_xxxxx',
488 | revocationReason: 'Revoked by user',
489 | });
490 |
491 | // Using instance secret (default)
492 | const clerkClient = createClerkClient({ secretKey: 'sk_xxxx' });
493 | clerkClient.m2mTokens.revoke({
494 | m2mTokenId: 'mt_xxxxx',
495 | revocationReason: 'Revoked by user',
496 | });
497 | ```
498 |
499 | ### Verify M2M Tokens
500 |
501 | You can verify tokens using either a machine secret or instance secret:
502 |
503 | ```ts
504 | // Using machine secret
505 | const clerkClient = createClerkClient({ machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY });
506 | clerkClient.m2mTokens.verifySecret({
507 | // or pass as an option here
508 | // machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY
509 | secret: 'mt_secret_xxxxx',
510 | });
511 |
512 | // Using instance secret (default)
513 | const clerkClient = createClerkClient({ secretKey: 'sk_xxxx' });
514 | clerkClient.m2mTokens.verifySecret({
515 | secret: 'mt_secret_xxxxx',
516 | });
517 | ```
518 |
519 | To verify machine-to-machine tokens using when using `authenticateRequest()` with a machine secret, use the `machineSecret` option:
520 |
521 | ```ts
522 | const clerkClient = createClerkClient({
523 | machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY,
524 | });
525 |
526 | const authReq = await clerkClient.authenticateRequest(c.req.raw, {
527 | // or pass as an option here
528 | // machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY
529 | acceptsToken: 'm2m_token', // previously machine_token
530 | });
531 |
532 | if (authReq.isAuthenticated) {
533 | // ... do something
534 | }
535 | ```
536 |
537 | ### Patch Changes
538 |
539 | - feat(nextjs): Forward user-agent, arch, platform, and npm config with POST requests to /accountless_applications ([#6483](https://github.com/clerk/javascript/pull/6483)) by [@heatlikeheatwave](https://github.com/heatlikeheatwave)
540 |
541 | - Updated dependencies [[`1ad16da`](https://github.com/clerk/javascript/commit/1ad16daa49795a861ae277001831230580b6b9f4), [`4edef81`](https://github.com/clerk/javascript/commit/4edef81dd423a0471e3f579dd6b36094aa8546aa), [`696f8e1`](https://github.com/clerk/javascript/commit/696f8e11a3e5391e6b5a97d98e929b8973575b9a), [`f318d22`](https://github.com/clerk/javascript/commit/f318d22cf83caaef272bcf532561a03ca72575e7), [`1cc66ab`](https://github.com/clerk/javascript/commit/1cc66aba1c0adac24323876e4cc3d96be888b07b)]:
542 | - @clerk/[email protected]
543 | - @clerk/[email protected]
544 |
545 | ## 2.6.3
546 |
547 | ### Patch Changes
548 |
549 | - Updated dependencies [[`9368daf`](https://github.com/clerk/javascript/commit/9368dafb119b5a8ec6a9d6d82270e72bab6d8f1e), [`f93965f`](https://github.com/clerk/javascript/commit/f93965f64c81030f9fcf9d1cc4e4984d30cd12ec), [`7b6dcee`](https://github.com/clerk/javascript/commit/7b6dceea5bfd7f1cc1bf24126aa715307e24ae7f), [`ef87617`](https://github.com/clerk/javascript/commit/ef87617ae1fd125c806a33bfcfdf09c885319fa8)]:
550 | - @clerk/[email protected]
551 | - @clerk/[email protected]
552 |
553 | ## 2.6.2
554 |
555 | ### Patch Changes
556 |
557 | - Fix Node 18 compatibility issues with `snakecase-keys`. ([#6441](https://github.com/clerk/javascript/pull/6441)) by [@wobsoriano](https://github.com/wobsoriano)
558 |
559 | - Updated dependencies [[`7a46679`](https://github.com/clerk/javascript/commit/7a46679a004739a7f712097c5779e9f5c068722e), [`05cc5ec`](https://github.com/clerk/javascript/commit/05cc5ecd82ecdbcc9922d3286224737a81813be0), [`22c35ef`](https://github.com/clerk/javascript/commit/22c35efb59226df2efaa2891fa4775c13312f4c6), [`e8d816a`](https://github.com/clerk/javascript/commit/e8d816a3350e862c3e9e1d4f8c96c047a0a016a2), [`aa9f185`](https://github.com/clerk/javascript/commit/aa9f185e21b58f8a6e03ea44ce29ee09ad2477d9), [`af0e123`](https://github.com/clerk/javascript/commit/af0e12393c9412281626e20dafb1b3a15558f6d9), [`3d1d871`](https://github.com/clerk/javascript/commit/3d1d8711405646cf3c2aabe99e08337a1028703a)]:
560 | - @clerk/[email protected]
561 | - @clerk/[email protected]
562 |
563 | ## 2.6.1
564 |
565 | ### Patch Changes
566 |
567 | - Adds scoping and secret key retrieval to machines BAPI methods: ([#6417](https://github.com/clerk/javascript/pull/6417)) by [@wobsoriano](https://github.com/wobsoriano)
568 |
569 | ```ts
570 | // Creates a new machine scope
571 | clerkClient.machines.createScope('machine_id', 'to_machine_id');
572 |
573 | // Deletes a machine scope
574 | clerkClient.machines.deleteScope('machine_id', 'other_machine_id');
575 |
576 | // Retrieve a secret key
577 | clerkClient.machines.getSecretKey('machine_id');
578 | ```
579 |
580 | - Fix SAML Connection `attributeMapping` keys not being converted from camelCase to snake_case. ([#6418](https://github.com/clerk/javascript/pull/6418)) by [@tmilewski](https://github.com/tmilewski)
581 |
582 | - Fixes an issue where the Clerk SDK was improperly detecting the request's origin. ([#6393](https://github.com/clerk/javascript/pull/6393)) by [@brkalow](https://github.com/brkalow)
583 |
584 | - Updated dependencies [[`e404456`](https://github.com/clerk/javascript/commit/e4044566bca81f63c8e9c630fdec0f498ad6fc08), [`2803133`](https://github.com/clerk/javascript/commit/28031330a9810946feb44b93be10c067fb3b63ba), [`f1d9d34`](https://github.com/clerk/javascript/commit/f1d9d3482a796dd5f7796ede14159850e022cba2), [`d58b959`](https://github.com/clerk/javascript/commit/d58b9594cf65158e87dbaa90d632c45f543373e1), [`822ba1f`](https://github.com/clerk/javascript/commit/822ba1fd5e7daf665120cf183e4600a227098d53), [`d4d2612`](https://github.com/clerk/javascript/commit/d4d2612483baf356c389ef0ba5084059025481f2)]:
585 | - @clerk/[email protected]
586 | - @clerk/[email protected]
587 |
588 | ## 2.6.0
589 |
590 | ### Minor Changes
591 |
592 | - Add types for Commerce webhooks ([#6338](https://github.com/clerk/javascript/pull/6338)) by [@mauricioabreu](https://github.com/mauricioabreu)
593 |
594 | ### Patch Changes
595 |
596 | - Updated dependencies [[`b0fdc9e`](https://github.com/clerk/javascript/commit/b0fdc9eaf764ca0c17cbe0810b7d240f6d9db0b6)]:
597 | - @clerk/[email protected]
598 | - @clerk/[email protected]
599 |
600 | ## 2.5.2
601 |
602 | ### Patch Changes
603 |
604 | - Updated dependencies [[`cd59c0e`](https://github.com/clerk/javascript/commit/cd59c0e5512a341dd8fb420aca583333c8243aa5), [`cd59c0e`](https://github.com/clerk/javascript/commit/cd59c0e5512a341dd8fb420aca583333c8243aa5)]:
605 | - @clerk/[email protected]
606 | - @clerk/[email protected]
607 |
608 | ## 2.5.1
609 |
610 | ### Patch Changes
611 |
612 | - Updated dependencies [[`fecc99d`](https://github.com/clerk/javascript/commit/fecc99d43cb7db5b99863829acb234cbce0da264), [`959d63d`](https://github.com/clerk/javascript/commit/959d63de27e5bfe27b46699b441dfd4e48616bf8), [`10e1060`](https://github.com/clerk/javascript/commit/10e10605b18a58f33a93caed058159c190678e74), [`92c44dd`](https://github.com/clerk/javascript/commit/92c44dd9d51e771a928a8da7004bdb8f8bdbaf58), [`a04a8f5`](https://github.com/clerk/javascript/commit/a04a8f5f81241ee41d93cd64793beca9d6296abb), [`c61855c`](https://github.com/clerk/javascript/commit/c61855c51d9c129d48c4543da3719939ad82f623), [`43ea069`](https://github.com/clerk/javascript/commit/43ea069c570dc64503fc82356ad28a2e43689d45)]:
613 | - @clerk/[email protected]
614 | - @clerk/[email protected]
615 |
616 | ## 2.5.0
617 |
618 | ### Minor Changes
619 |
620 | - Add machines Backend API resource and methods ([#6335](https://github.com/clerk/javascript/pull/6335)) by [@wobsoriano](https://github.com/wobsoriano)
621 |
622 | ### Patch Changes
623 |
624 | - Bump `snakecase-keys` to v9 which is the first ESM-only versions. This change should resolve any `TypeError: Cannot destructure property 'snakeCase' of 'require(...)' as it is undefined.` errors using Vitest. ([#6255](https://github.com/clerk/javascript/pull/6255)) by [@wobsoriano](https://github.com/wobsoriano)
625 |
626 | - Update `clerk.samlConnections.getSamlConnectionList()` to return paginated data and export the `SamlConnection` type. ([#6332](https://github.com/clerk/javascript/pull/6332)) by [@jaredpiedt](https://github.com/jaredpiedt)
627 |
628 | - Updated dependencies [[`d2f6f9e`](https://github.com/clerk/javascript/commit/d2f6f9e02036a4288916fcce14f24be5d56561c4), [`a329836`](https://github.com/clerk/javascript/commit/a329836a6c64f0a551a277ccae07043456a70523), [`6041c39`](https://github.com/clerk/javascript/commit/6041c39a31e787a6065dbc3f21e1c569982a06de), [`3f1270d`](https://github.com/clerk/javascript/commit/3f1270db86a21ead0ed6f0bd4f9986485203e973)]:
629 | - @clerk/[email protected]
630 | - @clerk/[email protected]
631 |
632 | ## 2.4.5
633 |
634 | ### Patch Changes
635 |
636 | - Updated dependencies [[`2a90b68`](https://github.com/clerk/javascript/commit/2a90b689550ae960496c9292ca23e0225e3425cd), [`af50905`](https://github.com/clerk/javascript/commit/af50905ea497ed3286c8c4c374498e06ca6ee82b)]:
637 | - @clerk/[email protected]
638 | - @clerk/[email protected]
639 |
640 | ## 2.4.4
641 |
642 | ### Patch Changes
643 |
644 | - Updated dependencies [[`8ee859c`](https://github.com/clerk/javascript/commit/8ee859ce00d1d5747c14a80fe7166303e64a4f1f)]:
645 | - @clerk/[email protected]
646 | - @clerk/[email protected]
647 |
648 | ## 2.4.3
649 |
650 | ### Patch Changes
651 |
652 | - Updated dependencies [[`025e304`](https://github.com/clerk/javascript/commit/025e304c4d6402dfd750ee51ac9c8fc2dea1f353), [`dedf487`](https://github.com/clerk/javascript/commit/dedf48703986d547d5b28155b0182a51030cffeb), [`b96114e`](https://github.com/clerk/javascript/commit/b96114e438638896ba536bb7a17b09cdadcd9407)]:
653 | - @clerk/[email protected]
654 | - @clerk/[email protected]
655 |
656 | ## 2.4.2
657 |
658 | ### Patch Changes
659 |
660 | - Add `query`, `orderBy`, and `organizationId` to the `SamlConnectionListParams` type. ([#6279](https://github.com/clerk/javascript/pull/6279)) by [@jaredpiedt](https://github.com/jaredpiedt)
661 |
662 | - Add `event_attributes` to the `Webhook` type. ([#6162](https://github.com/clerk/javascript/pull/6162)) by [@jaredpiedt](https://github.com/jaredpiedt)
663 |
664 | - Updated dependencies [[`2be6a53`](https://github.com/clerk/javascript/commit/2be6a53959cb8a3127c2eb5d1aeb4248872d2c24), [`f6a1c35`](https://github.com/clerk/javascript/commit/f6a1c35bd5fb4bd2a3cd45bdaf9defe6be59d4a9), [`6826d0b`](https://github.com/clerk/javascript/commit/6826d0bbd03e844d49224565878a4326684f06b4), [`f6a1c35`](https://github.com/clerk/javascript/commit/f6a1c35bd5fb4bd2a3cd45bdaf9defe6be59d4a9), [`97a07f7`](https://github.com/clerk/javascript/commit/97a07f78b4b0c3dc701a2610097ec7d6232f79e7)]:
665 | - @clerk/[email protected]
666 | - @clerk/[email protected]
667 |
668 | ## 2.4.1
669 |
670 | ### Patch Changes
671 |
672 | - Updated dependencies [[`f42c4fe`](https://github.com/clerk/javascript/commit/f42c4fedfdab873129b876eba38b3677f190b460), [`ec207dc`](https://github.com/clerk/javascript/commit/ec207dcd2a13340cfa4e3b80d3d52d1b4e7d5f23), [`ec207dc`](https://github.com/clerk/javascript/commit/ec207dcd2a13340cfa4e3b80d3d52d1b4e7d5f23), [`0e0cc1f`](https://github.com/clerk/javascript/commit/0e0cc1fa85347d727a4fd3718fe45b0f0244ddd9)]:
673 | - @clerk/[email protected]
674 | - @clerk/[email protected]
675 |
676 | ## 2.4.0
677 |
678 | ### Minor Changes
679 |
680 | - Trigger a handshake on a signed in, cross origin request to sync session state from a satellite domain. ([#6238](https://github.com/clerk/javascript/pull/6238)) by [@brkalow](https://github.com/brkalow)
681 |
682 | ### Patch Changes
683 |
684 | - Refactor webhook verification to use verification from the `standardwebhooks` package, which is what our underlying provider relies on. ([#6252](https://github.com/clerk/javascript/pull/6252)) by [@brkalow](https://github.com/brkalow)
685 |
686 | - Add optional `secret` property in API key response ([#6246](https://github.com/clerk/javascript/pull/6246)) by [@wobsoriano](https://github.com/wobsoriano)
687 |
688 | - Use Headers constructor when building BAPI client headers ([#6235](https://github.com/clerk/javascript/pull/6235)) by [@wobsoriano](https://github.com/wobsoriano)
689 |
690 | - Use explicit config for api version handling in backend client request builder ([#6232](https://github.com/clerk/javascript/pull/6232)) by [@wobsoriano](https://github.com/wobsoriano)
691 |
692 | - Updated dependencies [[`abd8446`](https://github.com/clerk/javascript/commit/abd844609dad263d974da7fbf5e3575afce73abe), [`8387a39`](https://github.com/clerk/javascript/commit/8387a392a04906f0f10d84c61cfee36f23942f85), [`f2a6641`](https://github.com/clerk/javascript/commit/f2a66419b1813abc86ea98fde7475861995a1486)]:
693 | - @clerk/[email protected]
694 | - @clerk/[email protected]
695 |
696 | ## 2.3.1
697 |
698 | ### Patch Changes
699 |
700 | - Updated dependencies [[`02a1f42`](https://github.com/clerk/javascript/commit/02a1f42dfdb28ea956d6cbd3fbabe10093d2fad8), [`edc0bfd`](https://github.com/clerk/javascript/commit/edc0bfdae929dad78a99dfd6275aad947d9ddd73)]:
701 | - @clerk/[email protected]
702 | - @clerk/[email protected]
703 |
704 | ## 2.3.0
705 |
706 | ### Minor Changes
707 |
708 | - ## Optimize handshake payload delivery with nonce-based fetching ([#5905](https://github.com/clerk/javascript/pull/5905)) by [@jacekradko](https://github.com/jacekradko)
709 |
710 | This change introduces a significant optimization to the handshake flow by replacing direct payload delivery with a nonce-based approach to overcome browser cookie size limitations.
711 |
712 | ## Problem Solved
713 |
714 | Previously, the handshake payload (an encoded JWT containing set-cookie headers) was sent directly in a cookie. Since browsers limit cookies to ~4KB, this severely restricted the practical size of session tokens, which are also JWTs stored in cookies but embedded within the handshake payload.
715 |
716 | ## Solution
717 |
718 | We now use a conditional approach based on payload size:
719 |
720 | - **Small payloads (≤2KB)**: Continue using the direct approach for optimal performance
721 | - **Large payloads (>2KB)**: Use nonce-based fetching to avoid cookie size limits
722 |
723 | For large payloads, we:
724 |
725 | 1. Generate a short nonce (ID) for each handshake instance
726 | 2. Send only the nonce in the `__clerk_handshake_nonce` cookie
727 | 3. Use the nonce to fetch the actual handshake payload via a dedicated BAPI endpoint
728 |
729 | ## New Handshake Flow (for payloads >2KB)
730 |
731 | 1. User visits `example.com`
732 | 2. Client app middleware triggers handshake → `307 FAPI/v1/client/handshake`
733 | 3. FAPI handshake resolves → `307 example.com` with `__clerk_handshake_nonce` cookie containing the nonce
734 | 4. Client app middleware makes `GET BAPI/v1/clients/handshake_payload?nonce=<nonce_value>` request (BAPI)
735 | 5. BAPI returns array of set-cookie header values
736 | 6. Client app middleware applies headers to the response
737 |
738 | ## Traditional Flow (for payloads ≤2KB)
739 |
740 | No changes. Continues to work as before with direct payload delivery in cookies for optimal performance.
741 |
742 | ## Trade-offs
743 |
744 | - **Added**: One additional BAPI call per handshake (only for payloads >2KB)
745 | - **Removed**: Cookie size restrictions that previously limited session token size
746 |
747 | ### Patch Changes
748 |
749 | - Ensure `__clerk_synced` is removed from cross-origin return-back urls ([#6196](https://github.com/clerk/javascript/pull/6196)) by [@tmilewski](https://github.com/tmilewski)
750 |
751 | - Updated dependencies [[`f1be1fe`](https://github.com/clerk/javascript/commit/f1be1fe3d575c11acd04fc7aadcdec8f89829894), [`bffb42a`](https://github.com/clerk/javascript/commit/bffb42aaf266a188b9ae7d16ace3024d468a3bd4)]:
752 | - @clerk/[email protected]
753 | - @clerk/[email protected]
754 |
755 | ## 2.2.0
756 |
757 | ### Minor Changes
758 |
759 | - 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)
760 |
761 | - - Optimize `auth()` calls to avoid unnecessary verification calls when the provided token type is not in the `acceptsToken` array. ([#6123](https://github.com/clerk/javascript/pull/6123)) by [@wobsoriano](https://github.com/wobsoriano)
762 |
763 | - Add handling for invalid token types when `acceptsToken` is an array in `authenticateRequest()`: now returns a clear unauthenticated state (`tokenType: null`) if the token is not in the accepted list.
764 |
765 | - Introduce API keys Backend SDK methods ([#6169](https://github.com/clerk/javascript/pull/6169)) by [@wobsoriano](https://github.com/wobsoriano)
766 |
767 | ### Patch Changes
768 |
769 | - Add logic to ensure that we consider the proxy_url when creating the frontendApi url. ([#6120](https://github.com/clerk/javascript/pull/6120)) by [@jacekradko](https://github.com/jacekradko)
770 |
771 | - Updated dependencies [[`b495279`](https://github.com/clerk/javascript/commit/b4952796e3c7dee4ab4726de63a17b7f4265ce37), [`c3fa15d`](https://github.com/clerk/javascript/commit/c3fa15d60642b4fcbcf26e21caaca0fc60975795), [`52d5e57`](https://github.com/clerk/javascript/commit/52d5e5768d54725b4d20d028135746493e05d44c), [`15a945c`](https://github.com/clerk/javascript/commit/15a945c02a9f6bc8d2f7d1e3534217100bf45936), [`72629b0`](https://github.com/clerk/javascript/commit/72629b06fb1fe720fa2a61462306a786a913e9a8)]:
772 | - @clerk/[email protected]
773 | - @clerk/[email protected]
774 |
775 | ## 2.1.0
776 |
777 | ### Minor Changes
778 |
779 | - Improve `subject` property handling for machine auth objects. ([#6099](https://github.com/clerk/javascript/pull/6099)) by [@wobsoriano](https://github.com/wobsoriano)
780 |
781 | Usage:
782 |
783 | ```ts
784 | import { createClerkClient } from '@clerk/backend';
785 |
786 | const clerkClient = createClerkClient({
787 | secretKey: process.env.CLERK_SECRET_KEY,
788 | publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
789 | });
790 |
791 | const requestState = await clerkClient.authenticateRequest(request, {
792 | acceptsToken: 'any',
793 | });
794 |
795 | const authObject = requestState.toAuth();
796 |
797 | switch (authObject.tokenType) {
798 | case 'api_key':
799 | // authObject.userId
800 | // authObject.orgId
801 | break;
802 | case 'machine_token':
803 | // authObject.machineId
804 | break;
805 | case 'oauth_token':
806 | // authObject.userId
807 | // authObject.clientId
808 | break;
809 | }
810 | ```
811 |
812 | - Respect `acceptsToken` when returning unauthenticated session or machine object. ([#6112](https://github.com/clerk/javascript/pull/6112)) by [@wobsoriano](https://github.com/wobsoriano)
813 |
814 | ### Patch Changes
815 |
816 | - Re-organize internal types for the recently added "machine authentication" feature. ([#6067](https://github.com/clerk/javascript/pull/6067)) by [@wobsoriano](https://github.com/wobsoriano)
817 |
818 | - Fix calculation of handshake URL when proxy URL is set on the ClerkProvider ([#6119](https://github.com/clerk/javascript/pull/6119)) by [@jacekradko](https://github.com/jacekradko)
819 |
820 | - Add JSdoc comments for user methods. ([#6091](https://github.com/clerk/javascript/pull/6091)) by [@NWylynko](https://github.com/NWylynko)
821 |
822 | - Updating type of Verification.status ([#6110](https://github.com/clerk/javascript/pull/6110)) by [@jacekradko](https://github.com/jacekradko)
823 |
824 | - Resolve machine token property mixing in discriminated unions ([#6079](https://github.com/clerk/javascript/pull/6079)) by [@wobsoriano](https://github.com/wobsoriano)
825 |
826 | - Updated dependencies [[`19e9e11`](https://github.com/clerk/javascript/commit/19e9e11af04f13fd12975fbf7016fe0583202056), [`18bcb64`](https://github.com/clerk/javascript/commit/18bcb64a3e8b6d352d7933ed094d68214e6e80fb), [`138f733`](https://github.com/clerk/javascript/commit/138f733f13121487268a4f96e6eb2cffedc6e238), [`48be55b`](https://github.com/clerk/javascript/commit/48be55b61a86e014dd407414764d24bb43fd26f3), [`2c6f805`](https://github.com/clerk/javascript/commit/2c6f805a9e6e4685990f9a8abc740b2d0859a453), [`97749d5`](https://github.com/clerk/javascript/commit/97749d570bc687c7e05cd800a50e0ae4180a371d)]:
827 | - @clerk/[email protected]
828 | - @clerk/[email protected]
829 |
830 | ## 2.0.0
831 |
832 | ### Major Changes
833 |
834 | - Introduces machine authentication, supporting four token types: `api_key`, `oauth_token`, `machine_token`, and `session_token`. For backwards compatibility, `session_token` remains the default when no token type is specified. This enables machine-to-machine authentication and use cases such as API keys and OAuth integrations. Existing applications continue to work without modification. ([#5689](https://github.com/clerk/javascript/pull/5689)) by [@wobsoriano](https://github.com/wobsoriano)
835 |
836 | You can specify which token types are allowed by using the `acceptsToken` option in the `authenticateRequest()` function. This option can be set to a specific type, an array of types, or `'any'` to accept all supported tokens.
837 |
838 | Example usage:
839 |
840 | ```ts
841 | import express from 'express';
842 | import { clerkClient } from '@clerk/backend';
843 |
844 | const app = express();
845 |
846 | app.use(async (req, res, next) => {
847 | const requestState = await clerkClient.authenticateRequest(req, {
848 | acceptsToken: 'any',
849 | });
850 |
851 | if (!requestState.isAuthenticated) {
852 | // do something for unauthenticated requests
853 | }
854 |
855 | const authObject = requestState.toAuth();
856 |
857 | if (authObject.tokenType === 'session_token') {
858 | console.log('this is session token from a user');
859 | } else {
860 | console.log('this is some other type of machine token');
861 | console.log('more specifically, a ' + authObject.tokenType);
862 | }
863 |
864 | // Attach the auth object to locals so downstream handlers
865 | // and middleware can access it
866 | res.locals.auth = authObject;
867 | next();
868 | });
869 | ```
870 |
871 | ### Minor Changes
872 |
873 | - The `svix` dependency is no longer needed when using the `verifyWebhook()` function. `verifyWebhook()` was refactored to not rely on `svix` anymore while keeping the same functionality and behavior. ([#6059](https://github.com/clerk/javascript/pull/6059)) by [@royanger](https://github.com/royanger)
874 |
875 | If you previously installed `svix` to use `verifyWebhook()` you can uninstall it now:
876 |
877 | ```shell
878 | npm uninstall svix
879 | ```
880 |
881 | ### Patch Changes
882 |
883 | - Improve JSDoc comments for verifyWebhook and verifyToken ([#6060](https://github.com/clerk/javascript/pull/6060)) by [@LekoArts](https://github.com/LekoArts)
884 |
885 | - Improve JSDoc comments ([#6049](https://github.com/clerk/javascript/pull/6049)) by [@LekoArts](https://github.com/LekoArts)
886 |
887 | - Introduce `getAuthObjectFromJwt` as internal utility function that centralizes the logic for generating auth objects from session JWTs. ([#6053](https://github.com/clerk/javascript/pull/6053)) by [@LauraBeatris](https://github.com/LauraBeatris)
888 |
889 | - Updated dependencies [[`d8fa5d9`](https://github.com/clerk/javascript/commit/d8fa5d9d3d8dc575260d8d2b7c7eeeb0052d0b0d), [`be2e89c`](https://github.com/clerk/javascript/commit/be2e89ca11aa43d48f74c57a5a34e20d85b4003c), [`5644d94`](https://github.com/clerk/javascript/commit/5644d94f711a0733e4970c3f15c24d56cafc8743), [`b578225`](https://github.com/clerk/javascript/commit/b5782258242474c9b0987a3f8349836cd763f24b), [`8838120`](https://github.com/clerk/javascript/commit/8838120596830b88fec1c6c853371dabfec74a0d)]:
890 | - @clerk/[email protected]
891 | - @clerk/[email protected]
892 |
893 | ## 1.34.0
894 |
895 | ### Minor Changes
896 |
897 | - Adds `clerkClient.organizations.getInstanceOrganizationMembershipList` ([#6022](https://github.com/clerk/javascript/pull/6022)) by [@tmilewski](https://github.com/tmilewski)
898 |
899 | ### Patch Changes
900 |
901 | - Add `notifyPrimaryEmailAddressChanged` to `client.users.updateUser(...)` ([#6023](https://github.com/clerk/javascript/pull/6023)) by [@tmilewski](https://github.com/tmilewski)
902 |
903 | - Updated dependencies [[`f897773`](https://github.com/clerk/javascript/commit/f89777379da63cf45039c1570b51ba10a400817c), [`2c6a0cc`](https://github.com/clerk/javascript/commit/2c6a0cca6e824bafc6b0d0501784517a5b1f75ea), [`71e6a1f`](https://github.com/clerk/javascript/commit/71e6a1f1024d65b7a09cdc8fa81ce0164e0a34cb)]:
904 | - @clerk/[email protected]
905 | - @clerk/[email protected]
906 |
907 | ## 1.33.1
908 |
909 | ### Patch Changes
910 |
911 | - Ensure SAMLConnection API responses are explicitly deserialized ([#5993](https://github.com/clerk/javascript/pull/5993)) by [@tmilewski](https://github.com/tmilewski)
912 |
913 | - Add missing request params to `getOrganizationMembershipList` ([#5987](https://github.com/clerk/javascript/pull/5987)) by [@tmilewski](https://github.com/tmilewski)
914 |
915 | - Updated dependencies [[`6ed3dfc`](https://github.com/clerk/javascript/commit/6ed3dfc1bc742ac9d9a2307fe8e4733411cbc0d7)]:
916 | - @clerk/[email protected]
917 | - @clerk/[email protected]
918 |
919 | ## 1.33.0
920 |
921 | ### Minor Changes
922 |
923 | - Introduce `treatPendingAsSignedOut` option to `getAuth` ([#5842](https://github.com/clerk/javascript/pull/5842)) by [@LauraBeatris](https://github.com/LauraBeatris)
924 |
925 | ```ts
926 | // `pending` sessions will be treated as signed-out by default
927 | const { userId } = getAuth(req);
928 | ```
929 |
930 | ```ts
931 | // Both `active` and `pending` sessions will be treated as authenticated when `treatPendingAsSignedOut` is false
932 | const { userId } = getAuth(req, { treatPendingAsSignedOut: false });
933 | ```
934 |
935 | ### Patch Changes
936 |
937 | - Fixes an issue with infinite redirect detection in the handshake flow. ([#5981](https://github.com/clerk/javascript/pull/5981)) by [@brkalow](https://github.com/brkalow)
938 |
939 | - Updated dependencies [[`f237d76`](https://github.com/clerk/javascript/commit/f237d7617e5398ca0ba981e4336cac2191505b00)]:
940 | - @clerk/[email protected]
941 |
942 | ## 1.32.3
943 |
944 | ### Patch Changes
945 |
946 | - Introduces `createOrganizationInvitationBulk` - it creates new organization invitations in bulk and sends out emails to the provided email addresses with a link to accept the invitation and join the organization. ([#5962](https://github.com/clerk/javascript/pull/5962)) by [@LauraBeatris](https://github.com/LauraBeatris)
947 |
948 | ```ts
949 | const organizationId = 'org_123';
950 | const params = [
951 | {
952 | inviterUserId: 'user_1',
953 | emailAddress: '[email protected]',
954 | role: 'org:admin',
955 | },
956 | {
957 | inviterUserId: 'user_2',
958 | emailAddress: '[email protected]',
959 | role: 'org:member',
960 | },
961 | ];
962 |
963 | const response = await clerkClient.organizations.createOrganizationInvitationBulk(organizationId, params);
964 | ```
965 |
966 | - Use domain in AuthenticateRequest only for satellite domains ([#5919](https://github.com/clerk/javascript/pull/5919)) by [@jacekradko](https://github.com/jacekradko)
967 |
968 | - Updated dependencies [[`c305b31`](https://github.com/clerk/javascript/commit/c305b310e351e9ce2012f805b35e464c3e43e310), [`6bb480e`](https://github.com/clerk/javascript/commit/6bb480ef663a6dfa219bc9546aca087d5d9624d0)]:
969 | - @clerk/[email protected]
970 | - @clerk/[email protected]
971 |
972 | ## 1.32.2
973 |
974 | ### Patch Changes
975 |
976 | - Updated dependencies [[`b1337df`](https://github.com/clerk/javascript/commit/b1337dfeae8ccf8622efcf095e3201f9bbf1cefa), [`65f0878`](https://github.com/clerk/javascript/commit/65f08788ee5e56242eee2194c73ba90965c75c97), [`df6fefd`](https://github.com/clerk/javascript/commit/df6fefd05fd2df93f5286d97e546b48911adea7c), [`4282bfa`](https://github.com/clerk/javascript/commit/4282bfa09491225bde7d619fe9a3561062703f69), [`5491491`](https://github.com/clerk/javascript/commit/5491491711e0a8ee37828451c1f603a409de32cf)]:
977 | - @clerk/[email protected]
978 | - @clerk/[email protected]
979 |
980 | ## 1.32.1
981 |
982 | ### Patch Changes
983 |
984 | - Updated dependencies [[`1ff6d6e`](https://github.com/clerk/javascript/commit/1ff6d6efbe838b3f7f6977b2b5215c2cafd715f6), [`fbf3cf4`](https://github.com/clerk/javascript/commit/fbf3cf4916469c4e118870bf12efca2d0f77d9d8)]:
985 | - @clerk/[email protected]
986 | - @clerk/[email protected]
987 |
988 | ## 1.32.0
989 |
990 | ### Minor Changes
991 |
992 | - Add handling of new Handshake nonce flow when authenticating requests ([#5865](https://github.com/clerk/javascript/pull/5865)) by [@jacekradko](https://github.com/jacekradko)
993 |
994 | ### Patch Changes
995 |
996 | - Updated dependencies [[`0f5145e`](https://github.com/clerk/javascript/commit/0f5145e164f3d3d5faf57e58162b05e7110d2403), [`afdfd18`](https://github.com/clerk/javascript/commit/afdfd18d645608dec37e52a291a91ba5f42dcbe7), [`b7c51ba`](https://github.com/clerk/javascript/commit/b7c51baac6df1129b468274c9a7f63ca303f16ce), [`437b53b`](https://github.com/clerk/javascript/commit/437b53b67e281d076b5b3f927e11c1d64666d154), [`5217155`](https://github.com/clerk/javascript/commit/52171554250c5c58f4f497b6d3c7416e79ac77da)]:
997 | - @clerk/[email protected]
998 | - @clerk/[email protected]
999 |
1000 | ## 1.31.4
1001 |
1002 | ### Patch Changes
1003 |
1004 | - Updated dependencies [[`4db96e0`](https://github.com/clerk/javascript/commit/4db96e0ff2ab44c7bdd8540e09ec70b84b19d3eb), [`36fb43f`](https://github.com/clerk/javascript/commit/36fb43f8b35866bdc20680fac58020f036d30d1f), [`e5ac444`](https://github.com/clerk/javascript/commit/e5ac4447f52bb6887ad686feab308fe9daf76e33), [`4db96e0`](https://github.com/clerk/javascript/commit/4db96e0ff2ab44c7bdd8540e09ec70b84b19d3eb), [`d227805`](https://github.com/clerk/javascript/commit/d22780599a5e29545a3d8309cc411c2e8659beac)]:
1005 | - @clerk/[email protected]
1006 | - @clerk/[email protected]
1007 |
1008 | ## 1.31.3
1009 |
1010 | ### Patch Changes
1011 |
1012 | - Updated dependencies [[`db0138f`](https://github.com/clerk/javascript/commit/db0138f3f72aea8cb68a5684a90123f733848f63), [`aa97231`](https://github.com/clerk/javascript/commit/aa97231962e3f472a46135e376159c6ddcf1157b), [`c792f37`](https://github.com/clerk/javascript/commit/c792f37129fd6475d5af95146e9ef0f1c8eff730), [`3bf08a9`](https://github.com/clerk/javascript/commit/3bf08a9e0a9e65496edac5fc3bb22ad7b561df26), [`74cf3b2`](https://github.com/clerk/javascript/commit/74cf3b28cdf622a942aaf99caabfba74b7e856fd), [`037b113`](https://github.com/clerk/javascript/commit/037b113aaedd53d4647d88f1659eb9c14cf6f275), [`c15a412`](https://github.com/clerk/javascript/commit/c15a412169058e2304a51c9e92ffaa7f6bb2a898), [`7726a03`](https://github.com/clerk/javascript/commit/7726a03a7fec4d292b6de2587b84ed4371984c23), [`ed10566`](https://github.com/clerk/javascript/commit/ed1056637624eec5bfd50333407c1e63e34c193b), [`b846a9a`](https://github.com/clerk/javascript/commit/b846a9ab96db6b1d8344a4b693051618865508a8), [`e66c800`](https://github.com/clerk/javascript/commit/e66c8002b82b2902f77e852e16482f5cfb062d2c), [`45e8298`](https://github.com/clerk/javascript/commit/45e829890ec9ac66f07e0d7076cd283f14c893ed), [`9c41091`](https://github.com/clerk/javascript/commit/9c41091eb795bce8ffeeeca0264ae841fe07b426), [`29462b4`](https://github.com/clerk/javascript/commit/29462b433eb411ce614e4768e5844cacd00c1975), [`322c43f`](https://github.com/clerk/javascript/commit/322c43f6807a932c3cfaaef1b587b472c80180d2), [`17397f9`](https://github.com/clerk/javascript/commit/17397f95b715bd4fefd7f63c1d351abcf1c8ee16), [`45e8298`](https://github.com/clerk/javascript/commit/45e829890ec9ac66f07e0d7076cd283f14c893ed)]:
1013 | - @clerk/[email protected]
1014 | - @clerk/[email protected]
1015 |
1016 | ## 1.31.2
1017 |
1018 | ### Patch Changes
1019 |
1020 | - Updated dependencies [[`9ec0a73`](https://github.com/clerk/javascript/commit/9ec0a7353e9f6ea661c3d7b9542423b6eb1d29e9), [`d9222fc`](https://github.com/clerk/javascript/commit/d9222fc3c21da2bcae30b06f0b1897f526935582)]:
1021 | - @clerk/[email protected]
1022 | - @clerk/[email protected]
1023 |
1024 | ## 1.31.1
1025 |
1026 | ### Patch Changes
1027 |
1028 | - Updated dependencies [[`225b9ca`](https://github.com/clerk/javascript/commit/225b9ca21aba44930872a85d6b112ee2a1b606b9)]:
1029 | - @clerk/[email protected]
1030 | - @clerk/[email protected]
1031 |
1032 | ## 1.31.0
1033 |
1034 | ### Minor Changes
1035 |
1036 | - Initial stub of the new handshake payload flow with nonce ([#5750](https://github.com/clerk/javascript/pull/5750)) by [@jacekradko](https://github.com/jacekradko)
1037 |
1038 | ### Patch Changes
1039 |
1040 | - Fix an issue where the handshake redirect was not respecting the supported Clerk API version specified in `@clerk/backend`. ([#5780](https://github.com/clerk/javascript/pull/5780)) by [@brkalow](https://github.com/brkalow)
1041 |
1042 | ## 1.30.2
1043 |
1044 | ### Patch Changes
1045 |
1046 | - Improve JSDoc comments ([#5751](https://github.com/clerk/javascript/pull/5751)) by [@LekoArts](https://github.com/LekoArts)
1047 |
1048 | - Updated dependencies [[`387bf62`](https://github.com/clerk/javascript/commit/387bf623406306e0c5c08da937f4930a7ec5e4a5), [`2716622`](https://github.com/clerk/javascript/commit/27166224e12af582298460d438bd7f83ea8e04bf), [`294da82`](https://github.com/clerk/javascript/commit/294da82336e7a345900d7ef9b28f56a7c8864c52)]:
1049 | - @clerk/[email protected]
1050 | - @clerk/[email protected]
1051 |
1052 | ## 1.30.1
1053 |
1054 | ### Patch Changes
1055 |
1056 | - Updated dependencies [[`b02e766`](https://github.com/clerk/javascript/commit/b02e76627e47aec314573586451fa345a089115a), [`5d78b28`](https://github.com/clerk/javascript/commit/5d78b286b63e35fbcf44aac1f7657cbeaba4d659), [`d7f4438`](https://github.com/clerk/javascript/commit/d7f4438fa4bfd04474d5cdb9212ba908568ad6d2), [`5866855`](https://github.com/clerk/javascript/commit/58668550ec91d5511cf775972c54dc485185cc58), [`0007106`](https://github.com/clerk/javascript/commit/00071065998a3676c51e396b4c0afcbf930a9898), [`462b5b2`](https://github.com/clerk/javascript/commit/462b5b271d4e120d58a85818a358b60a6b3c8100), [`447d7a9`](https://github.com/clerk/javascript/commit/447d7a9e133c2a0e7db014bd5837e6ffff08f572), [`2beea29`](https://github.com/clerk/javascript/commit/2beea2957c67bc62446fe24d36332b0a4e850d7d), [`115601d`](https://github.com/clerk/javascript/commit/115601d12fd65dbf3011c0cda368525a2b95bfeb)]:
1057 | - @clerk/[email protected]
1058 | - @clerk/[email protected]
1059 |
1060 | ## 1.30.0
1061 |
1062 | ### Minor Changes
1063 |
1064 | - Adding reportTo and reportOnly configuration options to the contentSecurityPolicy config for clerkMiddleware ([#5702](https://github.com/clerk/javascript/pull/5702)) by [@jacekradko](https://github.com/jacekradko)
1065 |
1066 | ### Patch Changes
1067 |
1068 | - Updated dependencies [[`8b25035`](https://github.com/clerk/javascript/commit/8b25035aa49382fe1cd1c6f30ec80e86bcf9d66e)]:
1069 | - @clerk/[email protected]
1070 | - @clerk/[email protected]
1071 |
1072 | ## 1.29.2
1073 |
1074 | ### Patch Changes
1075 |
1076 | - Updated dependencies [[`33201bf`](https://github.com/clerk/javascript/commit/33201bf972d6a980617d47ebd776bef76f871833), [`4334598`](https://github.com/clerk/javascript/commit/4334598108ff2cfa3c25b5a46117c1c9c65b7974), [`0ae0403`](https://github.com/clerk/javascript/commit/0ae040303d239b75a3221436354a2c2ecdb85aae)]:
1077 | - @clerk/[email protected]
1078 | - @clerk/[email protected]
1079 |
1080 | ## 1.29.1
1081 |
1082 | ### Patch Changes
1083 |
1084 | - Improve JSDoc comments ([#5643](https://github.com/clerk/javascript/pull/5643)) by [@alexisintech](https://github.com/alexisintech)
1085 |
1086 | - Updated dependencies [[`45486ac`](https://github.com/clerk/javascript/commit/45486acebf4d133efb09a3622a738cdbf4e51d66), [`837692a`](https://github.com/clerk/javascript/commit/837692aa40197b1574783ad36d0d017a771c08e1), [`0c00e59`](https://github.com/clerk/javascript/commit/0c00e59ff4714491650ac9480ae3b327c626d30d), [`6a5f644`](https://github.com/clerk/javascript/commit/6a5f6447a36a635d6201f8bb7619fb844ab21b79)]:
1087 | - @clerk/[email protected]
1088 | - @clerk/[email protected]
1089 |
1090 | ## 1.29.0
1091 |
1092 | ### Minor Changes
1093 |
1094 | - Adds the following functionality for Instances to the Backend API client. ([#5600](https://github.com/clerk/javascript/pull/5600)) by [@tmilewski](https://github.com/tmilewski)
1095 |
1096 | ```ts
1097 | import { createClerkClient } from '@clerk/backend';
1098 |
1099 | const clerkClient = createClerkClient(...);
1100 |
1101 | await clerkClient.instance.get();
1102 | await clerkClient.instance.update({...});
1103 | await clerkClient.instance.updateRestrictions({...});
1104 | await clerkClient.instance.updateOrganizationSettings({...});
1105 | ```
1106 |
1107 | - Adds the ability to perform CRUD operations on OAuth Applications to the Backend API client. ([#5599](https://github.com/clerk/javascript/pull/5599)) by [@tmilewski](https://github.com/tmilewski)
1108 |
1109 | ```ts
1110 | import { createClerkClient } from '@clerk/backend';
1111 |
1112 | const clerkClient = createClerkClient(...);
1113 |
1114 | await clerkClient.oauthApplications.list({...});
1115 | await clerkClient.oauthApplications.get('templateId');
1116 | await clerkClient.oauthApplications.create({...});
1117 | await clerkClient.oauthApplications.update({...});
1118 | await clerkClient.oauthApplications.delete('templateId');
1119 | await clerkClient.oauthApplications.rotateSecret('templateId');
1120 | ```
1121 |
1122 | - Adds domain endpoints to the Backend API client. ([#5621](https://github.com/clerk/javascript/pull/5621)) by [@tmilewski](https://github.com/tmilewski)
1123 |
1124 | ```ts
1125 | import { createClerkClient } from '@clerk/backend';
1126 |
1127 | const clerkClient = createClerkClient(...);
1128 | await clerkClient.domains.list();
1129 | await clerkClient.domains.add({...});
1130 | await clerkClient.domains.update({...});
1131 | await clerkClient.domains.delete('satelliteDomainId');
1132 | ```
1133 |
1134 | - Adds the ability to retrieve and update Sign Up Attempts to the Backend API client. ([#5625](https://github.com/clerk/javascript/pull/5625)) by [@tmilewski](https://github.com/tmilewski)
1135 |
1136 | ```ts
1137 | import { createClerkClient } from '@clerk/backend';
1138 |
1139 | const clerkClient = createClerkClient(...);
1140 |
1141 | await clerkClient.signUps.get('signUpAttemptId');
1142 | await clerkClient.signUps.update({...});
1143 | ```
1144 |
1145 | - Adds the ability to change production domains [beta] to the Backend API client. ([#5633](https://github.com/clerk/javascript/pull/5633)) by [@tmilewski](https://github.com/tmilewski)
1146 |
1147 | ```ts
1148 | import { createClerkClient } from '@clerk/backend';
1149 |
1150 | const clerkClient = createClerkClient(...);
1151 |
1152 | await clerkClient.betaFeatures.changeDomain({
1153 | homeUrl: 'https://www.example.com',
1154 | isSecondary: false,
1155 | });
1156 | ```
1157 |
1158 | ### Patch Changes
1159 |
1160 | - Append expired status to invitation types ([#5646](https://github.com/clerk/javascript/pull/5646)) by [@tmilewski](https://github.com/tmilewski)
1161 |
1162 | - Improve JSDoc comments ([#5630](https://github.com/clerk/javascript/pull/5630)) by [@LekoArts](https://github.com/LekoArts)
1163 |
1164 | - Include `expiresAt` in OAuth access token resource ([#5631](https://github.com/clerk/javascript/pull/5631)) by [@Nikpolik](https://github.com/Nikpolik)
1165 |
1166 | - Update typing of Organization.slug ([#5636](https://github.com/clerk/javascript/pull/5636)) by [@tmilewski](https://github.com/tmilewski)
1167 |
1168 | - Adds the ability to list and create waitlist entries to the Backend API client. ([#5591](https://github.com/clerk/javascript/pull/5591)) by [@tmilewski](https://github.com/tmilewski)
1169 |
1170 | ```ts
1171 | import { createClerkClient } from '@clerk/backend';
1172 |
1173 | const clerkClient = createClerkClient(...);
1174 |
1175 | await clerkClient.waitlistEntries.list({...});
1176 | await clerkClient.waitlistEntries.create({
1177 | emailAddress: '[email protected]',
1178 | notify: true
1179 | });
1180 | ```
1181 |
1182 | - Adds the ability to create and revoke actor tokens to the Backend API client. ([#5585](https://github.com/clerk/javascript/pull/5585)) by [@tmilewski](https://github.com/tmilewski)
1183 |
1184 | ```ts
1185 | import { createClerkClient } from '@clerk/backend';
1186 |
1187 | const clerkClient = createClerkClient(...);
1188 |
1189 | const { id } = await clerkClient.actorTokens.create({...});
1190 | await clerkClient.actorTokens.revoke(id);
1191 | ```
1192 |
1193 | - Updated dependencies [[`ab939fd`](https://github.com/clerk/javascript/commit/ab939fdb29150c376280b42f861a188a33f57dcc), [`03284da`](https://github.com/clerk/javascript/commit/03284da6a93a790ce3e3ebbd871c06e19f5a8803), [`7389ba3`](https://github.com/clerk/javascript/commit/7389ba3164ca0d848fb0a9de5d7e9716925fadcc), [`f6ef841`](https://github.com/clerk/javascript/commit/f6ef841125ff21ca8cae731d1f47f3a101d887e1), [`e634830`](https://github.com/clerk/javascript/commit/e6348301ab56a7868f24c1b9a4dd9e1d60f6027b), [`f8887b2`](https://github.com/clerk/javascript/commit/f8887b2cbd145e8e49bec890e8b6e02e34178d6a)]:
1194 | - @clerk/[email protected]
1195 | - @clerk/[email protected]
1196 |
1197 | ## 1.28.0
1198 |
1199 | ### Minor Changes
1200 |
1201 | - Add support for feature or plan based authorization. ([#5582](https://github.com/clerk/javascript/pull/5582)) by [@panteliselef](https://github.com/panteliselef)
1202 |
1203 | - Adds the ability to grab an instance's JWKS to the Backend API client. ([#5588](https://github.com/clerk/javascript/pull/5588)) by [@tmilewski](https://github.com/tmilewski)
1204 |
1205 | ```ts
1206 | import { createClerkClient } from '@clerk/backend';
1207 |
1208 | const clerkClient = createClerkClient(...);
1209 | await clerkClient.jwks.getJWKS();
1210 | ```
1211 |
1212 | - Adds the Blocklist Identifier endpoints to the Backend API client. ([#5617](https://github.com/clerk/javascript/pull/5617)) by [@tmilewski](https://github.com/tmilewski)
1213 |
1214 | ```ts
1215 | import { createClerkClient } from '@clerk/backend';
1216 |
1217 | const clerkClient = createClerkClient(...);
1218 | await clerkClient.blocklistIdentifiers.getBlocklistIdentifierList();
1219 | await clerkClient.blocklistIdentifiers.createBlocklistIdentifier({ identifier });
1220 | await clerkClient.blocklistIdentifiers.deleteBlocklistIdentifier('blocklistIdentifierId');
1221 | ```
1222 |
1223 | Updates the ability paginate Allowlist Identifier reponses and access `identifierType` and `instanceId` from the response.
1224 |
1225 | ```ts
1226 | import { createClerkClient } from '@clerk/backend';
1227 |
1228 | const clerkClient = createClerkClient(...);
1229 | const res = await clerkClient.blocklistIdentifiers.getAllowlistIdentifierList({ limit, offset });
1230 | ```
1231 |
1232 | Corrects the type of the Allowlist Identifier `DeletedObject`
1233 |
1234 | - Adds webhooks endpoints to the Backend API client. ([#5619](https://github.com/clerk/javascript/pull/5619)) by [@tmilewski](https://github.com/tmilewski)
1235 |
1236 | ```ts
1237 | import { createClerkClient } from '@clerk/backend';
1238 |
1239 | const clerkClient = createClerkClient(...);
1240 | await clerkClient.webhooks.createSvixApp();
1241 | await clerkClient.webhooks.generateSvixAuthURL();
1242 | await clerkClient.webhooks.deleteSvixApp();
1243 | ```
1244 |
1245 | - Adds the ability to perform CRUD operations on JWT Templates to the Backend API client. ([#5598](https://github.com/clerk/javascript/pull/5598)) by [@tmilewski](https://github.com/tmilewski)
1246 |
1247 | ```ts
1248 | import { createClerkClient } from '@clerk/backend';
1249 |
1250 | const clerkClient = createClerkClient(...);
1251 |
1252 | await clerkClient.jwtTemplates.list({...});
1253 | await clerkClient.jwtTemplates.get('templateId');
1254 | await clerkClient.jwtTemplates.create({...});
1255 | await clerkClient.jwtTemplates.update({...});
1256 | await clerkClient.jwtTemplates.delete('templateId');
1257 | ```
1258 |
1259 | - Adds the ability to create an active session to the Backend API client. ([#5592](https://github.com/clerk/javascript/pull/5592)) by [@tmilewski](https://github.com/tmilewski)
1260 |
1261 | ```ts
1262 | import { createClerkClient } from '@clerk/backend';
1263 |
1264 | const clerkClient = createClerkClient(...);
1265 | await clerkClient.sessions.createSession({
1266 | userId: 'user_xxxxxx',
1267 | });
1268 | ```
1269 |
1270 | ### Patch Changes
1271 |
1272 | - Add support for phpass_md5 and ldap_ssha hashers ([#5583](https://github.com/clerk/javascript/pull/5583)) by [@Nikpolik](https://github.com/Nikpolik)
1273 |
1274 | - Adds the ability to verify proxy checks to the Backend API client. ([#5589](https://github.com/clerk/javascript/pull/5589)) by [@tmilewski](https://github.com/tmilewski)
1275 |
1276 | ```ts
1277 | import { createClerkClient } from '@clerk/backend';
1278 |
1279 | const clerkClient = createClerkClient(...);
1280 | await clerkClient.proxyChecks.verify({
1281 | domainId: 'dmn_xxxxxx',
1282 | proxyUrl: 'https://[your-domain].com'
1283 | });
1284 | ```
1285 |
1286 | - Adds the following User-centric functionality to the Backend API client. ([#5593](https://github.com/clerk/javascript/pull/5593)) by [@tmilewski](https://github.com/tmilewski)
1287 |
1288 | ```ts
1289 | import { createClerkClient } from '@clerk/backend';
1290 |
1291 | const clerkClient = createClerkClient(...);
1292 |
1293 | await clerkClient.users.getOrganizationInvitationList({
1294 | userId: 'user_xxxxxx',
1295 | status: 'pending',
1296 | });
1297 | await clerkClient.users.deleteUserPasskey({
1298 | userId: 'user_xxxxxx',
1299 | passkeyIdentificationId: 'xxxxxxx',
1300 | });
1301 | await clerkClient.users.deleteUserWeb3Wallet({
1302 | userId: 'user_xxxxxx',
1303 | web3WalletIdentificationId: 'xxxxxxx',
1304 | });
1305 | await clerkClient.users.deleteUserExternalAccount({
1306 | userId: 'user_xxxxxx',
1307 | externalAccountId: 'xxxxxxx',
1308 | });
1309 | await clerkClient.users.deleteUserBackupCodes('user_xxxxxx');
1310 | await clerkClient.users.deleteUserTOTP('user_xxxxxx');
1311 | ```
1312 |
1313 | - Improve JSDoc comments ([#5596](https://github.com/clerk/javascript/pull/5596)) by [@LekoArts](https://github.com/LekoArts)
1314 |
1315 | - Updated dependencies [[`e4d04ae`](https://github.com/clerk/javascript/commit/e4d04aea490ab67e3431729398d3f4c46fc3e7e7), [`431a821`](https://github.com/clerk/javascript/commit/431a821b590835bcf6193a4cbdd234c5e763e08c), [`93068ea`](https://github.com/clerk/javascript/commit/93068ea9eb19d8c8b9c7ade35d0cd860e08049fc), [`431a821`](https://github.com/clerk/javascript/commit/431a821b590835bcf6193a4cbdd234c5e763e08c), [`431a821`](https://github.com/clerk/javascript/commit/431a821b590835bcf6193a4cbdd234c5e763e08c), [`103bc03`](https://github.com/clerk/javascript/commit/103bc03571c8845df205f4c6fd0c871c3368d1d0), [`48438b4`](https://github.com/clerk/javascript/commit/48438b409036088701bda7e1e732d6a51bee8cdc), [`196dcb4`](https://github.com/clerk/javascript/commit/196dcb47928bd22a3382197f8594a590f688faee)]:
1316 | - @clerk/[email protected]
1317 | - @clerk/[email protected]
1318 |
1319 | ## 1.27.3
1320 |
1321 | ### Patch Changes
1322 |
1323 | - Improve JSDoc comments ([#5575](https://github.com/clerk/javascript/pull/5575)) by [@LekoArts](https://github.com/LekoArts)
1324 |
1325 | - Updated dependencies [[`70c9db9`](https://github.com/clerk/javascript/commit/70c9db9f3b51ba034f76e0cc4cf338e7b406d9b1), [`554242e`](https://github.com/clerk/javascript/commit/554242e16e50c92a6afb6ed74c681b04b9f113b5), [`cc1f9a0`](https://github.com/clerk/javascript/commit/cc1f9a0adb7771b615b0f2994a5ac571b59889dd), [`8186cb5`](https://github.com/clerk/javascript/commit/8186cb564575ac3ce97079ec203865bf5deb05ee)]:
1326 | - @clerk/[email protected]
1327 | - @clerk/[email protected]
1328 |
1329 | ## 1.27.2
1330 |
1331 | ### Patch Changes
1332 |
1333 | - Uses the helper function `__experimental_JWTPayloadToAuthObjectProperties` from `@clerk/shared` to handle the new JWT v2 schema. ([#5549](https://github.com/clerk/javascript/pull/5549)) by [@octoper](https://github.com/octoper)
1334 |
1335 | - Update the supported API version to `2025-04-10` ([#5568](https://github.com/clerk/javascript/pull/5568)) by [@octoper](https://github.com/octoper)
1336 |
1337 | - Updated dependencies [[`3ad3bc8`](https://github.com/clerk/javascript/commit/3ad3bc8380b354b0cd952eb58eb6c07650efa0f2), [`cfa94b8`](https://github.com/clerk/javascript/commit/cfa94b88476608edf8c2486e8ec0d3f3f82e0bfb), [`2033919`](https://github.com/clerk/javascript/commit/203391964857b98dae11944799d1e6328439e838), [`5f3cc46`](https://github.com/clerk/javascript/commit/5f3cc460b6b775b5a74746758b8cff11649a877a)]:
1338 | - @clerk/[email protected]
1339 | - @clerk/[email protected]
1340 |
1341 | ## 1.27.1
1342 |
1343 | ### Patch Changes
1344 |
1345 | - 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)
1346 |
1347 | - Updated dependencies [[`f6f275d`](https://github.com/clerk/javascript/commit/f6f275dac5ae83ac0c2016a85a6a0cee9513f224)]:
1348 | - @clerk/[email protected]
1349 | - @clerk/[email protected]
1350 |
1351 | ## 1.27.0
1352 |
1353 | ### Minor Changes
1354 |
1355 | - 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)
1356 |
1357 | - Added constants.Headers.ContentSecurityPolicy and constants.Headers.Nonce ([#5493](https://github.com/clerk/javascript/pull/5493)) by [@jacekradko](https://github.com/jacekradko)
1358 |
1359 | ### Patch Changes
1360 |
1361 | - Updated dependencies [[`e1ec52b`](https://github.com/clerk/javascript/commit/e1ec52b93038c9cb24e030dc06e53825a384a480), [`bebb6d8`](https://github.com/clerk/javascript/commit/bebb6d8af66b2bb7a4b3bdf96f9d480e65b31ba2), [`d0d5203`](https://github.com/clerk/javascript/commit/d0d5203e4ee9e2e1bed5c00ef0f87f0130f1d298), [`6112420`](https://github.com/clerk/javascript/commit/6112420889f1577fb16d7bfa706aaffe1090093d), [`9b25e31`](https://github.com/clerk/javascript/commit/9b25e311cf5e15f896c7948faa42ace45df364c5)]:
1362 | - @clerk/[email protected]
1363 | - @clerk/[email protected]
1364 |
1365 | ## 1.26.0
1366 |
1367 | ### Minor Changes
1368 |
1369 | - Expose `retryAfter` value on `ClerkAPIResponseError` for 429 responses. ([#5480](https://github.com/clerk/javascript/pull/5480)) by [@dstaley](https://github.com/dstaley)
1370 |
1371 | - Introduce a `verifyWebhook()` function to verify incoming Clerk webhook requests and process the payload. This function handles webhook signature verification using `Svix` and is now available across all backend and fullstack SDKs. ([#5468](https://github.com/clerk/javascript/pull/5468)) by [@wobsoriano](https://github.com/wobsoriano)
1372 |
1373 | To get started, install [`svix`](https://www.npmjs.com/package/svix), which Clerk uses to verify its webhooks:
1374 |
1375 | ```shell
1376 | npm install svix
1377 | ```
1378 |
1379 | Then in your webhook route handler, import `verifyWebhook()` from the Backend SDK:
1380 |
1381 | ```ts
1382 | // app/api/webhooks/route.ts
1383 | import { verifyWebhook } from '@clerk/backend/webhooks';
1384 |
1385 | try {
1386 | const evt = await verifyWebhook(req);
1387 |
1388 | // Do something with payload
1389 | const { id } = evt.data;
1390 | const eventType = evt.type;
1391 | console.log(`Received webhook with ID ${id} and event type of ${eventType}`);
1392 | console.log('Webhook payload:', body);
1393 | } catch (err) {
1394 | console.error('Error: Could not verify webhook:', err);
1395 | }
1396 | ```
1397 |
1398 | For more information on how to sync Clerk data to your app with webhooks, [see our guide](https://clerk.com/docs/webhooks/sync-data).
1399 |
1400 | - Redirect to tasks on `auth.protect` and `auth.redirectToSignIn` ([#5440](https://github.com/clerk/javascript/pull/5440)) by [@LauraBeatris](https://github.com/LauraBeatris)
1401 |
1402 | ### Patch Changes
1403 |
1404 | - Updated dependencies [[`60a9a51`](https://github.com/clerk/javascript/commit/60a9a51dff7d59e7397536586cf1cfe029bc021b), [`e984494`](https://github.com/clerk/javascript/commit/e984494416dda9a6f04acaaba61f8c2683090961), [`ec4521b`](https://github.com/clerk/javascript/commit/ec4521b4fe56602f524a0c6d1b09d21aef5d8bd0), [`38828ae`](https://github.com/clerk/javascript/commit/38828ae58d6d4e8e3c60945284930179b2b6bb40), [`f30fa75`](https://github.com/clerk/javascript/commit/f30fa750754f19030f932a666d2bdbdf0d86743d), [`9c68678`](https://github.com/clerk/javascript/commit/9c68678e87047e6312b708b775ebfb23a3e22f8a), [`619cde8`](https://github.com/clerk/javascript/commit/619cde8c532d635d910ebbc08ad6abcc025694b4)]:
1405 | - @clerk/[email protected]
1406 | - @clerk/[email protected]
1407 |
1408 | ## 1.25.8
1409 |
1410 | ### Patch Changes
1411 |
1412 | - Updated dependencies [[`e20fb6b`](https://github.com/clerk/javascript/commit/e20fb6b397fb69c9d5af4e321267b82f12a5f127), [`77e6462`](https://github.com/clerk/javascript/commit/77e64628560cab688af214edb5922e67cd68a951)]:
1413 | - @clerk/[email protected]
1414 | - @clerk/[email protected]
1415 |
1416 | ## 1.25.7
1417 |
1418 | ### Patch Changes
1419 |
1420 | - Derive session status from server-side state ([#5447](https://github.com/clerk/javascript/pull/5447)) by [@LauraBeatris](https://github.com/LauraBeatris)
1421 |
1422 | - Updated dependencies [[`1da28a2`](https://github.com/clerk/javascript/commit/1da28a28bf602069b433c15b92df21f682779294), [`a9b618d`](https://github.com/clerk/javascript/commit/a9b618dfa97a0dacc462186c8b2588ad5ddb6902), [`f20dc15`](https://github.com/clerk/javascript/commit/f20dc159f542449e7f5b437b70d3eb3ba04d6975), [`4d9f1ee`](https://github.com/clerk/javascript/commit/4d9f1ee8c22fe1e4a166ff054d0af4d37b829f0a)]:
1423 | - @clerk/[email protected]
1424 | - @clerk/[email protected]
1425 |
1426 | ## 1.25.6
1427 |
1428 | ### Patch Changes
1429 |
1430 | - Update `RevokeOrganizationInvitationParams.requestUserId` to optional ([#5448](https://github.com/clerk/javascript/pull/5448)) by [@LauraBeatris](https://github.com/LauraBeatris)
1431 |
1432 | - Updated dependencies [[`466ed13`](https://github.com/clerk/javascript/commit/466ed136af73b59b267d92ad3296039d1c3a4fcc)]:
1433 | - @clerk/[email protected]
1434 | - @clerk/[email protected]
1435 |
1436 | ## 1.25.5
1437 |
1438 | ### Patch Changes
1439 |
1440 | - Update `@clerk/shared` dependency to use new shared `buildAccountsBaseUrl` utility. ([#5416](https://github.com/clerk/javascript/pull/5416)) by [@dstaley](https://github.com/dstaley)
1441 |
1442 | - Updated dependencies [[`892bc0e`](https://github.com/clerk/javascript/commit/892bc0eee9e0bb04d327eb84b44201fa34806483)]:
1443 | - @clerk/[email protected]
1444 |
1445 | ## 1.25.4
1446 |
1447 | ### Patch Changes
1448 |
1449 | - Handle Basic auth gracefully ([#5395](https://github.com/clerk/javascript/pull/5395)) by [@jacekradko](https://github.com/jacekradko)
1450 |
1451 | - Updated dependencies [[`3910ebe`](https://github.com/clerk/javascript/commit/3910ebea85817273f18fd2f3f142dd1c728e2220), [`e513333`](https://github.com/clerk/javascript/commit/e5133330a196c5c3742634cc9c3d3233ff488b0d)]:
1452 | - @clerk/[email protected]
1453 | - @clerk/[email protected]
1454 |
1455 | ## 1.25.3
1456 |
1457 | ### Patch Changes
1458 |
1459 | - Added invitation status `expired` ([#5335](https://github.com/clerk/javascript/pull/5335)) by [@danilofuchs](https://github.com/danilofuchs)
1460 |
1461 | - Refactoring code to remove @ts-ignore directives ([#5323](https://github.com/clerk/javascript/pull/5323)) by [@jacekradko](https://github.com/jacekradko)
1462 |
1463 | - Updated dependencies [[`725918d`](https://github.com/clerk/javascript/commit/725918df2e74cea15e9b748aaf103a52df8e8500), [`91d0f0b`](https://github.com/clerk/javascript/commit/91d0f0b0dccab7168ad4dc06c8629808938c235f), [`9572bf5`](https://github.com/clerk/javascript/commit/9572bf5bdfb7dc309ec8714989b98ab12174965b), [`39bbc51`](https://github.com/clerk/javascript/commit/39bbc5189a33dc6cebdc269ac2184dc4ffff2534), [`3dddcda`](https://github.com/clerk/javascript/commit/3dddcda191d8f8d6a9b02464f1f6374d3c6aacb9), [`7524943`](https://github.com/clerk/javascript/commit/7524943300d7e693d61cc1820b520abfadec1c64), [`150b5c8`](https://github.com/clerk/javascript/commit/150b5c89477abb0feab15e0a886179473f653cac), [`23c931e`](https://github.com/clerk/javascript/commit/23c931e9e95e6de992549ad499b477aca9a9c344), [`730262f`](https://github.com/clerk/javascript/commit/730262f0f973923c8749b09078c80c2fc966a8ec), [`0b18bb1`](https://github.com/clerk/javascript/commit/0b18bb1fe6fa3ded97547bb6b4d2c73030aad329), [`021bc5f`](https://github.com/clerk/javascript/commit/021bc5f40044d34e49956ce3c9b61d833d815b42), [`1a61390`](https://github.com/clerk/javascript/commit/1a61390d3482bd4af58508b972ad89dea56fa224)]:
1464 | - @clerk/[email protected]
1465 | - @clerk/[email protected]
1466 |
1467 | ## 1.25.2
1468 |
1469 | ### Patch Changes
1470 |
1471 | - Change sampling rate of telemetry events to 0.1. ([#5297](https://github.com/clerk/javascript/pull/5297)) by [@panteliselef](https://github.com/panteliselef)
1472 |
1473 | - Updated dependencies [[`75879672c5805bfba1caca906ac0729497744164`](https://github.com/clerk/javascript/commit/75879672c5805bfba1caca906ac0729497744164), [`7ec95a7e59033600958aca4b86f3bcd5da947dec`](https://github.com/clerk/javascript/commit/7ec95a7e59033600958aca4b86f3bcd5da947dec), [`3c225d90227141dc62d955e76c7f8e0202524bc7`](https://github.com/clerk/javascript/commit/3c225d90227141dc62d955e76c7f8e0202524bc7), [`2a66c16af08573000bb619607346ac420cd4ce56`](https://github.com/clerk/javascript/commit/2a66c16af08573000bb619607346ac420cd4ce56)]:
1474 | - @clerk/[email protected]
1475 | - @clerk/[email protected]
1476 |
1477 | ## 1.25.1
1478 |
1479 | ### Patch Changes
1480 |
1481 | - Add .raw property to `Invitation`, `Organization`, `OrganizationInvitation` and `OrganizationMembership` ([#5291](https://github.com/clerk/javascript/pull/5291)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
1482 |
1483 | ## 1.25.0
1484 |
1485 | ### Minor Changes
1486 |
1487 | - Add waitlist entry types ([#5148](https://github.com/clerk/javascript/pull/5148)) by [@mackenzienolan](https://github.com/mackenzienolan)
1488 |
1489 | - `WaitlistEntryJSON`
1490 | - `WaitlistEntryWebhookEvent`
1491 |
1492 | Update `WebhookEvent` to include `WaitlistEntryWebhookEvent`
1493 |
1494 | ### Patch Changes
1495 |
1496 | - Update `CreateOrganizationInvitationParams.inviterUserId` type to optional ([#5255](https://github.com/clerk/javascript/pull/5255)) by [@LauraBeatris](https://github.com/LauraBeatris)
1497 |
1498 | - Bug fix: Properly remove `Authorization` header on requests that don't require a secret key. ([#5252](https://github.com/clerk/javascript/pull/5252)) by [@panteliselef](https://github.com/panteliselef)
1499 |
1500 | ## 1.24.3
1501 |
1502 | ### Patch Changes
1503 |
1504 | - Updated dependencies [[`28179323d9891bd13625e32c5682a3276e73cdae`](https://github.com/clerk/javascript/commit/28179323d9891bd13625e32c5682a3276e73cdae), [`7ae77b74326e378bf161e29886ee82e1556d9840`](https://github.com/clerk/javascript/commit/7ae77b74326e378bf161e29886ee82e1556d9840), [`c5c246ce91c01db9f1eaccbd354f646bcd24ec0a`](https://github.com/clerk/javascript/commit/c5c246ce91c01db9f1eaccbd354f646bcd24ec0a), [`bcbe5f6382ebcc70ef4fddb950d052bf6b7d693a`](https://github.com/clerk/javascript/commit/bcbe5f6382ebcc70ef4fddb950d052bf6b7d693a), [`382c30240f563e58bc4d4832557c6825da40ce7f`](https://github.com/clerk/javascript/commit/382c30240f563e58bc4d4832557c6825da40ce7f)]:
1505 | - @clerk/[email protected]
1506 | - @clerk/[email protected]
1507 |
1508 | ## 1.24.2
1509 |
1510 | ### Patch Changes
1511 |
1512 | - Updated dependencies [[`d76c4699990b8477745c2584b1b98d5c92f9ace6`](https://github.com/clerk/javascript/commit/d76c4699990b8477745c2584b1b98d5c92f9ace6), [`a9b0087fca3f427f65907b358d9b5bc0c95921d8`](https://github.com/clerk/javascript/commit/a9b0087fca3f427f65907b358d9b5bc0c95921d8), [`92d17d7c087470b262fa5407cb6720fe6b17d333`](https://github.com/clerk/javascript/commit/92d17d7c087470b262fa5407cb6720fe6b17d333)]:
1513 | - @clerk/[email protected]
1514 | - @clerk/[email protected]
1515 |
1516 | ## 1.24.1
1517 |
1518 | ### Patch Changes
1519 |
1520 | - Adds an internal `raw()` getter method to the `User` resource that returns the raw JSON payload of the request that instantiated the resource. ([#5130](https://github.com/clerk/javascript/pull/5130)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
1521 |
1522 | - Updated dependencies [[`dd2cbfe9f30358b6b298901bb52fa378b0acdca3`](https://github.com/clerk/javascript/commit/dd2cbfe9f30358b6b298901bb52fa378b0acdca3), [`570d8386f6aa596bf7bb1659bdddb8dd4d992b1d`](https://github.com/clerk/javascript/commit/570d8386f6aa596bf7bb1659bdddb8dd4d992b1d)]:
1523 | - @clerk/[email protected]
1524 | - @clerk/[email protected]
1525 |
1526 | ## 1.24.0
1527 |
1528 | ### Minor Changes
1529 |
1530 | - Add organizationId to GetOrganizationListParams ([#4882](https://github.com/clerk/javascript/pull/4882)) by [@jacekradko](https://github.com/jacekradko)
1531 |
1532 | - Deprecate usage of the `oauth_` prefix in `client.users.getUserOauthAccessToken()`. Going forward, please use the provider name without that prefix. Example: ([#5097](https://github.com/clerk/javascript/pull/5097)) by [@panteliselef](https://github.com/panteliselef)
1533 |
1534 | ```diff
1535 | - client.users.getUserOauthAccessToken('user_id', 'oauth_google')
1536 | + client.users.getUserOauthAccessToken('user_id', 'google')
1537 | ```
1538 |
1539 | ### Patch Changes
1540 |
1541 | - Adds types for organization domain webhook events ([#4819](https://github.com/clerk/javascript/pull/4819)) by [@ijxy](https://github.com/ijxy)
1542 |
1543 | - Updated dependencies [[`f41081c563ddd2afc05b837358e0de087ae0c895`](https://github.com/clerk/javascript/commit/f41081c563ddd2afc05b837358e0de087ae0c895), [`767ac85fe6ce0ee0594c923e9af701bb05f40a0b`](https://github.com/clerk/javascript/commit/767ac85fe6ce0ee0594c923e9af701bb05f40a0b), [`225b38c7187d31fc755155ea99834ca03894d36b`](https://github.com/clerk/javascript/commit/225b38c7187d31fc755155ea99834ca03894d36b), [`429f1bfe5f7a554ab1fdf265475ba6c8b3f78472`](https://github.com/clerk/javascript/commit/429f1bfe5f7a554ab1fdf265475ba6c8b3f78472)]:
1544 | - @clerk/[email protected]
1545 | - @clerk/[email protected]
1546 |
1547 | ## 1.23.11
1548 |
1549 | ### Patch Changes
1550 |
1551 | - Updated dependencies [[`d3152be7f01fbb5ca26aeddc2437021f4b7ecc83`](https://github.com/clerk/javascript/commit/d3152be7f01fbb5ca26aeddc2437021f4b7ecc83), [`f976349243da2b75023e59e802460e6f3592ebbd`](https://github.com/clerk/javascript/commit/f976349243da2b75023e59e802460e6f3592ebbd)]:
1552 | - @clerk/[email protected]
1553 | - @clerk/[email protected]
1554 |
1555 | ## 1.23.10
1556 |
1557 | ### Patch Changes
1558 |
1559 | - Updated dependencies [[`26225f2c31a22560f7ece2e02f1d0080b5b89520`](https://github.com/clerk/javascript/commit/26225f2c31a22560f7ece2e02f1d0080b5b89520), [`833693a6792b621e72162d70673e7bdfa84a69b6`](https://github.com/clerk/javascript/commit/833693a6792b621e72162d70673e7bdfa84a69b6)]:
1560 | - @clerk/[email protected]
1561 | - @clerk/[email protected]
1562 |
1563 | ## 1.23.9
1564 |
1565 | ### Patch Changes
1566 |
1567 | - Mark keyless onboarding as complete when stored keys match explicit keys ([#4971](https://github.com/clerk/javascript/pull/4971)) by [@panteliselef](https://github.com/panteliselef)
1568 |
1569 | - Updated dependencies [[`a309be354275b91a7b17d5a67e8ef6aa230a9935`](https://github.com/clerk/javascript/commit/a309be354275b91a7b17d5a67e8ef6aa230a9935), [`1345cb487970a7347351897e80dfb829d85c41ea`](https://github.com/clerk/javascript/commit/1345cb487970a7347351897e80dfb829d85c41ea)]:
1570 | - @clerk/[email protected]
1571 | - @clerk/[email protected]
1572 |
1573 | ## 1.23.8
1574 |
1575 | ### Patch Changes
1576 |
1577 | - Improve JSDoc comments to provide you with better IntelliSense information in your IDE ([#4994](https://github.com/clerk/javascript/pull/4994)) by [@LekoArts](https://github.com/LekoArts)
1578 |
1579 | - Updated dependencies [[`57c983fdc2b8d883623a2294daae0ac6c02c48f6`](https://github.com/clerk/javascript/commit/57c983fdc2b8d883623a2294daae0ac6c02c48f6), [`a26cf0ff10c76244975c454fdf6c615475d4bcd5`](https://github.com/clerk/javascript/commit/a26cf0ff10c76244975c454fdf6c615475d4bcd5)]:
1580 | - @clerk/[email protected]
1581 | - @clerk/[email protected]
1582 |
1583 | ## 1.23.7
1584 |
1585 | ### Patch Changes
1586 |
1587 | - Updated dependencies [[`2179690c10a61b117e82fdd566b34939f4d28bc1`](https://github.com/clerk/javascript/commit/2179690c10a61b117e82fdd566b34939f4d28bc1), [`bdb537a9902c0f0ae58ca1d4b7590d929f28fedb`](https://github.com/clerk/javascript/commit/bdb537a9902c0f0ae58ca1d4b7590d929f28fedb)]:
1588 | - @clerk/[email protected]
1589 | - @clerk/[email protected]
1590 |
1591 | ## 1.23.6
1592 |
1593 | ### Patch Changes
1594 |
1595 | - Add `orderBy` to `getOrganizationMembershipList` ([#4976](https://github.com/clerk/javascript/pull/4976)) by [@LauraBeatris](https://github.com/LauraBeatris)
1596 |
1597 | - Updated dependencies [[`f87ede848265d75ea1e880a3ab80c53a250f42cf`](https://github.com/clerk/javascript/commit/f87ede848265d75ea1e880a3ab80c53a250f42cf), [`6126cc98281bca96797fd8a55b6ec6aeda397e46`](https://github.com/clerk/javascript/commit/6126cc98281bca96797fd8a55b6ec6aeda397e46), [`6e096564a459db4eaf953e99e570905b10be6c84`](https://github.com/clerk/javascript/commit/6e096564a459db4eaf953e99e570905b10be6c84)]:
1598 | - @clerk/[email protected]
1599 | - @clerk/[email protected]
1600 |
1601 | ## 1.23.5
1602 |
1603 | ### Patch Changes
1604 |
1605 | - Updated dependencies [[`fe3e49f61acefe8d7f1992405f7cb415fea2e5c8`](https://github.com/clerk/javascript/commit/fe3e49f61acefe8d7f1992405f7cb415fea2e5c8), [`4427c4702f64d4f28f7564ce5889d41e260aa519`](https://github.com/clerk/javascript/commit/4427c4702f64d4f28f7564ce5889d41e260aa519)]:
1606 | - @clerk/[email protected]
1607 | - @clerk/[email protected]
1608 |
1609 | ## 1.23.4
1610 |
1611 | ### Patch Changes
1612 |
1613 | - Updated dependencies [[`418ec5c62c4eb600566faab07684c068a29007e3`](https://github.com/clerk/javascript/commit/418ec5c62c4eb600566faab07684c068a29007e3)]:
1614 | - @clerk/[email protected]
1615 | - @clerk/[email protected]
1616 |
1617 | ## 1.23.3
1618 |
1619 | ### Patch Changes
1620 |
1621 | - Updated dependencies [[`9eef7713212378351e8e01628611eaa18de250e8`](https://github.com/clerk/javascript/commit/9eef7713212378351e8e01628611eaa18de250e8)]:
1622 | - @clerk/[email protected]
1623 |
1624 | ## 1.23.2
1625 |
1626 | ### Patch Changes
1627 |
1628 | - Updated dependencies [[`7ffc99b48977b9f6c74c0c71c500b60cb8aba65e`](https://github.com/clerk/javascript/commit/7ffc99b48977b9f6c74c0c71c500b60cb8aba65e)]:
1629 | - @clerk/[email protected]
1630 | - @clerk/[email protected]
1631 |
1632 | ## 1.23.1
1633 |
1634 | ### Patch Changes
1635 |
1636 | - Updated dependencies [[`4af35380f18d1d06c15ad1f5745c2d5a1ab1c37d`](https://github.com/clerk/javascript/commit/4af35380f18d1d06c15ad1f5745c2d5a1ab1c37d), [`aa48b1f9e890b2402e9d05989a4820141076f7bf`](https://github.com/clerk/javascript/commit/aa48b1f9e890b2402e9d05989a4820141076f7bf), [`53bd34fff38b17498edf66cc4bc2d42d707f28dc`](https://github.com/clerk/javascript/commit/53bd34fff38b17498edf66cc4bc2d42d707f28dc)]:
1637 | - @clerk/[email protected]
1638 | - @clerk/[email protected]
1639 |
1640 | ## 1.23.0
1641 |
1642 | ### Minor Changes
1643 |
1644 | - `authenticateRequest()` will now set a refreshsed session cookie on the response when an expired session token is refreshed via the Clerk API. ([#4884](https://github.com/clerk/javascript/pull/4884)) by [@brkalow](https://github.com/brkalow)
1645 |
1646 | ### Patch Changes
1647 |
1648 | - Add property `query` to `GetInvitationListParams` to allow filtering based on `email_address` or `id`. ([#4804](https://github.com/clerk/javascript/pull/4804)) by [@effektsvk](https://github.com/effektsvk)
1649 |
1650 | - Updated dependencies [[`fd7a5be73db3acaa7daeb9b15af73c2ce99d03a6`](https://github.com/clerk/javascript/commit/fd7a5be73db3acaa7daeb9b15af73c2ce99d03a6)]:
1651 | - @clerk/[email protected]
1652 | - @clerk/[email protected]
1653 |
1654 | ## 1.22.0
1655 |
1656 | ### Minor Changes
1657 |
1658 | - Update Session resource with new properties to align with OpenAPI spec ([#4869](https://github.com/clerk/javascript/pull/4869)) by [@octoper](https://github.com/octoper)
1659 |
1660 | - `lastActiveOrganizationId`
1661 | - `latestActivity`
1662 | - `actor`
1663 |
1664 | ### Patch Changes
1665 |
1666 | - Fixes an issue with the satellite sync flow for development instances. ([#4864](https://github.com/clerk/javascript/pull/4864)) by [@BRKalow](https://github.com/BRKalow)
1667 |
1668 | - Upgrading [email protected] and [email protected] ([#4881](https://github.com/clerk/javascript/pull/4881)) by [@renovate](https://github.com/apps/renovate)
1669 |
1670 | ## 1.21.6
1671 |
1672 | ### Patch Changes
1673 |
1674 | - 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)
1675 |
1676 | 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
1677 |
1678 | - Updated dependencies [[`44cab6038af0a4d23869b3b292ece742fbbc4d85`](https://github.com/clerk/javascript/commit/44cab6038af0a4d23869b3b292ece742fbbc4d85)]:
1679 | - @clerk/[email protected]
1680 | - @clerk/[email protected]
1681 |
1682 | ## 1.21.5
1683 |
1684 | ### Patch Changes
1685 |
1686 | - Updated dependencies [[`80e1117631d35834705119a79cdcf9e0ed423fdd`](https://github.com/clerk/javascript/commit/80e1117631d35834705119a79cdcf9e0ed423fdd)]:
1687 | - @clerk/[email protected]
1688 | - @clerk/[email protected]
1689 |
1690 | ## 1.21.4
1691 |
1692 | ### Patch Changes
1693 |
1694 | - Allow to create and update SAML connections with organization IDs. ([#4792](https://github.com/clerk/javascript/pull/4792)) by [@LauraBeatris](https://github.com/LauraBeatris)
1695 |
1696 | When users sign in or up using an organization's SAML connection, they're automatically added as members of that organization. For more information, refer to our docs: https://clerk.com/docs/organizations/manage-sso
1697 |
1698 | - Updated dependencies [[`c9da04636ffe1ba804a1ce5e5b79027d3a2344d2`](https://github.com/clerk/javascript/commit/c9da04636ffe1ba804a1ce5e5b79027d3a2344d2)]:
1699 | - @clerk/[email protected]
1700 | - @clerk/[email protected]
1701 |
1702 | ## 1.21.3
1703 |
1704 | ### Patch Changes
1705 |
1706 | - Updated dependencies [[`84ccb0049041534f111be65f7c7d4d6120069446`](https://github.com/clerk/javascript/commit/84ccb0049041534f111be65f7c7d4d6120069446)]:
1707 | - @clerk/[email protected]
1708 |
1709 | ## 1.21.2
1710 |
1711 | ### Patch Changes
1712 |
1713 | - Updated dependencies [[`aeafa7c5efd50c893d088ac99199d7eaecc04025`](https://github.com/clerk/javascript/commit/aeafa7c5efd50c893d088ac99199d7eaecc04025), [`acd9326ef2d6942b981b3ee59c4b20ddd303323d`](https://github.com/clerk/javascript/commit/acd9326ef2d6942b981b3ee59c4b20ddd303323d)]:
1714 | - @clerk/[email protected]
1715 | - @clerk/[email protected]
1716 |
1717 | ## 1.21.1
1718 |
1719 | ### Patch Changes
1720 |
1721 | - Add property `api_keys_url` in the `AccountlessApplication` class ([#4755](https://github.com/clerk/javascript/pull/4755)) by [@panteliselef](https://github.com/panteliselef)
1722 |
1723 | - Updated dependencies [[`66ad299e4b6496ea4a93799de0f1ecfad920ddad`](https://github.com/clerk/javascript/commit/66ad299e4b6496ea4a93799de0f1ecfad920ddad), [`dd3fdc7b2a96ddb90b33c6f1cefb055a60f99a9d`](https://github.com/clerk/javascript/commit/dd3fdc7b2a96ddb90b33c6f1cefb055a60f99a9d), [`e1748582d0c89462f48a482a7805871b7065fa19`](https://github.com/clerk/javascript/commit/e1748582d0c89462f48a482a7805871b7065fa19), [`7f7edcaa8228c26d19e9081979100ada7e982095`](https://github.com/clerk/javascript/commit/7f7edcaa8228c26d19e9081979100ada7e982095), [`dd3fdc7b2a96ddb90b33c6f1cefb055a60f99a9d`](https://github.com/clerk/javascript/commit/dd3fdc7b2a96ddb90b33c6f1cefb055a60f99a9d)]:
1724 | - @clerk/[email protected]
1725 | - @clerk/[email protected]
1726 |
1727 | ## 1.21.0
1728 |
1729 | ### Minor Changes
1730 |
1731 | - Switching to use ^ for semver ranges of internal @clerk/ production dependencies. ([#4664](https://github.com/clerk/javascript/pull/4664)) by [@jacekradko](https://github.com/jacekradko)
1732 |
1733 | ### Patch Changes
1734 |
1735 | - Updated dependencies [[`ffa631d2480cfe77bf08c61b1302ace308e5b630`](https://github.com/clerk/javascript/commit/ffa631d2480cfe77bf08c61b1302ace308e5b630)]:
1736 | - @clerk/[email protected]
1737 |
1738 | ## 1.20.3
1739 |
1740 | ### Patch Changes
1741 |
1742 | - Updated dependencies [[`cd72a27a75863dfd94b0a00ed5b2d03231556bc0`](https://github.com/clerk/javascript/commit/cd72a27a75863dfd94b0a00ed5b2d03231556bc0)]:
1743 | - @clerk/[email protected]
1744 | - @clerk/[email protected]
1745 |
1746 | ## 1.20.2
1747 |
1748 | ### Patch Changes
1749 |
1750 | - Add missing `reservedForSecondFactor` property to `CreatePhoneNumberParams` and `UpdatePhoneNumberParams` types. ([#4730](https://github.com/clerk/javascript/pull/4730)) by [@tmoran-stenoa](https://github.com/tmoran-stenoa)
1751 |
1752 | - Updated dependencies [[`1b86a1da34ce4bc309f69980ac13a691a0a633c2`](https://github.com/clerk/javascript/commit/1b86a1da34ce4bc309f69980ac13a691a0a633c2)]:
1753 | - @clerk/[email protected]
1754 | - @clerk/[email protected]
1755 |
1756 | ## 1.20.1
1757 |
1758 | ### Patch Changes
1759 |
1760 | - Updated dependencies [[`4cb22548da81dd8b186a6ef1cf120aea99c85c62`](https://github.com/clerk/javascript/commit/4cb22548da81dd8b186a6ef1cf120aea99c85c62)]:
1761 | - @clerk/[email protected]
1762 |
1763 | ## 1.20.0
1764 |
1765 | ### Minor Changes
1766 |
1767 | - New **experimental** API: `AccountlessApplicationAPI` ([#4602](https://github.com/clerk/javascript/pull/4602)) by [@panteliselef](https://github.com/panteliselef)
1768 |
1769 | Inside `clerkClient` you can activate this new API through `__experimental_accountlessApplications`. It allows you to generate an "accountless" application and the API returns the publishable key, secret key, and an URL as a response. The URL allows a user to claim this application with their account. Hence the name "accountless" because in its initial state the application is not attached to any account yet.
1770 |
1771 | ### Patch Changes
1772 |
1773 | - Updated dependencies [[`550c7e9851329688e37be29b83ea0c3b12482af7`](https://github.com/clerk/javascript/commit/550c7e9851329688e37be29b83ea0c3b12482af7), [`3f640805d2a4e1616aafa56f6848d6657911bb99`](https://github.com/clerk/javascript/commit/3f640805d2a4e1616aafa56f6848d6657911bb99)]:
1774 | - @clerk/[email protected]
1775 | - @clerk/[email protected]
1776 |
1777 | ## 1.19.2
1778 |
1779 | ### Patch Changes
1780 |
1781 | - Updated dependencies [[`0bc3ccc5bd4a93121bb7e7d6a32271af9c31f8c3`](https://github.com/clerk/javascript/commit/0bc3ccc5bd4a93121bb7e7d6a32271af9c31f8c3), [`0bc3ccc5bd4a93121bb7e7d6a32271af9c31f8c3`](https://github.com/clerk/javascript/commit/0bc3ccc5bd4a93121bb7e7d6a32271af9c31f8c3)]:
1782 | - @clerk/[email protected]
1783 | - @clerk/[email protected]
1784 |
1785 | ## 1.19.1
1786 |
1787 | ### Patch Changes
1788 |
1789 | - Updated dependencies [[`4e5e7f463c12893a21cb3b5f9317fc3f2945879b`](https://github.com/clerk/javascript/commit/4e5e7f463c12893a21cb3b5f9317fc3f2945879b)]:
1790 | - @clerk/[email protected]
1791 | - @clerk/[email protected]
1792 |
1793 | ## 1.19.0
1794 |
1795 | ### Minor Changes
1796 |
1797 | - Allow creating organizations without an initial owner to facilitate B2B onboarding flows ([#4670](https://github.com/clerk/javascript/pull/4670)) by [@LauraBeatris](https://github.com/LauraBeatris)
1798 |
1799 | ### Patch Changes
1800 |
1801 | - Updated dependencies [[`8ee5d84995fa17532491ff96efac5738c9bcd9ef`](https://github.com/clerk/javascript/commit/8ee5d84995fa17532491ff96efac5738c9bcd9ef), [`09fedd1df155d30cc055ce701b133aa6470e9b47`](https://github.com/clerk/javascript/commit/09fedd1df155d30cc055ce701b133aa6470e9b47), [`235eaae4c3c9400492fca47d20a47c7081041565`](https://github.com/clerk/javascript/commit/235eaae4c3c9400492fca47d20a47c7081041565)]:
1802 | - @clerk/[email protected]
1803 | - @clerk/[email protected]
1804 |
1805 | ## 1.18.1
1806 |
1807 | ### Patch Changes
1808 |
1809 | - Update the supported API version to `2024-10-01` that includes the following changes ([#4596](https://github.com/clerk/javascript/pull/4596)) by [@Nikpolik](https://github.com/Nikpolik)
1810 |
1811 | No changes affecting the Backend API have been made in this version.
1812 |
1813 | Read more in the [API Version docs](https://clerk.com/docs/backend-requests/versioning/available-versions#2024-10-01)
1814 |
1815 | - Updated dependencies [[`8a28d1f403309f692d9332704f07effbf39d056d`](https://github.com/clerk/javascript/commit/8a28d1f403309f692d9332704f07effbf39d056d)]:
1816 | - @clerk/[email protected]
1817 | - @clerk/[email protected]
1818 |
1819 | ## 1.18.0
1820 |
1821 | ### Minor Changes
1822 |
1823 | - Update AuthObject property from `__experimental_factorVerificationAge` to `factorVerificationAge`. ([#4536](https://github.com/clerk/javascript/pull/4536)) by [@panteliselef](https://github.com/panteliselef)
1824 |
1825 | Also replaces the following APIs:
1826 |
1827 | - `__experimental_reverificationError` -> `__reverificationError`
1828 | - `__experimental_reverificationErrorResponse` -> `reverificationErrorResponse`
1829 |
1830 | ### Patch Changes
1831 |
1832 | - Updated dependencies [[`fe9e147e366153d664af7fc325655ecb299a1f9d`](https://github.com/clerk/javascript/commit/fe9e147e366153d664af7fc325655ecb299a1f9d), [`fe9e147e366153d664af7fc325655ecb299a1f9d`](https://github.com/clerk/javascript/commit/fe9e147e366153d664af7fc325655ecb299a1f9d), [`d84d7e31235c5c7da3415981dc76db4473a71a39`](https://github.com/clerk/javascript/commit/d84d7e31235c5c7da3415981dc76db4473a71a39), [`dce4f7ffca7248c0500f0ec9a978672b1f2fad69`](https://github.com/clerk/javascript/commit/dce4f7ffca7248c0500f0ec9a978672b1f2fad69)]:
1833 | - @clerk/[email protected]
1834 | - @clerk/[email protected]
1835 |
1836 | ## 1.17.2
1837 |
1838 | ### Patch Changes
1839 |
1840 | - Updated dependencies [[`c70994b5b6f92a6550dfe37547f01bbfa810c223`](https://github.com/clerk/javascript/commit/c70994b5b6f92a6550dfe37547f01bbfa810c223), [`7623a99594e7329200b6b374e483152d7679ce66`](https://github.com/clerk/javascript/commit/7623a99594e7329200b6b374e483152d7679ce66)]:
1841 | - @clerk/[email protected]
1842 | - @clerk/[email protected]
1843 |
1844 | ## 1.17.1
1845 |
1846 | ### Patch Changes
1847 |
1848 | - Updated dependencies [[`e47eb5882a7fd4a8dee25933c6644790d6ea3407`](https://github.com/clerk/javascript/commit/e47eb5882a7fd4a8dee25933c6644790d6ea3407), [`273d16cb0665d4d960838cb294dc356f41814745`](https://github.com/clerk/javascript/commit/273d16cb0665d4d960838cb294dc356f41814745), [`6b0961765e1f3d09679be4b163fa13ac7dd97191`](https://github.com/clerk/javascript/commit/6b0961765e1f3d09679be4b163fa13ac7dd97191)]:
1849 | - @clerk/[email protected]
1850 | - @clerk/[email protected]
1851 |
1852 | ## 1.17.0
1853 |
1854 | ### Minor Changes
1855 |
1856 | - Rename `reverificationMismatch` to `reverificationError`. ([#4582](https://github.com/clerk/javascript/pull/4582)) by [@panteliselef](https://github.com/panteliselef)
1857 |
1858 | ### Patch Changes
1859 |
1860 | - Updated dependencies [[`536fa996ff84a545678a3036b28409824d1c00dd`](https://github.com/clerk/javascript/commit/536fa996ff84a545678a3036b28409824d1c00dd), [`b28c5e8bc44885bf6b1533df48e872ba90c387da`](https://github.com/clerk/javascript/commit/b28c5e8bc44885bf6b1533df48e872ba90c387da)]:
1861 | - @clerk/[email protected]
1862 |
1863 | ## 1.16.4
1864 |
1865 | ### Patch Changes
1866 |
1867 | - Updated dependencies [[`46faeb6f59b19c963fb137c858347525b1cd9e19`](https://github.com/clerk/javascript/commit/46faeb6f59b19c963fb137c858347525b1cd9e19), [`ea6c52dd751abe38b350ee07f148652c24125e22`](https://github.com/clerk/javascript/commit/ea6c52dd751abe38b350ee07f148652c24125e22)]:
1868 | - @clerk/[email protected]
1869 | - @clerk/[email protected]
1870 |
1871 | ## 1.16.3
1872 |
1873 | ### Patch Changes
1874 |
1875 | - Updated dependencies [[`1c0b5001f7f975a2f3f54ad692526ecf7257847e`](https://github.com/clerk/javascript/commit/1c0b5001f7f975a2f3f54ad692526ecf7257847e), [`6217a3f7c94311d49f873214bd406961e0b8d6f7`](https://github.com/clerk/javascript/commit/6217a3f7c94311d49f873214bd406961e0b8d6f7), [`1783025cdb94c447028704c2121fa0b8af785904`](https://github.com/clerk/javascript/commit/1783025cdb94c447028704c2121fa0b8af785904)]:
1876 | - @clerk/[email protected]
1877 | - @clerk/[email protected]
1878 |
1879 | ## 1.16.2
1880 |
1881 | ### Patch Changes
1882 |
1883 | - Fixes satellite syncing when both the satellite and the primary apps use server-side enabled frameworks like NextJS ([#4516](https://github.com/clerk/javascript/pull/4516)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
1884 |
1885 | ## 1.16.1
1886 |
1887 | ### Patch Changes
1888 |
1889 | - Updated dependencies [[`7dbad4c5abd226d7b10941a626ead5d85b1a3f24`](https://github.com/clerk/javascript/commit/7dbad4c5abd226d7b10941a626ead5d85b1a3f24)]:
1890 | - @clerk/[email protected]
1891 | - @clerk/[email protected]
1892 |
1893 | ## 1.16.0
1894 |
1895 | ### Minor Changes
1896 |
1897 | - Send API version through request headers. ([#4458](https://github.com/clerk/javascript/pull/4458)) by [@jacekradko](https://github.com/jacekradko)
1898 |
1899 | - Introduce experimental verification helpers exported from `@clerk/backend/internal` ([#4480](https://github.com/clerk/javascript/pull/4480)) by [@panteliselef](https://github.com/panteliselef)
1900 |
1901 | - \_\_experimental_reverificationMismatch
1902 | - \_\_experimental_reverificationMismatchResponse
1903 |
1904 | ### Patch Changes
1905 |
1906 | - Updated dependencies [[`5a21de1f46df3642828dc27e4862263c9858da2b`](https://github.com/clerk/javascript/commit/5a21de1f46df3642828dc27e4862263c9858da2b), [`f7472e22877f62fc7f3c8d3efe409ff2276fb4a3`](https://github.com/clerk/javascript/commit/f7472e22877f62fc7f3c8d3efe409ff2276fb4a3), [`e199037b8f484abdeeb9fc24455a1b4b8c31c8dd`](https://github.com/clerk/javascript/commit/e199037b8f484abdeeb9fc24455a1b4b8c31c8dd), [`886e294a8d8c54b39cd5bda88d46b89eace3861e`](https://github.com/clerk/javascript/commit/886e294a8d8c54b39cd5bda88d46b89eace3861e), [`0e443ad7c76643420b50e5b169193e03f6ef79f9`](https://github.com/clerk/javascript/commit/0e443ad7c76643420b50e5b169193e03f6ef79f9), [`cc24c8145f1eea7fb91550f2c3e0bac3993e4320`](https://github.com/clerk/javascript/commit/cc24c8145f1eea7fb91550f2c3e0bac3993e4320)]:
1907 | - @clerk/[email protected]
1908 | - @clerk/[email protected]
1909 |
1910 | ## 1.15.7
1911 |
1912 | ### Patch Changes
1913 |
1914 | - Updated dependencies [[`8a04ae47b8305f994b348301fd8134d5baf02943`](https://github.com/clerk/javascript/commit/8a04ae47b8305f994b348301fd8134d5baf02943)]:
1915 | - @clerk/[email protected]
1916 |
1917 | ## 1.15.6
1918 |
1919 | ### Patch Changes
1920 |
1921 | - Updated dependencies [[`d74a6a7c0f291104c6bba722a8c432814d7b336e`](https://github.com/clerk/javascript/commit/d74a6a7c0f291104c6bba722a8c432814d7b336e), [`1a0c8fe665869e732d3c800bde0f5219fce54301`](https://github.com/clerk/javascript/commit/1a0c8fe665869e732d3c800bde0f5219fce54301), [`0800fc3f1f4e1b6a1d13f5c02557001a283af6e8`](https://github.com/clerk/javascript/commit/0800fc3f1f4e1b6a1d13f5c02557001a283af6e8)]:
1922 | - @clerk/[email protected]
1923 | - @clerk/[email protected]
1924 |
1925 | ## 1.15.5
1926 |
1927 | ### Patch Changes
1928 |
1929 | - Updated dependencies [[`a7726cc12a824b278f6d2a37cb1901c38c5f70dc`](https://github.com/clerk/javascript/commit/a7726cc12a824b278f6d2a37cb1901c38c5f70dc)]:
1930 | - @clerk/[email protected]
1931 |
1932 | ## 1.15.2
1933 |
1934 | ### Patch Changes
1935 |
1936 | - Updated dependencies [[`f875463da`](https://github.com/clerk/javascript/commit/f875463da9692f2d173b6d5388743cf720750ae3), [`5be7ca9fd`](https://github.com/clerk/javascript/commit/5be7ca9fd239c937cc88e20ce8f5bfc9f3b84f22), [`08c5a2add`](https://github.com/clerk/javascript/commit/08c5a2add6872c76e62fc0df06db723e3728452e), [`434b432f8`](https://github.com/clerk/javascript/commit/434b432f8c114825120eef0f2c278b8142ed1563)]:
1937 | - @clerk/[email protected]
1938 | - @clerk/[email protected]
1939 |
1940 | ## 1.15.1
1941 |
1942 | ### Patch Changes
1943 |
1944 | - Add the 'session-token-expired-refresh-unexpected-bapi-error' debug handshake reason. ([#4363](https://github.com/clerk/javascript/pull/4363)) by [@anagstef](https://github.com/anagstef)
1945 |
1946 | - Updated dependencies [[`3fdcdbf88`](https://github.com/clerk/javascript/commit/3fdcdbf88c38facf8b82563f634ec1b6604fd8e5)]:
1947 | - @clerk/[email protected]
1948 | - @clerk/[email protected]
1949 |
1950 | ## 1.15.0
1951 |
1952 | ### Minor Changes
1953 |
1954 | - - Added `legalAcceptedAt` on `User` ([#4367](https://github.com/clerk/javascript/pull/4367)) by [@octoper](https://github.com/octoper)
1955 |
1956 | - Added `legalAcceptedAt` and `skipLegalChecks` on `CreateUserParams` and `UpdateUserParams`
1957 | - Added `legal_accepted_at` on `UserJSON`
1958 |
1959 | ### Patch Changes
1960 |
1961 | - Updated dependencies [[`3b50b67bd`](https://github.com/clerk/javascript/commit/3b50b67bd40da33c9e36773aa05462717e9f44cc), [`3b50b67bd`](https://github.com/clerk/javascript/commit/3b50b67bd40da33c9e36773aa05462717e9f44cc)]:
1962 | - @clerk/[email protected]
1963 | - @clerk/[email protected]
1964 |
1965 | ## 1.14.1
1966 |
1967 | ### Patch Changes
1968 |
1969 | - Remove console error message from refresh token flow failures. ([#4351](https://github.com/clerk/javascript/pull/4351)) by [@anagstef](https://github.com/anagstef)
1970 |
1971 | ## 1.14.0
1972 |
1973 | ### Minor Changes
1974 |
1975 | - Updates `organizationPatterns` to take precedence over `personalAccountPatterns` in `organizationSyncOptions` ([#4320](https://github.com/clerk/javascript/pull/4320)) by [@izaaklauer](https://github.com/izaaklauer)
1976 |
1977 | - 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)
1978 |
1979 | ### Patch Changes
1980 |
1981 | - Updated dependencies [[`e81d45b72`](https://github.com/clerk/javascript/commit/e81d45b72c81403c7c206dac5454de1fef6bec57), [`752ce9bfa`](https://github.com/clerk/javascript/commit/752ce9bfa47a8eebd38cd272eeb58ae26fea3371), [`99cdf9b67`](https://github.com/clerk/javascript/commit/99cdf9b67d1e99e66cc73d8a5bfce1f1f8df1b83), [`ce40ff6f0`](https://github.com/clerk/javascript/commit/ce40ff6f0d3bc79e33375be6dd5e03f140a07000), [`2102052c0`](https://github.com/clerk/javascript/commit/2102052c017065ab511339870fcebaa6719f2702)]:
1982 | - @clerk/[email protected]
1983 | - @clerk/[email protected]
1984 |
1985 | ## 1.13.10
1986 |
1987 | ### Patch Changes
1988 |
1989 | - Updated dependencies [[`d64e54c40`](https://github.com/clerk/javascript/commit/d64e54c40c9cf001b25e45a1b8939c9f7e80c6d6), [`2ba2fd148`](https://github.com/clerk/javascript/commit/2ba2fd1483b7561d7df9a1952ead0ee15e422131)]:
1990 | - @clerk/[email protected]
1991 | - @clerk/[email protected]
1992 |
1993 | ## 1.13.9
1994 |
1995 | ### Patch Changes
1996 |
1997 | - Expose `permissions` field for `OrganizationMembership` resource ([#4310](https://github.com/clerk/javascript/pull/4310)) by [@dstaley](https://github.com/dstaley)
1998 |
1999 | - Introduces organizationSyncOptions option to clerkMiddleware, which syncs an active organization or personal account from a URL to the Clerk session. (https://github.com/clerk/javascript/pull/3977) by [@izaaklauer](https://github.com/izaaklauer)
2000 |
2001 | ## 1.13.8
2002 |
2003 | ### Patch Changes
2004 |
2005 | - Updated dependencies [[`fb932e5cf`](https://github.com/clerk/javascript/commit/fb932e5cf21315adf60bee0855b6bd5ee2ff9867)]:
2006 | - @clerk/[email protected]
2007 | - @clerk/[email protected]
2008 |
2009 | ## 1.13.7
2010 |
2011 | ### Patch Changes
2012 |
2013 | - Updated dependencies [[`f6fb8b53d`](https://github.com/clerk/javascript/commit/f6fb8b53d236863ad7eca576ee7a16cd33f3506b), [`4a8570590`](https://github.com/clerk/javascript/commit/4a857059059a02bb4f20893e08601e1e67babbed)]:
2014 | - @clerk/[email protected]
2015 | - @clerk/[email protected]
2016 |
2017 | ## 1.13.6
2018 |
2019 | ### Patch Changes
2020 |
2021 | - Add the 'session-token-expired-refresh-expired-session-token-missing-sid-claim' handshake reason for debugging purposes ([#4237](https://github.com/clerk/javascript/pull/4237)) by [@anagstef](https://github.com/anagstef)
2022 |
2023 | - Update `uploaderUserId` parameter on `updateOrganizationLogo` to be optional. ([#4236](https://github.com/clerk/javascript/pull/4236)) by [@izaaklauer](https://github.com/izaaklauer)
2024 |
2025 | - Handle "Cannot convert argument to a ByteString" errors ([#4244](https://github.com/clerk/javascript/pull/4244)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
2026 |
2027 | ## 1.13.5
2028 |
2029 | ### Patch Changes
2030 |
2031 | - 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)
2032 |
2033 | - Introduces the CRUD of organization domains under the `organizations` API. ([#4224](https://github.com/clerk/javascript/pull/4224)) by [@NicolasLopes7](https://github.com/NicolasLopes7)
2034 |
2035 | - Updated dependencies [[`4749ed4c5`](https://github.com/clerk/javascript/commit/4749ed4c55a5ba5810451b8d436aad0d49829050), [`f1f17eaab`](https://github.com/clerk/javascript/commit/f1f17eaabed0dc4b7de405fb77d85503cf75ad33), [`2e35ac538`](https://github.com/clerk/javascript/commit/2e35ac53885f8008779940d41d1e804fa77ebfa9)]:
2036 | - @clerk/[email protected]
2037 | - @clerk/[email protected]
2038 |
2039 | ## 1.13.4
2040 |
2041 | ### Patch Changes
2042 |
2043 | - Updated dependencies [[`c9063853e`](https://github.com/clerk/javascript/commit/c9063853e538a4010f5d4e522a3da5abc80098a4), [`19d3808d4`](https://github.com/clerk/javascript/commit/19d3808d4672234944226d6709ec51214e8d6e1d), [`737bcbb0f`](https://github.com/clerk/javascript/commit/737bcbb0ffb5e2dcadbb02e8fc718fe8825c5842)]:
2044 | - @clerk/[email protected]
2045 | - @clerk/[email protected]
2046 |
2047 | ## 1.13.3
2048 |
2049 | ### Patch Changes
2050 |
2051 | - Introduce `includeMembersCount` parameter to `getOrganization`, allowing to retrieve an organization with `membersCount`. ([#4196](https://github.com/clerk/javascript/pull/4196)) by [@LauraBeatris](https://github.com/LauraBeatris)
2052 |
2053 | - Improve debugging error reasons. ([#4205](https://github.com/clerk/javascript/pull/4205)) by [@anagstef](https://github.com/anagstef)
2054 |
2055 | - Drop the `__clerk_refresh` debugging query param and use only the `__clerk_hs_reason` param for all scenarios. ([#4213](https://github.com/clerk/javascript/pull/4213)) by [@anagstef](https://github.com/anagstef)
2056 |
2057 | - Introduce more refresh token error reasons. ([#4193](https://github.com/clerk/javascript/pull/4193)) by [@anagstef](https://github.com/anagstef)
2058 |
2059 | - Updated dependencies [[`cb32aaf59`](https://github.com/clerk/javascript/commit/cb32aaf59d38dcd12e959f542782f71a87adf9c1), [`2e5c550e4`](https://github.com/clerk/javascript/commit/2e5c550e4aec61150c2a17fdcd4a0e1273cb50e7), [`6275c242c`](https://github.com/clerk/javascript/commit/6275c242cd8bcb6f7766934059967e0fe775a0c1), [`f9faaf031`](https://github.com/clerk/javascript/commit/f9faaf03100baf679c78e6c24877fbf3b60be529)]:
2060 | - @clerk/[email protected]
2061 | - @clerk/[email protected]
2062 |
2063 | ## 1.13.2
2064 |
2065 | ### Patch Changes
2066 |
2067 | - Add the handshake reason as a query param for observability. ([#4184](https://github.com/clerk/javascript/pull/4184)) by [@anagstef](https://github.com/anagstef)
2068 |
2069 | ## 1.13.1
2070 |
2071 | ### Patch Changes
2072 |
2073 | - Updated dependencies [[`3743eb911`](https://github.com/clerk/javascript/commit/3743eb9114733f20ed56a863ab98fa9c363b6723)]:
2074 | - @clerk/[email protected]
2075 |
2076 | ## 1.13.0
2077 |
2078 | ### Minor Changes
2079 |
2080 | - Add new refresh token flow to reduce errors arising from too many redirects ([#4154](https://github.com/clerk/javascript/pull/4154)) by [@dstaley](https://github.com/dstaley)
2081 |
2082 | ## 1.12.0
2083 |
2084 | ### Minor Changes
2085 |
2086 | - Experimental support for `has()` with assurance. ([#4118](https://github.com/clerk/javascript/pull/4118)) by [@panteliselef](https://github.com/panteliselef)
2087 |
2088 | Example usage:
2089 |
2090 | ```ts
2091 | has({
2092 | __experimental_assurance: {
2093 | level: 'L2.secondFactor',
2094 | maxAge: 'A1.10min',
2095 | },
2096 | });
2097 | ```
2098 |
2099 | Created a shared utility called `createCheckAuthorization` exported from `@clerk/shared`
2100 |
2101 | ### Patch Changes
2102 |
2103 | - Add webhook event types for roles and permissions ([#4153](https://github.com/clerk/javascript/pull/4153)) by [@LauraBeatris](https://github.com/LauraBeatris)
2104 |
2105 | - Fix Chrome caching 307 redirects when a handshake is triggered. ([#4171](https://github.com/clerk/javascript/pull/4171)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
2106 |
2107 | - Updated dependencies [[`ba19be354`](https://github.com/clerk/javascript/commit/ba19be35461f0e5c76a58d11e4252a16781322c6), [`248142a6d`](https://github.com/clerk/javascript/commit/248142a6ded6ca937d0df7d628197f25228aadec), [`1189f71f8`](https://github.com/clerk/javascript/commit/1189f71f872f2683c12de5add5f154aeb953ca8d)]:
2108 | - @clerk/[email protected]
2109 | - @clerk/[email protected]
2110 |
2111 | ## 1.11.1
2112 |
2113 | ### Patch Changes
2114 |
2115 | - Updated dependencies [[`be3b119f8`](https://github.com/clerk/javascript/commit/be3b119f840d2ae74f4b75d717711d53ac0e5f54)]:
2116 | - @clerk/[email protected]
2117 |
2118 | ## 1.11.0
2119 |
2120 | ### Minor Changes
2121 |
2122 | - Bug fix: Introducing missing `deleteSelfEnabled` from User. ([#4139](https://github.com/clerk/javascript/pull/4139)) by [@panteliselef](https://github.com/panteliselef)
2123 |
2124 | ### Patch Changes
2125 |
2126 | - Update type of `__experimental_factorVerificationAge` to be `[number, number] | null`. ([#4135](https://github.com/clerk/javascript/pull/4135)) by [@panteliselef](https://github.com/panteliselef)
2127 |
2128 | - Updated dependencies [[`8c6909d46`](https://github.com/clerk/javascript/commit/8c6909d46328c943f1d464a28f1a324a27d0f3f1)]:
2129 | - @clerk/[email protected]
2130 | - @clerk/[email protected]
2131 |
2132 | ## 1.10.0
2133 |
2134 | ### Minor Changes
2135 |
2136 | - 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)
2137 |
2138 | ### Server side
2139 |
2140 | This can be applied to any helper that returns the auth object
2141 |
2142 | **Nextjs example**
2143 |
2144 | ```ts
2145 | auth().__experimental_factorVerificationAge;
2146 | ```
2147 |
2148 | ### Client side
2149 |
2150 | **React example**
2151 |
2152 | ```ts
2153 | const { session } = useSession();
2154 | session?.__experimental_factorVerificationAge;
2155 | ```
2156 |
2157 | ### Patch Changes
2158 |
2159 | - Updated dependencies [[`c63a5adf0`](https://github.com/clerk/javascript/commit/c63a5adf0ba4b99252146f168318f51b709bb5dd), [`8823c21a2`](https://github.com/clerk/javascript/commit/8823c21a26bc81cbc3ed007908b1a9ea474bd343), [`95ac67a14`](https://github.com/clerk/javascript/commit/95ac67a143c263bef0c1f589728566ab8f95768d), [`a0cb062fa`](https://github.com/clerk/javascript/commit/a0cb062faa4d23bef7a577e5cc486f4c5efe6bfa), [`746b4ed5e`](https://github.com/clerk/javascript/commit/746b4ed5e2007505d5850a2a728484809474d7bf)]:
2160 | - @clerk/[email protected]
2161 | - @clerk/[email protected]
2162 |
2163 | ## 1.9.2
2164 |
2165 | ### Patch Changes
2166 |
2167 | - Add url property to the Invitation object ([#4076](https://github.com/clerk/javascript/pull/4076)) by [@issuedat](https://github.com/issuedat)
2168 |
2169 | - Updated dependencies [[`8a3b9f079`](https://github.com/clerk/javascript/commit/8a3b9f0793484b32dd609a5c80a194e62151d6ea), [`e95c28196`](https://github.com/clerk/javascript/commit/e95c2819675cea7963f2404e5f71f37ebed8d5e0)]:
2170 | - @clerk/[email protected]
2171 | - @clerk/[email protected]
2172 |
2173 | ## 1.9.1
2174 |
2175 | ### Patch Changes
2176 |
2177 | - Updated dependencies [[`82593173a`](https://github.com/clerk/javascript/commit/82593173aafbf6646e12c5779627cdcb138a1f27), [`afad9af89`](https://github.com/clerk/javascript/commit/afad9af893984a19d7284f0ad3b36e7891d0d733)]:
2178 | - @clerk/[email protected]
2179 | - @clerk/[email protected]
2180 |
2181 | ## 1.9.0
2182 |
2183 | ### Minor Changes
2184 |
2185 | - Add missing `deleteSelfEnabled` property in `UpdateUserParams`. ([#4044](https://github.com/clerk/javascript/pull/4044)) by [@panteliselef](https://github.com/panteliselef)
2186 |
2187 | ### Patch Changes
2188 |
2189 | - Fix error from duplicate leading slashes in URL path on Cloudflare Pages ([#3982](https://github.com/clerk/javascript/pull/3982)) by [@mlafeldt](https://github.com/mlafeldt)
2190 |
2191 | - Add missing `slug` property in TS type declaration for SMS webhook events ([#4024](https://github.com/clerk/javascript/pull/4024)) by [@tmoran-stenoa](https://github.com/tmoran-stenoa)
2192 |
2193 | - Tidy up and improve README ([#4053](https://github.com/clerk/javascript/pull/4053)) by [@LekoArts](https://github.com/LekoArts)
2194 |
2195 | - Updated dependencies [[`58e6754ad`](https://github.com/clerk/javascript/commit/58e6754ad9f9a1244b023ce1f5e5f2c1c4eb20e7), [`13693018f`](https://github.com/clerk/javascript/commit/13693018f4f7ac5d224698aa730e20960896f68c), [`3aa63dc5a`](https://github.com/clerk/javascript/commit/3aa63dc5a48161cfe92d94093ef0c32efd401342), [`3304dcc0b`](https://github.com/clerk/javascript/commit/3304dcc0bc93a92a7f729f585c60ff91d2ae04f6)]:
2196 | - @clerk/[email protected]
2197 | - @clerk/[email protected]
2198 |
2199 | ## 1.8.3
2200 |
2201 | ### Patch Changes
2202 |
2203 | - Updated dependencies [[`c1389492d`](https://github.com/clerk/javascript/commit/c1389492d8b6a9292ab04889bf776c0f45e66845)]:
2204 | - @clerk/[email protected]
2205 | - @clerk/[email protected]
2206 |
2207 | ## 1.8.2
2208 |
2209 | ### Patch Changes
2210 |
2211 | - Updated dependencies [[`0158c774a`](https://github.com/clerk/javascript/commit/0158c774af2243a2cd13b55c4d6fae877178c961), [`8be1a7abc`](https://github.com/clerk/javascript/commit/8be1a7abc8849d7d59552011bd6b25bc917d51f5)]:
2212 | - @clerk/[email protected]
2213 | - @clerk/[email protected]
2214 |
2215 | ## 1.8.1
2216 |
2217 | ### Patch Changes
2218 |
2219 | - Updated dependencies [[`247b3fd75`](https://github.com/clerk/javascript/commit/247b3fd75042365dc9f950db056b76f9fadfdcf6)]:
2220 | - @clerk/[email protected]
2221 | - @clerk/[email protected]
2222 |
2223 | ## 1.8.0
2224 |
2225 | ### Minor Changes
2226 |
2227 | - Add `deleteUserProfileImage` method to the UserAPI class. ([#3991](https://github.com/clerk/javascript/pull/3991)) by [@octoper](https://github.com/octoper)
2228 |
2229 | ## 1.7.0
2230 |
2231 | ### Minor Changes
2232 |
2233 | - Adds `awscognito` to backend `PasswordHasher` type ([#3943](https://github.com/clerk/javascript/pull/3943)) by [@thiskevinwang](https://github.com/thiskevinwang)
2234 |
2235 | ### Patch Changes
2236 |
2237 | - Updated dependencies [[`dc0e1c33d`](https://github.com/clerk/javascript/commit/dc0e1c33d6844b028cb1ee11c3359b886d609f3c)]:
2238 | - @clerk/[email protected]
2239 | - @clerk/[email protected]
2240 |
2241 | ## 1.6.3
2242 |
2243 | ### Patch Changes
2244 |
2245 | - Updated dependencies [[`7e0ced3da`](https://github.com/clerk/javascript/commit/7e0ced3da94f41056bc4445d163d3b615afb6ab1), [`b6f0613dc`](https://github.com/clerk/javascript/commit/b6f0613dc9d8b0bab41cfabbaa8621b126e3bdf5)]:
2246 | - @clerk/[email protected]
2247 | - @clerk/[email protected]
2248 |
2249 | ## 1.6.2
2250 |
2251 | ### Patch Changes
2252 |
2253 | - Updated dependencies [[`59d5f19d3`](https://github.com/clerk/javascript/commit/59d5f19d333bf4a35c244886e93b4368e215225c), [`4e6c94e3f`](https://github.com/clerk/javascript/commit/4e6c94e3f4cc92cbba8bddcd2b90fcc9cfb83763)]:
2254 | - @clerk/[email protected]
2255 | - @clerk/[email protected]
2256 |
2257 | ## 1.6.1
2258 |
2259 | ### Patch Changes
2260 |
2261 | - Export the type `AuthObject`. You can now use it like so: ([#3844](https://github.com/clerk/javascript/pull/3844)) by [@kduprey](https://github.com/kduprey)
2262 |
2263 | ```ts
2264 | import type { AuthObject } from '@clerk/backend';
2265 | ```
2266 |
2267 | - Updated dependencies [[`9b2aeacb3`](https://github.com/clerk/javascript/commit/9b2aeacb32fff7c300bda458636a1cc81a42ee7b)]:
2268 | - @clerk/[email protected]
2269 | - @clerk/[email protected]
2270 |
2271 | ## 1.6.0
2272 |
2273 | ### Minor Changes
2274 |
2275 | - Add `createOrganizationsLimit` param in `@clerk/backend` method `User.updateUser()` ([#3823](https://github.com/clerk/javascript/pull/3823)) by [@NicolasLopes7](https://github.com/NicolasLopes7)
2276 |
2277 | Example:
2278 |
2279 | ```typescript
2280 | import { createClerkClient } from '@clerk/backend';
2281 |
2282 | const clerkClient = createClerkClient({...});
2283 | // Update user with createOrganizationsLimit equals 10
2284 | await clerkClient.users.updateUser('user_...', { createOrganizationsLimit: 10 })
2285 |
2286 | // Remove createOrganizationsLimit
2287 | await clerkClient.users.updateUser('user_...', { createOrganizationsLimit: 0 })
2288 | ```
2289 |
2290 | ### Patch Changes
2291 |
2292 | - Updated dependencies [[`7e94fcf0f`](https://github.com/clerk/javascript/commit/7e94fcf0fcbee8842a54f7931c45190370aa870d)]:
2293 | - @clerk/[email protected]
2294 | - @clerk/[email protected]
2295 |
2296 | ## 1.5.2
2297 |
2298 | ### Patch Changes
2299 |
2300 | - Updated dependencies [[`568186cad`](https://github.com/clerk/javascript/commit/568186cad29acaf0b084a9f86ccb9d29bd23fcf4), [`407195270`](https://github.com/clerk/javascript/commit/407195270ed8aab6eef18c64a4918e3870fef471)]:
2301 | - @clerk/[email protected]
2302 | - @clerk/[email protected]
2303 |
2304 | ## 1.5.1
2305 |
2306 | ### Patch Changes
2307 |
2308 | - Retry handshake in case of handshake cookie collision in order to support multiple apps on same-level subdomains ([#3848](https://github.com/clerk/javascript/pull/3848)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
2309 |
2310 | ## 1.5.0
2311 |
2312 | ### Minor Changes
2313 |
2314 | - Added a `locked` property to the User object in the SDK ([#3748](https://github.com/clerk/javascript/pull/3748)) by [@iamjameswalters](https://github.com/iamjameswalters)
2315 |
2316 | ### Patch Changes
2317 |
2318 | - Updated dependencies [[`aa06f3ba7`](https://github.com/clerk/javascript/commit/aa06f3ba7e725071c90d4a1d6840060236da3c23), [`80e647731`](https://github.com/clerk/javascript/commit/80e64773135865434cf0e6c220e287397aa07937)]:
2319 | - @clerk/[email protected]
2320 | - @clerk/[email protected]
2321 |
2322 | ## 1.4.3
2323 |
2324 | ### Patch Changes
2325 |
2326 | - Updated dependencies [[`b48689705`](https://github.com/clerk/javascript/commit/b48689705f9fc2251d2f24addec7a0d0b1da0fe1)]:
2327 | - @clerk/[email protected]
2328 | - @clerk/[email protected]
2329 |
2330 | ## 1.4.2
2331 |
2332 | ### Patch Changes
2333 |
2334 | - Fix `getToken` returning `null` when signing in. ([#3764](https://github.com/clerk/javascript/pull/3764)) by [@anagstef](https://github.com/anagstef)
2335 |
2336 | ## 1.4.1
2337 |
2338 | ### Patch Changes
2339 |
2340 | - Handle the scenario where FAPI returns unsuffixed cookies without throwing a handshake ([#3789](https://github.com/clerk/javascript/pull/3789)) by [@dimkl](https://github.com/dimkl)
2341 |
2342 | ## 1.4.0
2343 |
2344 | ### Minor Changes
2345 |
2346 | - Support reading / writing / removing suffixed/un-suffixed cookies from `@clerk/clerk-js` and `@clerk/backend`. by [@dimkl](https://github.com/dimkl)
2347 |
2348 | The `__session`, `__clerk_db_jwt` and `__client_uat` cookies will now include a suffix derived from the instance's publishakeKey. The cookie name suffixes are used to prevent cookie collisions, effectively enabling support for multiple Clerk applications running on the same domain.
2349 |
2350 | ### Patch Changes
2351 |
2352 | - Updated dependencies [[`b87f7b9e1`](https://github.com/clerk/javascript/commit/b87f7b9e163756fd43789bc7b7344d2eb24015ec), [`b2788f67b`](https://github.com/clerk/javascript/commit/b2788f67b75cce17af1a2f91a984bb826a5a42e1), [`86c75e50c`](https://github.com/clerk/javascript/commit/86c75e50cba9c4efb480672f1b8c6a6fff4ef477)]:
2353 | - @clerk/[email protected]
2354 | - @clerk/[email protected]
2355 |
2356 | ## 1.3.2
2357 |
2358 | ### Patch Changes
2359 |
2360 | - Updated dependencies [[`df7d856d5`](https://github.com/clerk/javascript/commit/df7d856d56bc3b1dcbdbf9155b4ef1b1ea5971f7)]:
2361 | - @clerk/[email protected]
2362 | - @clerk/[email protected]
2363 |
2364 | ## 1.3.1
2365 |
2366 | ### Patch Changes
2367 |
2368 | - Fixes a bug where Clerk's Handshake mechanism would not run when an application is rendered in an iframe. ([#3555](https://github.com/clerk/javascript/pull/3555)) by [@anagstef](https://github.com/anagstef)
2369 |
2370 | ## 1.3.0
2371 |
2372 | ### Minor Changes
2373 |
2374 | - Introduces dynamic keys from `clerkMiddleware`, allowing access by server-side helpers like `auth`. Keys such as `signUpUrl`, `signInUrl`, `publishableKey` and `secretKey` are securely encrypted using AES algorithm. ([#3525](https://github.com/clerk/javascript/pull/3525)) by [@LauraBeatris](https://github.com/LauraBeatris)
2375 |
2376 | - When providing `secretKey`, `CLERK_ENCRYPTION_KEY` is required as the encryption key. If `secretKey` is not provided, `CLERK_SECRET_KEY` is used by default.
2377 | - `clerkClient` from `@clerk/nextjs` should now be called as a function, and its singleton form is deprecated. This change allows the Clerk backend client to read keys from the current request, which is necessary to support dynamic keys.
2378 |
2379 | For more information, refer to the documentation: https://clerk.com/docs/references/nextjs/clerk-middleware#dynamic-keys
2380 |
2381 | ## 1.2.5
2382 |
2383 | ### Patch Changes
2384 |
2385 | - Updated dependencies [[`d6b5006c4`](https://github.com/clerk/javascript/commit/d6b5006c4cc1b6f07bb3a6832b4ec6e65ea15814)]:
2386 | - @clerk/[email protected]
2387 | - @clerk/[email protected]
2388 |
2389 | ## 1.2.4
2390 |
2391 | ### Patch Changes
2392 |
2393 | - Updated dependencies [[`1273b04ec`](https://github.com/clerk/javascript/commit/1273b04ecf1866b59ef59a74abe31dbcc726da2c)]:
2394 | - @clerk/[email protected]
2395 | - @clerk/[email protected]
2396 |
2397 | ## 1.2.3
2398 |
2399 | ### Patch Changes
2400 |
2401 | - Updated dependencies [[`4ec3f63e2`](https://github.com/clerk/javascript/commit/4ec3f63e26d8d3725a7ba9bbf988a7776fe893ff)]:
2402 | - @clerk/[email protected]
2403 |
2404 | ## 1.2.2
2405 |
2406 | ### Patch Changes
2407 |
2408 | - Set `@clerk/types` as a dependency for packages that had it as a dev dependency. ([#3450](https://github.com/clerk/javascript/pull/3450)) by [@desiprisg](https://github.com/desiprisg)
2409 |
2410 | - Updated dependencies [[`86a27f693`](https://github.com/clerk/javascript/commit/86a27f6933de50c99b6bc354bf87ff5c2cfcaf38), [`02bed2e00`](https://github.com/clerk/javascript/commit/02bed2e00d3e0a4e1bb1698b13267faf6aeb31b3), [`73e5d61e2`](https://github.com/clerk/javascript/commit/73e5d61e21ab3f77f3c8343bc63da0626466c7ac), [`b8e46328d`](https://github.com/clerk/javascript/commit/b8e46328da874859c4928f19f924219cd6520b11)]:
2411 | - @clerk/[email protected]
2412 | - @clerk/[email protected]
2413 |
2414 | ## 1.2.1
2415 |
2416 | ### Patch Changes
2417 |
2418 | - Updated dependencies [[`ff31f7255`](https://github.com/clerk/javascript/commit/ff31f725541d82caaa9c13cf42cf15f8ce3992f4), [`0e48fc210`](https://github.com/clerk/javascript/commit/0e48fc210cf0b5852052a21494a05f6e723101f5)]:
2419 | - @clerk/[email protected]
2420 |
2421 | ## 1.2.0
2422 |
2423 | ### Minor Changes
2424 |
2425 | - Consume and expose the 'saml_accounts' property of the user resource ([#3405](https://github.com/clerk/javascript/pull/3405)) by [@chanioxaris](https://github.com/chanioxaris)
2426 |
2427 | ### Patch Changes
2428 |
2429 | - Updated dependencies [[`456b06849`](https://github.com/clerk/javascript/commit/456b068493b8679e1772819eea24d49aa1bc6556)]:
2430 | - @clerk/[email protected]
2431 |
2432 | ## 1.1.5
2433 |
2434 | ### Patch Changes
2435 |
2436 | - Added missing phpass and bcrypt_sha256_django hashers to PasswordHasher type ([#3380](https://github.com/clerk/javascript/pull/3380)) by [@royanger](https://github.com/royanger)
2437 |
2438 | - Updated dependencies [[`ec84d51e7`](https://github.com/clerk/javascript/commit/ec84d51e705370273ffb82a0d7c94d90ba3de874)]:
2439 | - @clerk/[email protected]
2440 |
2441 | ## 1.1.4
2442 |
2443 | ### Patch Changes
2444 |
2445 | - Updated dependencies [[`b27ca8366`](https://github.com/clerk/javascript/commit/b27ca8366a1d6ec1d7ce4a5be5005f1b1b017c20)]:
2446 | - @clerk/[email protected]
2447 |
2448 | ## 1.1.3
2449 |
2450 | ### Patch Changes
2451 |
2452 | - Inherit verifyToken options from clerkClient. ([#3296](https://github.com/clerk/javascript/pull/3296)) by [@panteliselef](https://github.com/panteliselef)
2453 |
2454 | The below code now works as expected: (requires CLERK_SECRET_KEY env var to have been set)
2455 |
2456 | ```ts
2457 | import { clerkClient } from '@clerk/clerk-sdk-node';
2458 |
2459 | // Use the default settings from the already instantiated clerkClient
2460 | clerkClient.verifyToken(token);
2461 | // or provide overrides the options
2462 | clerkClient.verifyToken(token, {
2463 | secretKey: 'xxxx',
2464 | });
2465 | ```
2466 |
2467 | ## 1.1.2
2468 |
2469 | ### Patch Changes
2470 |
2471 | - Fix bug in JWKS cache logic that caused a race condition resulting in no JWK being available. ([#3321](https://github.com/clerk/javascript/pull/3321)) by [@BRKalow](https://github.com/BRKalow)
2472 |
2473 | - Pass `devBrowserToken` to `createRedirect()` to ensure methods from `auth()` that trigger redirects correctly pass the dev browser token for URL-based session syncing. ([#3334](https://github.com/clerk/javascript/pull/3334)) by [@BRKalow](https://github.com/BRKalow)
2474 |
2475 | - Updated dependencies [[`1662aaae9`](https://github.com/clerk/javascript/commit/1662aaae965fcf36b13dba6b148e096ab6a1cd83), [`f70c885f7`](https://github.com/clerk/javascript/commit/f70c885f798f7ff513f6687f87c8a56daf26fa05), [`f5804a225`](https://github.com/clerk/javascript/commit/f5804a225e9d67cd315700f0ced0ff17b8b14e53)]:
2476 | - @clerk/[email protected]
2477 |
2478 | ## 1.1.1
2479 |
2480 | ### Patch Changes
2481 |
2482 | - Fix the following `@clerk/backend` methods to populate their paginated responses: ([#3276](https://github.com/clerk/javascript/pull/3276)) by [@dimkl](https://github.com/dimkl)
2483 |
2484 | - `clerkClient.allowListIndentifiers.getAllowlistIdentifierList()`
2485 | - `clerkClient.clients.getClientList()`
2486 | - `clerkClient.invitations.getInvitationList`
2487 | - `clerkClient.redirectUrls.getRedirectUrlList()`
2488 | - `clerkClient.sessions.getSessionList()`
2489 | - `clerkClient.users.getUserOauthAccessToken()`
2490 |
2491 | - Updated dependencies [[`a78bc447c`](https://github.com/clerk/javascript/commit/a78bc447c1aabaa41bcbaa2a8fe3c48f31275574), [`19cd42434`](https://github.com/clerk/javascript/commit/19cd42434450e568998336bf6d705e475122abbc)]:
2492 | - @clerk/[email protected]
2493 |
2494 | ## 1.1.0
2495 |
2496 | ### Minor Changes
2497 |
2498 | - Updated types for `orderBy` in OrganizationApi and UserApi ([#3266](https://github.com/clerk/javascript/pull/3266)) by [@panteliselef](https://github.com/panteliselef)
2499 |
2500 | - `OrganizationAPI.getOrganizationMembershipList` now accepts `orderBy`
2501 | - Acceptable values `phone_number`, `+phone_number`, `-phone_number`, `email_address`, `+email_address`, `-email_address`, `created_at`, `+created_at`, `-created_at`, `first_name`, `+first_name`, `-first_name`
2502 | - `UserAPI.getUserList` expands the acceptable values of the `orderBy` to:
2503 | - `email_address`, `+email_address`, `-email_address`, `web3wallet`, `+web3wallet`, `-web3wallet`, `first_name`, `+first_name`, `-first_name`, `last_name`, `+last_name`, `-last_name`, `phone_number`, `+phone_number`, `-phone_number`, `username`, `+username`, `-username`
2504 |
2505 | - Add support for the Testing Tokens API ([#3258](https://github.com/clerk/javascript/pull/3258)) by [@anagstef](https://github.com/anagstef)
2506 |
2507 | ### Patch Changes
2508 |
2509 | - Fix infinite redirect loops for production instances with incorrect secret keys ([#3259](https://github.com/clerk/javascript/pull/3259)) by [@dimkl](https://github.com/dimkl)
2510 |
2511 | ## 1.0.1
2512 |
2513 | ### Patch Changes
2514 |
2515 | - Export all Webhook event types and related JSON types. The newly exported types are: `DeletedObjectJSON`, `EmailJSON`, `OrganizationInvitationJSON`, `OrganizationJSON`, `OrganizationMembershipJSON`, `SessionJSON`, `SMSMessageJSON`, `UserJSON`, `UserWebhookEvent`, `EmailWebhookEvent`, `SMSWebhookEvent`, `SessionWebhookEvent`, `OrganizationWebhookEvent`, `OrganizationMembershipWebhookEvent`, `OrganizationInvitationWebhookEvent` ([#3248](https://github.com/clerk/javascript/pull/3248)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
2516 |
2517 | - Added missing 'organizationId' parameter to UserListParams ([#3240](https://github.com/clerk/javascript/pull/3240)) by [@royanger](https://github.com/royanger)
2518 |
2519 | Moved last_active_at_since from UserCountParams to UserListParams
2520 |
2521 | ## 1.0.0
2522 |
2523 | ### Major Changes
2524 |
2525 | - 3a2f13604: Drop `user` / `organization` / `session` from auth object on **signed-out** state (current value was `null`). Eg
2526 |
2527 | ```diff
2528 | // Backend
2529 | import { createClerkClient } from '@clerk/backend';
2530 |
2531 | const clerkClient = createClerkClient({...});
2532 | const requestState = clerkClient.authenticateRequest(request, {...});
2533 |
2534 | - const { user, organization, session } = requestState.toAuth();
2535 | + const { userId, organizationId, sessionId } = requestState.toAuth();
2536 |
2537 | // Remix
2538 | import { getAuth } from '@clerk/remix/ssr.server';
2539 |
2540 | - const { user, organization, session } = await getAuth(args);
2541 | + const { userId, organizationId, sessionId } = await getAuth(args);
2542 |
2543 | // or
2544 | rootAuthLoader(
2545 | args,
2546 | ({ request }) => {
2547 | - const { user, organization, session } = request.auth;
2548 | + const { userId, organizationId, sessionId } = request.auth;
2549 | // ...
2550 | },
2551 | { loadUser: true },
2552 | );
2553 |
2554 | // NextJS
2555 | import { getAuth } from '@clerk/nextjs/server';
2556 |
2557 | - const { user, organization, session } = getAuth(args);
2558 | + const { userId, organizationId, sessionId } = getAuth(req, opts);
2559 |
2560 | // Gatsby
2561 | import { withServerAuth } from 'gatsby-plugin-clerk';
2562 |
2563 | export const getServerData: GetServerData<any> = withServerAuth(
2564 | async props => {
2565 | - const { user, organization, session } = props;
2566 | + const { userId, organizationId, sessionId } = props;
2567 | return { props: { data: '1', auth: props.auth, userId, organizationId, sessionId } };
2568 | },
2569 | { loadUser: true },
2570 | );
2571 | ```
2572 |
2573 | - c2a090513: Change the minimal Node.js version required by Clerk to `18.17.0`.
2574 | - deac67c1c: Drop default exports from all packages. Migration guide:
2575 | - use `import { Clerk } from '@clerk/backend';`
2576 | - use `import { clerkInstance } from '@clerk/clerk-sdk-node';`
2577 | - use `import { Clerk } from '@clerk/clerk-sdk-node';`
2578 | - use `import { Clerk } from '@clerk/clerk-js';`
2579 | - use `import { Clerk } from '@clerk/clerk-js/headless';`
2580 | - use `import { IsomorphicClerk } from '@clerk/clerk-react'`
2581 | - 244de5ea3: Make all listing API requests to return consistent `{ data: Resource[], totalCount: number }`.
2582 |
2583 | Support pagination request params `{ limit, offset }` to:
2584 |
2585 | - `sessions.getSessionList({ limit, offset })`
2586 | - `clients.getClientList({ limit, offset })`
2587 |
2588 | Since the `users.getUserList()` does not return the `total_count` as a temporary solution that
2589 | method will perform 2 BAPI requests:
2590 |
2591 | 1. retrieve the data
2592 | 2. retrieve the total count (invokes `users.getCount()` internally)
2593 |
2594 | - a9fe242be: Change return value of `verifyToken()` from `@clerk/backend` to `{ data, error}`.
2595 | To replicate the current behaviour use this:
2596 |
2597 | ```typescript
2598 | import { verifyToken } from '@clerk/backend'
2599 |
2600 | const { data, error } = await verifyToken(...);
2601 | if(error){
2602 | throw error;
2603 | }
2604 | ```
2605 |
2606 | - 799abc281: Change `SessionApi.getToken()` to return consistent `{ data, errors }` return value
2607 | and fix the `getToken()` from requestState to have the same return behavior as v4
2608 | (return Promise<string> or throw error).
2609 | This change fixes issues with `getToken()` in `@clerk/nextjs` / `@clerk/remix` / `@clerk/fastify` / `@clerk/sdk-node` / `gatsby-plugin-clerk`:
2610 |
2611 | Example:
2612 |
2613 | ```typescript
2614 | import { getAuth } from '@clerk/nextjs/server';
2615 |
2616 | const { getToken } = await getAuth(...);
2617 | const jwtString = await getToken(...);
2618 | ```
2619 |
2620 | The change in `SessionApi.getToken()` return value is a breaking change, to keep the existing behavior use the following:
2621 |
2622 | ```typescript
2623 | import { ClerkAPIResponseError } from '@clerk/shared/error';
2624 |
2625 | const response = await clerkClient.sessions.getToken(...);
2626 |
2627 | if (response.errors) {
2628 | const { status, statusText, clerkTraceId } = response;
2629 | const error = new ClerkAPIResponseError(statusText || '', {
2630 | data: [],
2631 | status: Number(status || ''),
2632 | clerkTraceId,
2633 | });
2634 | error.errors = response.errors;
2635 |
2636 | throw error;
2637 | }
2638 |
2639 | // the value of the v4 `clerkClient.sessions.getToken(...)`
2640 | const jwtString = response.data.jwt;
2641 | ```
2642 |
2643 | - 71663c568: Internal update default apiUrl domain from clerk.dev to clerk.com
2644 | - 02976d494: Remove the named `Clerk` import from `@clerk/backend` and import `createClerkClient` instead. The latter is a factory method that will create a Clerk client instance for you. This aligns usage across our SDKs and will enable us to better ship DX improvements in the future.
2645 |
2646 | Inside your code, search for occurrences like these:
2647 |
2648 | ```js
2649 | import { Clerk } from '@clerk/backend';
2650 | const clerk = Clerk({ secretKey: '...' });
2651 | ```
2652 |
2653 | You need to rename the import from `Clerk` to `createClerkClient` and change its usage:
2654 |
2655 | ```js
2656 | import { createClerkClient } from '@clerk/backend';
2657 | const clerk = createClerkClient({ secretKey: '...' });
2658 | ```
2659 |
2660 | - 8e5c881c4: The following paginated APIs now return `{ data, totalCount }` instead of simple arrays, in order to make building paginated UIs easier:
2661 |
2662 | - `clerkClient.users.getOrganizationMembershipList(...)`
2663 | - `clerkClient.organization.getOrganizationList(...)`
2664 | - `clerkClient.organization.getOrganizationInvitationList(...)`
2665 |
2666 | Revert changing the `{ data, errors }` return value of the following helpers to throw the `errors` or return the `data` (keep v4 format):
2667 |
2668 | - `import { verifyToken } from '@clerk/backend'`
2669 | - `import { signJwt, hasValidSignature, decodeJwt, verifyJwt } from '@clerk/backend/jwt'`
2670 | - BAPI `clerkClient` methods eg (`clerkClient.users.getUserList(...)`)
2671 |
2672 | - dd5703013: Change the response payload of Backend API requests to return `{ data, errors }` instead of return the data and throwing on error response.
2673 | Code example to keep the same behavior:
2674 |
2675 | ```typescript
2676 | import { users } from '@clerk/backend';
2677 | import { ClerkAPIResponseError } from '@clerk/shared/error';
2678 |
2679 | const { data, errors, clerkTraceId, status, statusText } = await users.getUser('user_deadbeef');
2680 | if (errors) {
2681 | throw new ClerkAPIResponseError(statusText, {
2682 | data: errors,
2683 | status,
2684 | clerkTraceId,
2685 | });
2686 | }
2687 | ```
2688 |
2689 | - 86d52fb5c: - Refactor the `authenticateRequest()` flow to use the new client handshake endpoint. This replaces the previous "interstitial"-based flow. This should improve performance and overall reliability of Clerk's server-side request authentication functionality.
2690 | - `authenticateRequest()` now accepts two arguments, a `Request` object to authenticate and options:
2691 | ```ts
2692 | authenticateRequest(new Request(...), { secretKey: '...' })
2693 | ```
2694 | - a9fe242be: Change return values of `signJwt`, `hasValidSignature`, `decodeJwt`, `verifyJwt`
2695 | to return `{ data, error }`. Example of keeping the same behavior using those utilities:
2696 |
2697 | ```typescript
2698 | import { signJwt, hasValidSignature, decodeJwt, verifyJwt } from '@clerk/backend/jwt';
2699 |
2700 | const { data, error } = await signJwt(...)
2701 | if (error) throw error;
2702 |
2703 | const { data, error } = await hasValidSignature(...)
2704 | if (error) throw error;
2705 |
2706 | const { data, error } = decodeJwt(...)
2707 | if (error) throw error;
2708 |
2709 | const { data, error } = await verifyJwt(...)
2710 | if (error) throw error;
2711 | ```
2712 |
2713 | - 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.
2714 | - 9615e6cda: Enforce passing `request` param to `authenticateRequest` method of `@clerk/backend`
2715 | instead of passing each header or cookie related option that is used internally to
2716 | determine the request state.
2717 |
2718 | Migration guide:
2719 |
2720 | - use `request` param in `clerkClient.authenticateRequest()` instead of:
2721 | - `origin`
2722 | - `host`
2723 | - `forwardedHost`
2724 | - `forwardedProto`
2725 | - `referrer`
2726 | - `userAgent`
2727 | - `cookieToken`
2728 | - `clientUat`
2729 | - `headerToken`
2730 | - `searchParams`
2731 |
2732 | Example
2733 |
2734 | ```typescript
2735 | //
2736 | // current
2737 | //
2738 | import { clerkClient } from '@clerk/backend'
2739 |
2740 | const requestState = await clerkClient.authenticateRequest({
2741 | secretKey: 'sk_....'
2742 | publishableKey: 'pk_....'
2743 | origin: req.headers.get('origin'),
2744 | host: req.headers.get('host'),
2745 | forwardedHost: req.headers.get('x-forwarded-host'),
2746 | forwardedProto: req.headers.get('x-forwarded-proto'),
2747 | referrer: req.headers.get('referer'),
2748 | userAgent: req.headers.get('user-agent'),
2749 | clientUat: req.cookies.get('__client_uat'),
2750 | cookieToken: req.cookies.get('__session'),
2751 | headerToken: req.headers.get('authorization'),
2752 | searchParams: req.searchParams
2753 | });
2754 |
2755 | //
2756 | // new
2757 | //
2758 | import { clerkClient, } from '@clerk/backend'
2759 |
2760 | // use req (if it's a fetch#Request instance) or use `createIsomorphicRequest` from `@clerk/backend`
2761 | // to re-construct fetch#Request instance
2762 | const requestState = await clerkClient.authenticateRequest({
2763 | secretKey: 'sk_....'
2764 | publishableKey: 'pk_....'
2765 | request: req
2766 | });
2767 |
2768 | ```
2769 |
2770 | - 0ec3a146c: Changes in exports of `@clerk/backend`:
2771 | - Expose the following helpers and enums from `@clerk/backend/internal`:
2772 | ```typescript
2773 | import {
2774 | AuthStatus,
2775 | buildRequestUrl,
2776 | constants,
2777 | createAuthenticateRequest,
2778 | createIsomorphicRequest,
2779 | debugRequestState,
2780 | makeAuthObjectSerializable,
2781 | prunePrivateMetadata,
2782 | redirect,
2783 | sanitizeAuthObject,
2784 | signedInAuthObject,
2785 | signedOutAuthObject,
2786 | } from '@clerk/backend/internal';
2787 | ```
2788 | - Drop the above exports from the top-level api:
2789 | ```typescript
2790 | // Before
2791 | import { AuthStatus, ... } from '@clerk/backend';
2792 | // After
2793 | import { AuthStatus, ... } from '@clerk/backend/internal';
2794 | ```
2795 | Dropping those exports results in also dropping the exports from `gatsby-plugin-clerk`, `@clerk/clerk-sdk-node`, `@clerk/backend`, `@clerk/fastify`, `@clerk/nextjs`, `@clerk/remix` packages.
2796 | - cace85374: Drop deprecated properties. Migration steps:
2797 |
2798 | - use `createClerkClient` instead of `__unstable_options`
2799 | - use `publishableKey` instead of `frontendApi`
2800 | - use `clockSkewInMs` instead of `clockSkewInSeconds`
2801 | - use `apiKey` instead of `secretKey`
2802 | - drop `httpOptions`
2803 | - use `*.image` instead of
2804 | - `ExternalAccount.picture`
2805 | - `ExternalAccountJSON.avatar_url`
2806 | - `Organization.logoUrl`
2807 | - `OrganizationJSON.logo_url`
2808 | - `User.profileImageUrl`
2809 | - `UserJSON.profile_image_url`
2810 | - `OrganizationMembershipPublicUserData.profileImageUrl`
2811 | - `OrganizationMembershipPublicUserDataJSON.profile_image_url`
2812 | - drop `pkgVersion`
2813 | - use `Organization.getOrganizationInvitationList` with `status` instead of `getPendingOrganizationInvitationList`
2814 | - drop `orgs` claim (if required, can be manually added by using `user.organizations` in a jwt template)
2815 | - use `localInterstitial` instead of `remotePublicInterstitial` / `remotePublicInterstitialUrl`
2816 |
2817 | Internal changes:
2818 |
2819 | - replaced error enum (and it's) `SetClerkSecretKeyOrAPIKey` with `SetClerkSecretKey`
2820 |
2821 | - 1ad910eb9: Changes in exports of `@clerk/backend`:
2822 | - Drop the following internal exports from the top-level api:
2823 | ```typescript
2824 | // Before
2825 | import {
2826 | AllowlistIdentifier,
2827 | Client,
2828 | DeletedObject,
2829 | Email,
2830 | EmailAddress,
2831 | ExternalAccount,
2832 | IdentificationLink,
2833 | Invitation,
2834 | OauthAccessToken,
2835 | ObjectType,
2836 | Organization,
2837 | OrganizationInvitation,
2838 | OrganizationMembership,
2839 | OrganizationMembershipPublicUserData,
2840 | PhoneNumber,
2841 | RedirectUrl,
2842 | SMSMessage,
2843 | Session,
2844 | SignInToken,
2845 | Token,
2846 | User,
2847 | Verification,
2848 | } from '@clerk/backend';
2849 | // After : no alternative since there is no need to use those classes
2850 | ```
2851 | Dropping those exports results in also dropping the exports from `gatsby-plugin-clerk`, `@clerk/clerk-sdk-node`, `@clerk/backend`, `@clerk/fastify`, `@clerk/nextjs`, `@clerk/remix` packages.
2852 | - Keep those 3 resource related type exports
2853 | ```typescript
2854 | import type { Organization, Session, User, WebhookEvent, WebhookEventType } from '@clerk/backend';
2855 | ```
2856 | - f58a9949b: Changes in exports of `@clerk/backend`:
2857 | - Expose the following helpers and enums from `@clerk/backend/jwt`:
2858 | ```typescript
2859 | import { decodeJwt, hasValidSignature, signJwt, verifyJwt } from '@clerk/backend/jwt';
2860 | ```
2861 | - Drop the above exports from the top-level api:
2862 | ```typescript
2863 | // Before
2864 | import { decodeJwt, ... } from '@clerk/backend';
2865 | // After
2866 | import { decodeJwt, ... } from '@clerk/backend/jwt';
2867 | ```
2868 | Dropping those exports results in also dropping the exports from `gatsby-plugin-clerk`, `@clerk/clerk-sdk-node`, `@clerk/backend`, `@clerk/fastify`, `@clerk/nextjs`, `@clerk/remix` packages.
2869 | - d22e6164d: Rename property `members_count` to `membersCount` for `Organization` resource
2870 | - e1f7eae87: Limit TokenVerificationError exports to TokenVerificationError and TokenVerificationErrorReason
2871 | - 9b02c1aae: Changes in `@clerk/backend` exports:
2872 | - Drop Internal `deserialize` helper
2873 | - Introduce `/errors` subpath export, eg:
2874 | ```typescript
2875 | import {
2876 | TokenVerificationError,
2877 | TokenVerificationErrorAction,
2878 | TokenVerificationErrorCode,
2879 | TokenVerificationErrorReason,
2880 | } from '@clerk/backend/errors';
2881 | ```
2882 | - Drop errors from top-level export
2883 | ```typescript
2884 | // Before
2885 | import { TokenVerificationError, TokenVerificationErrorReason } from '@clerk/backend';
2886 | // After
2887 | import { TokenVerificationError, TokenVerificationErrorReason } from '@clerk/backend/errors';
2888 | ```
2889 | - e602d6c1f: Drop unused SearchParams.AuthStatus constant
2890 | - 6fffd3b54: Replace return the value of the following jwt helpers to match the format of backend API client return values (for consistency).
2891 |
2892 | ```diff
2893 | import { signJwt } from '@clerk/backend/jwt';
2894 |
2895 | - const { data, error } = await signJwt(...);
2896 | + const { data, errors: [error] = [] } = await signJwt(...);
2897 | ```
2898 |
2899 | ```diff
2900 | import { verifyJwt } from '@clerk/backend/jwt';
2901 |
2902 | - const { data, error } = await verifyJwt(...);
2903 | + const { data, errors: [error] = [] } = await verifyJwt(...);
2904 | ```
2905 |
2906 | ```diff
2907 | import { hasValidSignature } from '@clerk/backend/jwt';
2908 |
2909 | - const { data, error } = await hasValidSignature(...);
2910 | + const { data, errors: [error] = [] } = await hasValidSignature(...);
2911 | ```
2912 |
2913 | ```diff
2914 | import { decodeJwt } from '@clerk/backend/jwt';
2915 |
2916 | - const { data, error } = await decodeJwt(...);
2917 | + const { data, errors: [error] = [] } = await decodeJwt(...);
2918 | ```
2919 |
2920 | ```diff
2921 | import { verifyToken } from '@clerk/backend';
2922 |
2923 | - const { data, error } = await verifyToken(...);
2924 | + const { data, errors: [error] = [] } = await verifyToken(...);
2925 | ```
2926 |
2927 | ### Minor Changes
2928 |
2929 | - 966b31205: Add `unbanUser`, `lockUser`, and `unlockUser` methods to the UserAPI class.
2930 | - ecb60da48: Implement token signature verification when passing verified token from Next.js middleware to the application origin.
2931 | - 448e02e93: Add fullName, primaryEmailAddress, primaryPhoneNumber, primaryWeb3Wallet to User class.
2932 | - 2671e7aa5: Add `external_account_id` to OAuth access token response
2933 | - 8b6b094b9: Added prefers-color-scheme to interstitial
2934 | - a6b893d28: - Added the `User.last_active_at` timestamp field which stores the latest date of session activity, with day precision. For further details, please consult the [Backend API documentation](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUser).
2935 | - Added the `last_active_at_since` filtering parameter for the Users listing request. The new parameter can be used to retrieve users that have displayed session activity since the given date. For further details, please consult the [Backend API documentation](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUserList).
2936 | - Added the `last_active_at` available options for the `orderBy` parameter of the Users listing request. For further details, please consult the [Backend API documentation](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUserList).
2937 | - a605335e1: Add support for NextJS 14
2938 | - 2964f8a47: Expose debug headers in response for handshake / signed-out states from SDKs using headers returned from `authenticateRequest()`
2939 | - 7af0949ae: Add missing `createdAt` param in `User#createUser()` of `@clerk/backend`.
2940 | Fix `clerkClient.verifyToken()` signature to support a single `token: string` parameter.
2941 | - d08ec6d8f: Improve ESM support in `@clerk/backend` for Node by using .mjs for #crypto subpath import
2942 | - 03079579d: Expose `totalCount` from `@clerk/backend` client responses for responses
2943 | containing pagination information or for responses with type `{ data: object[] }`.
2944 |
2945 | Example:
2946 |
2947 | ```typescript
2948 | import { Clerk } from '@clerk/backend';
2949 |
2950 | const clerkClient = Clerk({ secretKey: '...' });
2951 |
2952 | // current
2953 | const { data } = await clerkClient.organizations.getOrganizationList();
2954 | console.log('totalCount: ', data.length);
2955 |
2956 | // new
2957 | const { data, totalCount } = await clerkClient.organizations.getOrganizationList();
2958 | console.log('totalCount: ', totalCount);
2959 | ```
2960 |
2961 | - c7e6d00f5: Experimental support for `<Gate/>` with role checks.
2962 | - 12962bc58: Re-use common pagination types for consistency across types.
2963 |
2964 | Types introduced in `@clerk/types`:
2965 |
2966 | - `ClerkPaginationRequest` : describes pagination related props in request payload
2967 | - `ClerkPaginatedResponse` : describes pagination related props in response body
2968 | - `ClerkPaginationParams` : describes pagination related props in api client method params
2969 |
2970 | - 4bb57057e: Breaking Changes:
2971 |
2972 | - Drop `isLegacyFrontendApiKey` from `@clerk/shared`
2973 | - Drop default exports from `@clerk/clerk-js`
2974 | - on headless Clerk type
2975 | - on ui and ui.retheme `Portal`
2976 | - Use `isProductionFromSecretKey` instead of `isProductionFromApiKey`
2977 | - Use `isDevelopmentFromSecretKey` instead of `isDevelopmentFromApiKey`
2978 |
2979 | Changes:
2980 |
2981 | - Rename `HeadlessBrowserClerkConstrutor` / `HeadlessBrowserClerkConstructor` (typo)
2982 | - Use `isomorphicAtob` / `isomorhpicBtoa` to replace `base-64` in `@clerk/expo`
2983 | - Refactor merging build-time and runtime props in `@clerk/backend` clerk client
2984 | - Drop `node-fetch` dependency from `@clerk/backend`
2985 | - Drop duplicate test in `@clerk/backend`
2986 |
2987 | - 46040a2f3: Introduce Protect for authorization.
2988 | Changes in public APIs:
2989 | - Rename Gate to Protect
2990 | - Support for permission checks. (Previously only roles could be used)
2991 | - Remove the `experimental` tags and prefixes
2992 | - 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.
2993 | - Protect can now be used without required props. In this case behaves as `<SignedIn>`, if no authorization props are passed.
2994 | - `has` will throw an error if neither `permission` or `role` is passed.
2995 | - `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.
2996 | - inside a page or layout file it will render the nearest `not-found` component set by the developer
2997 | - inside a route handler it will return empty response body with a 404 status code
2998 | - 4aaf5103d: Deprecate `createSMSMessage` and `SMSMessageApi` from `clerkClient`.
2999 |
3000 | The equivalent `/sms_messages` Backend API endpoint will also be dropped in the future, since this feature will no longer be available for new instances.
3001 |
3002 | For a brief period it will still be accessible for instances that have used it in the past 7
3003 | days (13-11-2023 to 20-11-2023).
3004 |
3005 | New instances will get a 403 forbidden response if they try to access it.
3006 |
3007 | - 7f751c4ef: Add support for X/Twitter v2 OAuth provider
3008 | - 4fced88ac: Add `banUser` method to the User operations (accessible under `clerkClient.users`). Executes the [Ban a user](https://clerk.com/docs/reference/backend-api/tag/Users#operation/BanUser) backend API call.
3009 | - e7e2a1eae: Add `createOrganizationEnabled` param in `@clerk/backend` method `User.updateUser()`
3010 | Example:
3011 |
3012 | ```typescript
3013 | import { createClerkClient } from '@clerk/backend';
3014 |
3015 | const clerkClient = createClerkClient({...});
3016 | await clerkClient.users.updateUser('user_...', { createOrganizationEnabled: true })
3017 | ```
3018 |
3019 | - b4e79c1b9: Replace the `Clerk-Backend-SDK` header with `User-Agent` in BAPI requests and update it's value to contain both the package name and the package version of the clerk package
3020 | executing the request. Eg request from `@clerk/nextjs` to BAPI with append `User-Agent: @clerk/[email protected]` using the latest version.
3021 |
3022 | Miscellaneous changes: The backend test build changed to use tsup.
3023 |
3024 | - 142ded732: Add support for the `orderBy` parameter to the `getOrganizationList()` function
3025 |
3026 | ### Patch Changes
3027 |
3028 | - 8c23651b8: Introduce `clerkClient.samlConnections` to expose `getSamlConnectionList`, `createSamlConnection`, `getSamlConnection`, `updateSamlConnection` and `deleteSamlConnection` endpoints. Introduce `SamlConnection` resource for BAPI.
3029 |
3030 | Example:
3031 |
3032 | ```
3033 | import { clerkClient } from '@clerk/nextjs/server';
3034 | const samlConnection = await clerkClient.samlConnections.getSamlConnectionList();
3035 | ```
3036 |
3037 | - f4f99f18d: `OrganizationMembershipRole` should respect authorization types provided by the developer if those exist.
3038 | - 9272006e7: Export the JSON types for clerk resources.
3039 | - a8901be64: Expose resources types
3040 | - 7b200af49: The `auth().redirectToSignIn()` helper no longer needs to be explicitly returned when called within the middleware. The following examples are now equivalent:
3041 |
3042 | ```js
3043 | // Before
3044 | export default clerkMiddleware(auth => {
3045 | if (protectedRoute && !auth.user) {
3046 | return auth().redirectToSignIn()
3047 | }
3048 | })
3049 |
3050 | // After
3051 | export default clerkMiddleware(auth => {
3052 | if (protectedRoute && !auth.user) {
3053 | auth().redirectToSignIn()
3054 | }
3055 | })
3056 | ```
3057 |
3058 | Calling `auth().protect()` from a page will now automatically redirect back to the same page by setting `redirect_url` to the request url before the redirect to the sign-in URL takes place.
3059 |
3060 | - 988a299c0: Fix typo in `jwk-remote-missing` error message
3061 | - b3a3dcdf4: Add OrganizationRoleAPI for CRUD operations regarding instance level organization roles.
3062 | - 935b0886e: The `emails` endpoint helper and the corresponding `createEmail` method have been removed from the `@clerk/backend` SDK and `apiClint.emails.createEmail` will no longer be available.
3063 |
3064 | We will not be providing an alternative method for creating and sending emails directly from our JavaScript SDKs with this release. If you are currently using `createEmail` and you wish to update to the latest SDK version, please reach out to our support team (https://clerk.com/support) so we can assist you.
3065 |
3066 | - 93d05c868: Drop the introduction of `OrganizationRole` and `OrganizationPermission` resources fro BAPI.
3067 | - 4aaf5103d: Remove createSms functions from @clerk/backend and @clerk/sdk-node.
3068 |
3069 | The equivalent /sms_messages Backend API endpoint will also dropped in the future, since this feature will no longer be available for new instances.
3070 |
3071 | For a brief period it will still be accessible for instances that have used it in the past 7
3072 | days (13-11-2023 to 20-11-2023).
3073 |
3074 | New instances will get a 403 forbidden response if they try to access it.
3075 |
3076 | - 2de442b24: Rename beta-v5 to beta
3077 | - 15af02a83: Remove `__dev_session` legacy query param used to pass the Dev Browser token in previous major version.
3078 | This param will be visible only when using Account Portal with "Core 1" version.
3079 | - de6519daa: Added missing types for `clerkClient.invitations.createInvitation`
3080 | - e6ecbaa2f: Fix an error in the handshake flow where the request would throw an unhandled error when verification of the handshake payload fails.
3081 | - 6a769771c: Update README for v5
3082 | - 9e99eb727: Update `@clerk/nextjs` error messages to refer to `clerkMiddleware()` and deprecated `authMiddleware()` and fix a typo in `cannotRenderSignUpComponentWhenSessionExists` error message.
3083 | - 034c47ccb: Fix `clerkClient.organizations.getOrganizationMembershipList()` return type to be `{ data, totalCount }`
3084 | - 90aa2ea9c: Add `sha256` hasher support to PasswordHasher as described in [`Users#CreateUser`](https://clerk.com/docs/reference/backend-api/tag/Users#operation/CreateUser!path=password_hasher)
3085 | - 1e98187b4: Update the handshake flow to only trigger for document requests.
3086 | - 2e77cd737: Set correct information on required Node.js and React versions in README
3087 | - 63dfe8dc9: Resolve Vercel edge-runtime "TypeError: Failed to parse URL" when `@clerk/remix` is used
3088 | - e921af259: Replace enums with `as const` objects so `@clerk/backend` is consistent with the other packages
3089 | - c22cd5214: Fix type inference for auth helper.
3090 | - 7cb1241a9: Trigger the handshake when no dev browser token exists in development.
3091 | - bad4de1a2: Fixed an issue where errors returned from backend api requests are not converted to camelCase.
3092 | - 66b283653: Fix infinite redirect loops for production instances with incorrect secret keys'
3093 | - f5d55bb1f: Add clerkTraceId to ClerkBackendApiResponse and ClerkAPIResponseError to allow for better tracing and debugging API error responses.
3094 | Uses `clerk_trace_id` when available in a response and defaults to [`cf-ray` identifier](https://developers.cloudflare.com/fundamentals/reference/cloudflare-ray-id/) if missing.
3095 | - a6308c67e: Add the following properties to `users.updateUser(userId, params)` params:
3096 |
3097 | - `password_hasher`
3098 | - `password_digest`
3099 | - `publicMetadata`
3100 | - `privateMetadata`
3101 | - `unsafeMetadata`
3102 |
3103 | - 0ce0edc28: Add OrganizationPermissionAPI for CRUD operations regarding instance level organization permissions.
3104 | - 051833167: fix(backend): Align types based on FAPI/BAPI structs
3105 | - e6fc58ae4: Introduce `debug: true` option for the `clerkMiddleware` helper
3106 | - a6451aece: Strip `experimental__has` from the auth object in `makeAuthObjectSerializable()`. This fixes an issue in Next.js where an error is being thrown when this function is passed to a client component as a prop.
3107 | - 987994909: Add support for `scrypt_werkzeug` in `UserAPI` `PasswordHasher`.
3108 | - 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.
3109 | - 1bea9c200: Add missing pagination params types for `clerkClient.invitations.getInvitationList()`
3110 | - c2b982749: Preserve url protocol when joining paths.
3111 | - Updated dependencies [743c4d204]
3112 | - Updated dependencies [4b8bedc66]
3113 | - Updated dependencies [c2a090513]
3114 | - Updated dependencies [1834a3ee4]
3115 | - Updated dependencies [896cb6104]
3116 | - Updated dependencies [64d3763ec]
3117 | - Updated dependencies [8350109ab]
3118 | - Updated dependencies [1dc28ab46]
3119 | - Updated dependencies [83e9d0846]
3120 | - Updated dependencies [791c49807]
3121 | - Updated dependencies [ea4933655]
3122 | - Updated dependencies [a68eb3083]
3123 | - Updated dependencies [2de442b24]
3124 | - Updated dependencies [db18787c4]
3125 | - Updated dependencies [7f833da9e]
3126 | - Updated dependencies [ef2325dcc]
3127 | - Updated dependencies [fc3ffd880]
3128 | - Updated dependencies [bab2e7e05]
3129 | - Updated dependencies [71663c568]
3130 | - Updated dependencies [492b8a7b1]
3131 | - Updated dependencies [e5c989a03]
3132 | - Updated dependencies [7ecd6f6ab]
3133 | - Updated dependencies [12f3c5c55]
3134 | - Updated dependencies [c776f86fb]
3135 | - Updated dependencies [97407d8aa]
3136 | - Updated dependencies [5f58a2274]
3137 | - Updated dependencies [52ff8fe6b]
3138 | - Updated dependencies [8cc45d2af]
3139 | - Updated dependencies [97407d8aa]
3140 | - Updated dependencies [4bb57057e]
3141 | - Updated dependencies [d4ff346dd]
3142 | - Updated dependencies [7644b7472]
3143 | - Updated dependencies [2ec9f6b09]
3144 | - Updated dependencies [8daf8451c]
3145 | - Updated dependencies [75ea300bc]
3146 | - Updated dependencies [f5d55bb1f]
3147 | - Updated dependencies [0d1052ac2]
3148 | - Updated dependencies [d30ea1faa]
3149 | - Updated dependencies [1fd2eff38]
3150 | - Updated dependencies [5471c7e8d]
3151 | - Updated dependencies [38d8b3e8a]
3152 | - Updated dependencies [be991365e]
3153 | - Updated dependencies [8350f73a6]
3154 | - Updated dependencies [e0e79b4fe]
3155 | - Updated dependencies [fb794ce7b]
3156 | - Updated dependencies [40ac4b645]
3157 | - Updated dependencies [6f755addd]
3158 | - Updated dependencies [6eab66050]
3159 | - @clerk/[email protected]
3160 |
3161 | ## 1.0.0-beta.37
3162 |
3163 | ### Patch Changes
3164 |
3165 | - Updated dependencies [[`bab2e7e05`](https://github.com/clerk/javascript/commit/bab2e7e0590d0da1fd7db0680e63e8f2eb836b41)]:
3166 | - @clerk/[email protected]
3167 |
3168 | ## 1.0.0-beta.36
3169 |
3170 | ### Minor Changes
3171 |
3172 | - Add support for the `orderBy` parameter to the `getOrganizationList()` function ([#3164](https://github.com/clerk/javascript/pull/3164)) by [@IGassmann](https://github.com/IGassmann)
3173 |
3174 | ### Patch Changes
3175 |
3176 | - Introduce `debug: true` option for the `clerkMiddleware` helper ([#3189](https://github.com/clerk/javascript/pull/3189)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
3177 |
3178 | - Updated dependencies [[`fb794ce7b`](https://github.com/clerk/javascript/commit/fb794ce7b88001b98ad4a628bc2cc39a0c8ccfa5)]:
3179 | - @clerk/[email protected]
3180 |
3181 | ## 1.0.0-beta.35
3182 |
3183 | ### Patch Changes
3184 |
3185 | - Trigger the handshake when no dev browser token exists in development. ([#3175](https://github.com/clerk/javascript/pull/3175)) by [@BRKalow](https://github.com/BRKalow)
3186 |
3187 | ## 1.0.0-beta.34
3188 |
3189 | ### Minor Changes
3190 |
3191 | - Implement token signature verification when passing verified token from Next.js middleware to the application origin. ([#3121](https://github.com/clerk/javascript/pull/3121)) by [@BRKalow](https://github.com/BRKalow)
3192 |
3193 | ## 1.0.0-beta.33
3194 |
3195 | ### Major Changes
3196 |
3197 | - Rename property `members_count` to `membersCount` for `Organization` resource ([#3094](https://github.com/clerk/javascript/pull/3094)) by [@dimkl](https://github.com/dimkl)
3198 |
3199 | ### Patch Changes
3200 |
3201 | - Resolve Vercel edge-runtime "TypeError: Failed to parse URL" when `@clerk/remix` is used ([#3129](https://github.com/clerk/javascript/pull/3129)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
3202 |
3203 | ## 1.0.0-beta.32
3204 |
3205 | ### Patch Changes
3206 |
3207 | - Add support for `scrypt_werkzeug` in `UserAPI` `PasswordHasher`. ([#3060](https://github.com/clerk/javascript/pull/3060)) by [@Nikpolik](https://github.com/Nikpolik)
3208 |
3209 | - Add missing pagination params types for `clerkClient.invitations.getInvitationList()` ([#3079](https://github.com/clerk/javascript/pull/3079)) by [@dimkl](https://github.com/dimkl)
3210 |
3211 | - Updated dependencies [[`fc3ffd880`](https://github.com/clerk/javascript/commit/fc3ffd88064a09ab98877dfba119150390f9296e), [`1fd2eff38`](https://github.com/clerk/javascript/commit/1fd2eff38dc71e45d2ff95a5b6e5a99cca53c6e7)]:
3212 | - @clerk/[email protected]
3213 |
3214 | ## 1.0.0-beta.31
3215 |
3216 | ### Patch Changes
3217 |
3218 | - Fix typo in `jwk-remote-missing` error message ([#3057](https://github.com/clerk/javascript/pull/3057)) by [@dimkl](https://github.com/dimkl)
3219 |
3220 | ## 1.0.0-beta.30
3221 |
3222 | ### Patch Changes
3223 |
3224 | - Updated dependencies [[`8350109ab`](https://github.com/clerk/javascript/commit/8350109ab85909e0457199da1db0c9787d94001e)]:
3225 | - @clerk/[email protected]
3226 |
3227 | ## 1.0.0-beta.29
3228 |
3229 | ### Minor Changes
3230 |
3231 | - Add `external_account_id` to OAuth access token response ([#2982](https://github.com/clerk/javascript/pull/2982)) by [@kostaspt](https://github.com/kostaspt)
3232 |
3233 | ### Patch Changes
3234 |
3235 | - Introduce `clerkClient.samlConnections` to expose `getSamlConnectionList`, `createSamlConnection`, `getSamlConnection`, `updateSamlConnection` and `deleteSamlConnection` endpoints. Introduce `SamlConnection` resource for BAPI. ([#2980](https://github.com/clerk/javascript/pull/2980)) by [@EmmanouelaPothitou](https://github.com/EmmanouelaPothitou)
3236 |
3237 | Example:
3238 |
3239 | ```
3240 | import { clerkClient } from '@clerk/nextjs/server';
3241 | const samlConnection = await clerkClient.samlConnections.getSamlConnectionList();
3242 | ```
3243 |
3244 | - Export the JSON types for clerk resources. ([#2965](https://github.com/clerk/javascript/pull/2965)) by [@desiprisg](https://github.com/desiprisg)
3245 |
3246 | - Fix infinite redirect loops for production instances with incorrect secret keys' ([#2994](https://github.com/clerk/javascript/pull/2994)) by [@dimkl](https://github.com/dimkl)
3247 |
3248 | ## 1.0.0-beta.28
3249 |
3250 | ### Minor Changes
3251 |
3252 | - Expose debug headers in response for handshake / signed-out states from SDKs using headers returned from `authenticateRequest()` ([#2898](https://github.com/clerk/javascript/pull/2898)) by [@dimkl](https://github.com/dimkl)
3253 |
3254 | ## 1.0.0-beta.27
3255 |
3256 | ### Patch Changes
3257 |
3258 | - Updated dependencies [[`8350f73a6`](https://github.com/clerk/javascript/commit/8350f73a67f8980be78e3bd3343e772f5653d718)]:
3259 | - @clerk/[email protected]
3260 |
3261 | ## 1.0.0-beta.26
3262 |
3263 | ### Patch Changes
3264 |
3265 | - Updated dependencies [[`e5c989a03`](https://github.com/clerk/javascript/commit/e5c989a035fa16413414c213febe16fcdbeef9b1), [`2ec9f6b09`](https://github.com/clerk/javascript/commit/2ec9f6b09f98ae276658d6dc705e16df0573d817)]:
3266 | - @clerk/[email protected]
3267 |
3268 | ## 1.0.0-beta.25
3269 |
3270 | ### Patch Changes
3271 |
3272 | - Remove `__dev_session` legacy query param used to pass the Dev Browser token in previous major version. ([#2883](https://github.com/clerk/javascript/pull/2883)) by [@dimkl](https://github.com/dimkl)
3273 |
3274 | This param will be visible only when using Account Portal with "Core 1" version.
3275 |
3276 | - Updated dependencies [[`1834a3ee4`](https://github.com/clerk/javascript/commit/1834a3ee496ea27b9f7ceeb32ec5361f9de8ee30)]:
3277 | - @clerk/[email protected]
3278 |
3279 | ## 1.0.0-beta.24
3280 |
3281 | ### Patch Changes
3282 |
3283 | - Updated dependencies [[`db18787c4`](https://github.com/clerk/javascript/commit/db18787c4d9fa8ee1306db9b65f3b3f5e2fe2dad)]:
3284 | - @clerk/[email protected]
3285 |
3286 | ## 1.0.0-beta.23
3287 |
3288 | ### Patch Changes
3289 |
3290 | - Updated dependencies [[`6eab66050`](https://github.com/clerk/javascript/commit/6eab66050608a1bc5cb9aca6a234b1fea16106e5)]:
3291 | - @clerk/[email protected]
3292 |
3293 | ## 1.0.0-beta.22
3294 |
3295 | ### Patch Changes
3296 |
3297 | - Updated dependencies [[`12f3c5c55`](https://github.com/clerk/javascript/commit/12f3c5c55580f93a81df27851fbc92ce1312107e)]:
3298 | - @clerk/[email protected]
3299 |
3300 | ## 1.0.0-beta.21
3301 |
3302 | ### Patch Changes
3303 |
3304 | - fix(backend): Align types based on FAPI/BAPI structs ([#2818](https://github.com/clerk/javascript/pull/2818)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
3305 |
3306 | ## 1.0.0-beta.20
3307 |
3308 | ### Patch Changes
3309 |
3310 | - Rename beta-v5 to beta by [@nikosdouvlis](https://github.com/nikosdouvlis)
3311 |
3312 | - Updated dependencies [[`2de442b24`](https://github.com/clerk/javascript/commit/2de442b2465cc5d424b8a0b21aa57c557f3aa2e7)]:
3313 | - @clerk/[email protected]
3314 |
3315 | ## 1.0.0-beta-v5.19
3316 |
3317 | ### Major Changes
3318 |
3319 | - Make all listing API requests to return consistent `{ data: Resource[], totalCount: number }`. ([#2714](https://github.com/clerk/javascript/pull/2714)) by [@dimkl](https://github.com/dimkl)
3320 |
3321 | Support pagination request params `{ limit, offset }` to:
3322 |
3323 | - `sessions.getSessionList({ limit, offset })`
3324 | - `clients.getClientList({ limit, offset })`
3325 |
3326 | Since the `users.getUserList()` does not return the `total_count` as a temporary solution that
3327 | method will perform 2 BAPI requests:
3328 |
3329 | 1. retrieve the data
3330 | 2. retrieve the total count (invokes `users.getCount()` internally)
3331 |
3332 | ### Minor Changes
3333 |
3334 | - Add `unbanUser`, `lockUser`, and `unlockUser` methods to the UserAPI class. ([#2780](https://github.com/clerk/javascript/pull/2780)) by [@panteliselef](https://github.com/panteliselef)
3335 |
3336 | - Add support for X/Twitter v2 OAuth provider ([#2690](https://github.com/clerk/javascript/pull/2690)) by [@kostaspt](https://github.com/kostaspt)
3337 |
3338 | - Add `banUser` method to the User operations (accessible under `clerkClient.users`). Executes the [Ban a user](https://clerk.com/docs/reference/backend-api/tag/Users#operation/BanUser) backend API call. ([#2766](https://github.com/clerk/javascript/pull/2766)) by [@bartlenaerts](https://github.com/bartlenaerts)
3339 |
3340 | ### Patch Changes
3341 |
3342 | - Expose resources types ([#2660](https://github.com/clerk/javascript/pull/2660)) by [@panteliselef](https://github.com/panteliselef)
3343 |
3344 | - The `auth().redirectToSignIn()` helper no longer needs to be explicitly returned when called within the middleware. The following examples are now equivalent: ([#2691](https://github.com/clerk/javascript/pull/2691)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
3345 |
3346 | ```js
3347 | // Before
3348 | export default clerkMiddleware(auth => {
3349 | if (protectedRoute && !auth.user) {
3350 | return auth().redirectToSignIn()
3351 | }
3352 | })
3353 |
3354 | // After
3355 | export default clerkMiddleware(auth => {
3356 | if (protectedRoute && !auth.user) {
3357 | auth().redirectToSignIn()
3358 | }
3359 | })
3360 | ```
3361 |
3362 | Calling `auth().protect()` from a page will now automatically redirect back to the same page by setting `redirect_url` to the request url before the redirect to the sign-in URL takes place.
3363 |
3364 | - Fix `clerkClient.organizations.getOrganizationMembershipList()` return type to be `{ data, totalCount }` ([#2681](https://github.com/clerk/javascript/pull/2681)) by [@dimkl](https://github.com/dimkl)
3365 |
3366 | - Preserve url protocol when joining paths. ([#2745](https://github.com/clerk/javascript/pull/2745)) by [@panteliselef](https://github.com/panteliselef)
3367 |
3368 | - Updated dependencies [[`8daf8451c`](https://github.com/clerk/javascript/commit/8daf8451cb564bc834dd856174ffc2cdfa932e37), [`be991365e`](https://github.com/clerk/javascript/commit/be991365e1c78d0f1dfc59bb33dd533b6fad223a)]:
3369 | - @clerk/[email protected]
3370 |
3371 | ## 1.0.0-beta-v5.18
3372 |
3373 | ### Major Changes
3374 |
3375 | - The following paginated APIs now return `{ data, totalCount }` instead of simple arrays, in order to make building paginated UIs easier: ([#2633](https://github.com/clerk/javascript/pull/2633)) by [@dimkl](https://github.com/dimkl)
3376 |
3377 | - `clerkClient.users.getOrganizationMembershipList(...)`
3378 | - `clerkClient.organization.getOrganizationList(...)`
3379 | - `clerkClient.organization.getOrganizationInvitationList(...)`
3380 |
3381 | Revert changing the `{ data, errors }` return value of the following helpers to throw the `errors` or return the `data` (keep v4 format):
3382 |
3383 | - `import { verifyToken } from '@clerk/backend'`
3384 | - `import { signJwt, hasValidSignature, decodeJwt, verifyJwt } from '@clerk/backend/jwt'`
3385 | - BAPI `clerkClient` methods eg (`clerkClient.users.getUserList(...)`)
3386 |
3387 | ### Patch Changes
3388 |
3389 | - Add the following properties to `users.updateUser(userId, params)` params: ([#2619](https://github.com/clerk/javascript/pull/2619)) by [@SokratisVidros](https://github.com/SokratisVidros)
3390 |
3391 | - `password_hasher`
3392 | - `password_digest`
3393 | - `publicMetadata`
3394 | - `privateMetadata`
3395 | - `unsafeMetadata`
3396 |
3397 | - Updated dependencies [[`d4ff346dd`](https://github.com/clerk/javascript/commit/d4ff346dd53bb3e1970e80bdc7b188c2dd344f12)]:
3398 | - @clerk/[email protected]
3399 |
3400 | ## 1.0.0-alpha-v5.17
3401 |
3402 | ### Major Changes
3403 |
3404 | - Drop `user` / `organization` / `session` from auth object on **signed-out** state (current value was `null`). Eg ([#2598](https://github.com/clerk/javascript/pull/2598)) by [@dimkl](https://github.com/dimkl)
3405 |
3406 | ```diff
3407 | // Backend
3408 | import { createClerkClient } from '@clerk/backend';
3409 |
3410 | const clerkClient = createClerkClient({...});
3411 | const requestState = clerkClient.authenticateRequest(request, {...});
3412 |
3413 | - const { user, organization, session } = requestState.toAuth();
3414 | + const { userId, organizationId, sessionId } = requestState.toAuth();
3415 |
3416 | // Remix
3417 | import { getAuth } from '@clerk/remix/ssr.server';
3418 |
3419 | - const { user, organization, session } = await getAuth(args);
3420 | + const { userId, organizationId, sessionId } = await getAuth(args);
3421 |
3422 | // or
3423 | rootAuthLoader(
3424 | args,
3425 | ({ request }) => {
3426 | - const { user, organization, session } = request.auth;
3427 | + const { userId, organizationId, sessionId } = request.auth;
3428 | // ...
3429 | },
3430 | { loadUser: true },
3431 | );
3432 |
3433 | // NextJS
3434 | import { getAuth } from '@clerk/nextjs/server';
3435 |
3436 | - const { user, organization, session } = getAuth(args);
3437 | + const { userId, organizationId, sessionId } = getAuth(req, opts);
3438 |
3439 | // Gatsby
3440 | import { withServerAuth } from 'gatsby-plugin-clerk';
3441 |
3442 | export const getServerData: GetServerData<any> = withServerAuth(
3443 | async props => {
3444 | - const { user, organization, session } = props;
3445 | + const { userId, organizationId, sessionId } = props;
3446 | return { props: { data: '1', auth: props.auth, userId, organizationId, sessionId } };
3447 | },
3448 | { loadUser: true },
3449 | );
3450 | ```
3451 |
3452 | - Replace return the value of the following jwt helpers to match the format of backend API client return values (for consistency). ([#2596](https://github.com/clerk/javascript/pull/2596)) by [@dimkl](https://github.com/dimkl)
3453 |
3454 | ```diff
3455 | import { signJwt } from '@clerk/backend/jwt';
3456 |
3457 | - const { data, error } = await signJwt(...);
3458 | + const { data, errors: [error] = [] } = await signJwt(...);
3459 | ```
3460 |
3461 | ```diff
3462 | import { verifyJwt } from '@clerk/backend/jwt';
3463 |
3464 | - const { data, error } = await verifyJwt(...);
3465 | + const { data, errors: [error] = [] } = await verifyJwt(...);
3466 | ```
3467 |
3468 | ```diff
3469 | import { hasValidSignature } from '@clerk/backend/jwt';
3470 |
3471 | - const { data, error } = await hasValidSignature(...);
3472 | + const { data, errors: [error] = [] } = await hasValidSignature(...);
3473 | ```
3474 |
3475 | ```diff
3476 | import { decodeJwt } from '@clerk/backend/jwt';
3477 |
3478 | - const { data, error } = await decodeJwt(...);
3479 | + const { data, errors: [error] = [] } = await decodeJwt(...);
3480 | ```
3481 |
3482 | ```diff
3483 | import { verifyToken } from '@clerk/backend';
3484 |
3485 | - const { data, error } = await verifyToken(...);
3486 | + const { data, errors: [error] = [] } = await verifyToken(...);
3487 | ```
3488 |
3489 | ### Patch Changes
3490 |
3491 | - Update `@clerk/nextjs` error messages to refer to `clerkMiddleware()` and deprecated `authMiddleware()` and fix a typo in `cannotRenderSignUpComponentWhenSessionExists` error message. ([#2589](https://github.com/clerk/javascript/pull/2589)) by [@dimkl](https://github.com/dimkl)
3492 |
3493 | ## 1.0.0-alpha-v5.16
3494 |
3495 | ### Patch Changes
3496 |
3497 | - The `emails` endpoint helper and the corresponding `createEmail` method have been removed from the `@clerk/backend` SDK and `apiClint.emails.createEmail` will no longer be available. ([#2548](https://github.com/clerk/javascript/pull/2548)) by [@Nikpolik](https://github.com/Nikpolik)
3498 |
3499 | We will not be providing an alternative method for creating and sending emails directly from our JavaScript SDKs with this release. If you are currently using `createEmail` and you wish to update to the latest SDK version, please reach out to our support team (https://clerk.com/support) so we can assist you.
3500 |
3501 | - Update README for v5 ([#2577](https://github.com/clerk/javascript/pull/2577)) by [@LekoArts](https://github.com/LekoArts)
3502 |
3503 | ## 1.0.0-alpha-v5.15
3504 |
3505 | ### Major Changes
3506 |
3507 | - Change `SessionApi.getToken()` to return consistent `{ data, errors }` return value ([#2539](https://github.com/clerk/javascript/pull/2539)) by [@dimkl](https://github.com/dimkl)
3508 |
3509 | and fix the `getToken()` from requestState to have the same return behavior as v4
3510 | (return Promise<string> or throw error).
3511 | This change fixes issues with `getToken()` in `@clerk/nextjs` / `@clerk/remix` / `@clerk/fastify` / `@clerk/sdk-node` / `gatsby-plugin-clerk`:
3512 |
3513 | Example:
3514 |
3515 | ```typescript
3516 | import { getAuth } from '@clerk/nextjs/server';
3517 |
3518 | const { getToken } = await getAuth(...);
3519 | const jwtString = await getToken(...);
3520 | ```
3521 |
3522 | The change in `SessionApi.getToken()` return value is a breaking change, to keep the existing behavior use the following:
3523 |
3524 | ```typescript
3525 | import { ClerkAPIResponseError } from '@clerk/shared/error';
3526 |
3527 | const response = await clerkClient.sessions.getToken(...);
3528 |
3529 | if (response.errors) {
3530 | const { status, statusText, clerkTraceId } = response;
3531 | const error = new ClerkAPIResponseError(statusText || '', {
3532 | data: [],
3533 | status: Number(status || ''),
3534 | clerkTraceId,
3535 | });
3536 | error.errors = response.errors;
3537 |
3538 | throw error;
3539 | }
3540 |
3541 | // the value of the v4 `clerkClient.sessions.getToken(...)`
3542 | const jwtString = response.data.jwt;
3543 | ```
3544 |
3545 | ### Minor Changes
3546 |
3547 | - Replace the `Clerk-Backend-SDK` header with `User-Agent` in BAPI requests and update it's value to contain both the package name and the package version of the clerk package ([#2558](https://github.com/clerk/javascript/pull/2558)) by [@dimkl](https://github.com/dimkl)
3548 |
3549 | executing the request. Eg request from `@clerk/nextjs` to BAPI with append `User-Agent: @clerk/[email protected]` using the latest version.
3550 |
3551 | Miscellaneous changes: The backend test build changed to use tsup.
3552 |
3553 | ### Patch Changes
3554 |
3555 | - Updated dependencies [[`8cc45d2af`](https://github.com/clerk/javascript/commit/8cc45d2af98320ccced3768fb039b86576e424a5)]:
3556 | - @clerk/[email protected]
3557 |
3558 | ## 1.0.0-alpha-v5.14
3559 |
3560 | ### Minor Changes
3561 |
3562 | - Add fullName, primaryEmailAddress, primaryPhoneNumber, primaryWeb3Wallet to User class. ([#2493](https://github.com/clerk/javascript/pull/2493)) by [@panteliselef](https://github.com/panteliselef)
3563 |
3564 | ### Patch Changes
3565 |
3566 | - Fix an error in the handshake flow where the request would throw an unhandled error when verification of the handshake payload fails. ([#2541](https://github.com/clerk/javascript/pull/2541)) by [@BRKalow](https://github.com/BRKalow)
3567 |
3568 | - Replace enums with `as const` objects so `@clerk/backend` is consistent with the other packages ([#2516](https://github.com/clerk/javascript/pull/2516)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
3569 |
3570 | ## 1.0.0-alpha-v5.13
3571 |
3572 | ### Patch Changes
3573 |
3574 | - Updated dependencies [[`1dc28ab46`](https://github.com/clerk/javascript/commit/1dc28ab46f6930074334be183c637ce7a81bebf7), [`ea4933655`](https://github.com/clerk/javascript/commit/ea4933655863ce315324aa2a3be7d5f263c2b61f), [`38d8b3e8a`](https://github.com/clerk/javascript/commit/38d8b3e8a0387bcf0b9c8d16e3bbfcfe9b643ca2)]:
3575 | - @clerk/[email protected]
3576 |
3577 | ## 1.0.0-alpha-v5.12
3578 |
3579 | ### Patch Changes
3580 |
3581 | - Updated dependencies [[`7ecd6f6ab`](https://github.com/clerk/javascript/commit/7ecd6f6abb0e5bfb1a57c99cc11860de311c3e82)]:
3582 | - @clerk/[email protected]
3583 |
3584 | ## 1.0.0-alpha-v5.11
3585 |
3586 | ### Minor Changes
3587 |
3588 | - Add `createOrganizationEnabled` param in `@clerk/backend` method `User.updateUser()` ([#2415](https://github.com/clerk/javascript/pull/2415)) by [@dimkl](https://github.com/dimkl)
3589 |
3590 | Example:
3591 |
3592 | ```typescript
3593 | import { createClerkClient } from '@clerk/backend';
3594 |
3595 | const clerkClient = createClerkClient({...});
3596 | await clerkClient.users.updateUser('user_...', { createOrganizationEnabled: true })
3597 | ```
3598 |
3599 | ### Patch Changes
3600 |
3601 | - `OrganizationMembershipRole` should respect authorization types provided by the developer if those exist. ([#2408](https://github.com/clerk/javascript/pull/2408)) by [@panteliselef](https://github.com/panteliselef)
3602 |
3603 | - Fixed an issue where errors returned from backend api requests are not converted to camelCase. ([#2423](https://github.com/clerk/javascript/pull/2423)) by [@Nikpolik](https://github.com/Nikpolik)
3604 |
3605 | ## 1.0.0-alpha-v5.10
3606 |
3607 | ### Major Changes
3608 |
3609 | - Change return value of `verifyToken()` from `@clerk/backend` to `{ data, error}`. ([#2377](https://github.com/clerk/javascript/pull/2377)) by [@dimkl](https://github.com/dimkl)
3610 |
3611 | To replicate the current behaviour use this:
3612 |
3613 | ```typescript
3614 | import { verifyToken } from '@clerk/backend'
3615 |
3616 | const { data, error } = await verifyToken(...);
3617 | if(error){
3618 | throw error;
3619 | }
3620 | ```
3621 |
3622 | - Change return values of `signJwt`, `hasValidSignature`, `decodeJwt`, `verifyJwt` ([#2377](https://github.com/clerk/javascript/pull/2377)) by [@dimkl](https://github.com/dimkl)
3623 |
3624 | to return `{ data, error }`. Example of keeping the same behavior using those utilities:
3625 |
3626 | ```typescript
3627 | import { signJwt, hasValidSignature, decodeJwt, verifyJwt } from '@clerk/backend/jwt';
3628 |
3629 | const { data, error } = await signJwt(...)
3630 | if (error) throw error;
3631 |
3632 | const { data, error } = await hasValidSignature(...)
3633 | if (error) throw error;
3634 |
3635 | const { data, error } = decodeJwt(...)
3636 | if (error) throw error;
3637 |
3638 | const { data, error } = await verifyJwt(...)
3639 | if (error) throw error;
3640 | ```
3641 |
3642 | - Changes in exports of `@clerk/backend`: ([#2363](https://github.com/clerk/javascript/pull/2363)) by [@dimkl](https://github.com/dimkl)
3643 |
3644 | - Expose the following helpers and enums from `@clerk/backend/internal`:
3645 | ```typescript
3646 | import {
3647 | AuthStatus,
3648 | buildRequestUrl,
3649 | constants,
3650 | createAuthenticateRequest,
3651 | createIsomorphicRequest,
3652 | debugRequestState,
3653 | makeAuthObjectSerializable,
3654 | prunePrivateMetadata,
3655 | redirect,
3656 | sanitizeAuthObject,
3657 | signedInAuthObject,
3658 | signedOutAuthObject,
3659 | } from '@clerk/backend/internal';
3660 | ```
3661 | - Drop the above exports from the top-level api:
3662 | ```typescript
3663 | // Before
3664 | import { AuthStatus, ... } from '@clerk/backend';
3665 | // After
3666 | import { AuthStatus, ... } from '@clerk/backend/internal';
3667 | ```
3668 | Dropping those exports results in also dropping the exports from `gatsby-plugin-clerk`, `@clerk/clerk-sdk-node`, `@clerk/backend`, `@clerk/fastify`, `@clerk/nextjs`, `@clerk/remix` packages.
3669 |
3670 | - Changes in exports of `@clerk/backend`: ([#2365](https://github.com/clerk/javascript/pull/2365)) by [@dimkl](https://github.com/dimkl)
3671 |
3672 | - Drop the following internal exports from the top-level api:
3673 | ```typescript
3674 | // Before
3675 | import {
3676 | AllowlistIdentifier,
3677 | Client,
3678 | DeletedObject,
3679 | Email,
3680 | EmailAddress,
3681 | ExternalAccount,
3682 | IdentificationLink,
3683 | Invitation,
3684 | OauthAccessToken,
3685 | ObjectType,
3686 | Organization,
3687 | OrganizationInvitation,
3688 | OrganizationMembership,
3689 | OrganizationMembershipPublicUserData,
3690 | PhoneNumber,
3691 | RedirectUrl,
3692 | SMSMessage,
3693 | Session,
3694 | SignInToken,
3695 | Token,
3696 | User,
3697 | Verification,
3698 | } from '@clerk/backend';
3699 | // After : no alternative since there is no need to use those classes
3700 | ```
3701 | Dropping those exports results in also dropping the exports from `gatsby-plugin-clerk`, `@clerk/clerk-sdk-node`, `@clerk/backend`, `@clerk/fastify`, `@clerk/nextjs`, `@clerk/remix` packages.
3702 | - Keep those 3 resource related type exports
3703 | ```typescript
3704 | import type { Organization, Session, User, WebhookEvent, WebhookEventType } from '@clerk/backend';
3705 | ```
3706 |
3707 | - Changes in exports of `@clerk/backend`: ([#2364](https://github.com/clerk/javascript/pull/2364)) by [@dimkl](https://github.com/dimkl)
3708 |
3709 | - Expose the following helpers and enums from `@clerk/backend/jwt`:
3710 | ```typescript
3711 | import { decodeJwt, hasValidSignature, signJwt, verifyJwt } from '@clerk/backend/jwt';
3712 | ```
3713 | - Drop the above exports from the top-level api:
3714 | ```typescript
3715 | // Before
3716 | import { decodeJwt, ... } from '@clerk/backend';
3717 | // After
3718 | import { decodeJwt, ... } from '@clerk/backend/jwt';
3719 | ```
3720 | Dropping those exports results in also dropping the exports from `gatsby-plugin-clerk`, `@clerk/clerk-sdk-node`, `@clerk/backend`, `@clerk/fastify`, `@clerk/nextjs`, `@clerk/remix` packages.
3721 |
3722 | - Changes in `@clerk/backend` exports: ([#2362](https://github.com/clerk/javascript/pull/2362)) by [@dimkl](https://github.com/dimkl)
3723 |
3724 | - Drop Internal `deserialize` helper
3725 | - Introduce `/errors` subpath export, eg:
3726 | ```typescript
3727 | import {
3728 | TokenVerificationError,
3729 | TokenVerificationErrorAction,
3730 | TokenVerificationErrorCode,
3731 | TokenVerificationErrorReason,
3732 | } from '@clerk/backend/errors';
3733 | ```
3734 | - Drop errors from top-level export
3735 | ```typescript
3736 | // Before
3737 | import { TokenVerificationError, TokenVerificationErrorReason } from '@clerk/backend';
3738 | // After
3739 | import { TokenVerificationError, TokenVerificationErrorReason } from '@clerk/backend/errors';
3740 | ```
3741 |
3742 | ### Minor Changes
3743 |
3744 | - Improve ESM support in `@clerk/backend` for Node by using .mjs for #crypto subpath import ([#2360](https://github.com/clerk/javascript/pull/2360)) by [@dimkl](https://github.com/dimkl)
3745 |
3746 | ### Patch Changes
3747 |
3748 | - Update the handshake flow to only trigger for document requests. ([#2352](https://github.com/clerk/javascript/pull/2352)) by [@BRKalow](https://github.com/BRKalow)
3749 |
3750 | - Updated dependencies [[`5f58a2274`](https://github.com/clerk/javascript/commit/5f58a22746aba94f76bef5dbbc94fa93ea3b0b7e)]:
3751 | - @clerk/[email protected]
3752 |
3753 | ## 1.0.0-alpha-v5.9
3754 |
3755 | ### Major Changes
3756 |
3757 | - Drop unused SearchParams.AuthStatus constant ([#2347](https://github.com/clerk/javascript/pull/2347)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
3758 |
3759 | ## 1.0.0-alpha-v5.8
3760 |
3761 | ### Major Changes
3762 |
3763 | - Remove the named `Clerk` import from `@clerk/backend` and import `createClerkClient` instead. The latter is a factory method that will create a Clerk client instance for you. This aligns usage across our SDKs and will enable us to better ship DX improvements in the future. ([#2317](https://github.com/clerk/javascript/pull/2317)) by [@tmilewski](https://github.com/tmilewski)
3764 |
3765 | Inside your code, search for occurrences like these:
3766 |
3767 | ```js
3768 | import { Clerk } from '@clerk/backend';
3769 | const clerk = Clerk({ secretKey: '...' });
3770 | ```
3771 |
3772 | You need to rename the import from `Clerk` to `createClerkClient` and change its usage:
3773 |
3774 | ```js
3775 | import { createClerkClient } from '@clerk/backend';
3776 | const clerk = createClerkClient({ secretKey: '...' });
3777 | ```
3778 |
3779 | - - Refactor the `authenticateRequest()` flow to use the new client handshake endpoint. This replaces the previous "interstitial"-based flow. This should improve performance and overall reliability of Clerk's server-side request authentication functionality. ([#2300](https://github.com/clerk/javascript/pull/2300)) by [@BRKalow](https://github.com/BRKalow)
3780 |
3781 | - `authenticateRequest()` now accepts two arguments, a `Request` object to authenticate and options:
3782 | ```ts
3783 | authenticateRequest(new Request(...), { secretKey: '...' })
3784 | ```
3785 |
3786 | ### Minor Changes
3787 |
3788 | - Introduce Protect for authorization. ([#2170](https://github.com/clerk/javascript/pull/2170)) by [@panteliselef](https://github.com/panteliselef)
3789 |
3790 | Changes in public APIs:
3791 |
3792 | - Rename Gate to Protect
3793 | - Support for permission checks. (Previously only roles could be used)
3794 | - Remove the `experimental` tags and prefixes
3795 | - 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.
3796 | - Protect can now be used without required props. In this case behaves as `<SignedIn>`, if no authorization props are passed.
3797 | - `has` will throw an error if neither `permission` or `role` is passed.
3798 | - `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.
3799 | - inside a page or layout file it will render the nearest `not-found` component set by the developer
3800 | - inside a route handler it will return empty response body with a 404 status code
3801 |
3802 | ### Patch Changes
3803 |
3804 | - Updated dependencies [[`896cb6104`](https://github.com/clerk/javascript/commit/896cb610409f84c0ff7a4f502f0b4ccee1afc157), [`75ea300bc`](https://github.com/clerk/javascript/commit/75ea300bce16a0ce401a225263bb267ad2a217b8)]:
3805 | - @clerk/[email protected]
3806 |
3807 | ## 1.0.0-alpha-v5.7
3808 |
3809 | ### Major Changes
3810 |
3811 | - Limit TokenVerificationError exports to TokenVerificationError and TokenVerificationErrorReason ([#2189](https://github.com/clerk/javascript/pull/2189)) by [@tmilewski](https://github.com/tmilewski)
3812 |
3813 | ### Minor Changes
3814 |
3815 | - Add missing `createdAt` param in `User#createUser()` of `@clerk/backend`. ([#2284](https://github.com/clerk/javascript/pull/2284)) by [@dimkl](https://github.com/dimkl)
3816 |
3817 | Fix `clerkClient.verifyToken()` signature to support a single `token: string` parameter.
3818 |
3819 | ### Patch Changes
3820 |
3821 | - Added missing types for `clerkClient.invitations.createInvitation` ([#2268](https://github.com/clerk/javascript/pull/2268)) by [@royanger](https://github.com/royanger)
3822 |
3823 | ## 1.0.0-alpha-v5.6
3824 |
3825 | ### Minor Changes
3826 |
3827 | - - Added the `User.last_active_at` timestamp field which stores the latest date of session activity, with day precision. For further details, please consult the [Backend API documentation](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUser). ([#2261](https://github.com/clerk/javascript/pull/2261)) by [@georgepsarakis](https://github.com/georgepsarakis)
3828 |
3829 | - Added the `last_active_at_since` filtering parameter for the Users listing request. The new parameter can be used to retrieve users that have displayed session activity since the given date. For further details, please consult the [Backend API documentation](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUserList).
3830 | - Added the `last_active_at` available options for the `orderBy` parameter of the Users listing request. For further details, please consult the [Backend API documentation](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUserList).
3831 |
3832 | ### Patch Changes
3833 |
3834 | - Drop the introduction of `OrganizationRole` and `OrganizationPermission` resources fro BAPI. ([#2252](https://github.com/clerk/javascript/pull/2252)) by [@panteliselef](https://github.com/panteliselef)
3835 |
3836 | - Set correct information on required Node.js and React versions in README ([#2264](https://github.com/clerk/javascript/pull/2264)) by [@LekoArts](https://github.com/LekoArts)
3837 |
3838 | - Updated dependencies [[`d30ea1faa`](https://github.com/clerk/javascript/commit/d30ea1faa45074e09c037530e8ba3ca2dbd50654)]:
3839 | - @clerk/[email protected]
3840 |
3841 | ## 1.0.0-alpha-v5.5
3842 |
3843 | ### Patch Changes
3844 |
3845 | - Updated dependencies [[`4b8bedc66`](https://github.com/clerk/javascript/commit/4b8bedc66d47dca5c6192148f4b31ae6d49ff733), [`c776f86fb`](https://github.com/clerk/javascript/commit/c776f86fb2a999dcae46fda9abb5005718c354b2)]:
3846 | - @clerk/[email protected]
3847 |
3848 | ## 1.0.0-alpha-v5.4
3849 |
3850 | ### Minor Changes
3851 |
3852 | - Expose `totalCount` from `@clerk/backend` client responses for responses ([#2199](https://github.com/clerk/javascript/pull/2199)) by [@dimkl](https://github.com/dimkl)
3853 |
3854 | containing pagination information or for responses with type `{ data: object[] }`.
3855 |
3856 | Example:
3857 |
3858 | ```typescript
3859 | import { Clerk } from '@clerk/backend';
3860 |
3861 | const clerkClient = Clerk({ secretKey: '...' });
3862 |
3863 | // current
3864 | const { data } = await clerkClient.organizations.getOrganizationList();
3865 | console.log('totalCount: ', data.length);
3866 |
3867 | // new
3868 | const { data, totalCount } = await clerkClient.organizations.getOrganizationList();
3869 | console.log('totalCount: ', totalCount);
3870 | ```
3871 |
3872 | - Re-use common pagination types for consistency across types. ([#2210](https://github.com/clerk/javascript/pull/2210)) by [@dimkl](https://github.com/dimkl)
3873 |
3874 | Types introduced in `@clerk/types`:
3875 |
3876 | - `ClerkPaginationRequest` : describes pagination related props in request payload
3877 | - `ClerkPaginatedResponse` : describes pagination related props in response body
3878 | - `ClerkPaginationParams` : describes pagination related props in api client method params
3879 |
3880 | ## 1.0.0-alpha-v5.3
3881 |
3882 | ### Minor Changes
3883 |
3884 | - Breaking Changes: ([#2169](https://github.com/clerk/javascript/pull/2169)) by [@dimkl](https://github.com/dimkl)
3885 |
3886 | - Drop `isLegacyFrontendApiKey` from `@clerk/shared`
3887 | - Drop default exports from `@clerk/clerk-js`
3888 | - on headless Clerk type
3889 | - on ui and ui.retheme `Portal`
3890 | - Use `isProductionFromSecretKey` instead of `isProductionFromApiKey`
3891 | - Use `isDevelopmentFromSecretKey` instead of `isDevelopmentFromApiKey`
3892 |
3893 | Changes:
3894 |
3895 | - Rename `HeadlessBrowserClerkConstrutor` / `HeadlessBrowserClerkConstructor` (typo)
3896 | - Use `isomorphicAtob` / `isomorhpicBtoa` to replace `base-64` in `@clerk/expo`
3897 | - Refactor merging build-time and runtime props in `@clerk/backend` clerk client
3898 | - Drop `node-fetch` dependency from `@clerk/backend`
3899 | - Drop duplicate test in `@clerk/backend`
3900 |
3901 | - Deprecate `createSMSMessage` and `SMSMessageApi` from `clerkClient`. ([#2165](https://github.com/clerk/javascript/pull/2165)) by [@Nikpolik](https://github.com/Nikpolik)
3902 |
3903 | The equivalent `/sms_messages` Backend API endpoint will also be dropped in the future, since this feature will no longer be available for new instances.
3904 |
3905 | For a brief period it will still be accessible for instances that have used it in the past 7
3906 | days (13-11-2023 to 20-11-2023).
3907 |
3908 | New instances will get a 403 forbidden response if they try to access it.
3909 |
3910 | ### Patch Changes
3911 |
3912 | - Add OrganizationRoleAPI for CRUD operations regarding instance level organization roles. ([#2177](https://github.com/clerk/javascript/pull/2177)) by [@panteliselef](https://github.com/panteliselef)
3913 |
3914 | - Remove createSms functions from @clerk/backend and @clerk/sdk-node. ([#2165](https://github.com/clerk/javascript/pull/2165)) by [@Nikpolik](https://github.com/Nikpolik)
3915 |
3916 | The equivalent /sms_messages Backend API endpoint will also dropped in the future, since this feature will no longer be available for new instances.
3917 |
3918 | For a brief period it will still be accessible for instances that have used it in the past 7
3919 | days (13-11-2023 to 20-11-2023).
3920 |
3921 | New instances will get a 403 forbidden response if they try to access it.
3922 |
3923 | - Add OrganizationPermissionAPI for CRUD operations regarding instance level organization permissions. ([#2178](https://github.com/clerk/javascript/pull/2178)) by [@panteliselef](https://github.com/panteliselef)
3924 |
3925 | - 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)
3926 |
3927 | - Updated dependencies [[`52ff8fe6b`](https://github.com/clerk/javascript/commit/52ff8fe6b6ff88ceb5e1246378b54b0565bede9d), [`4bb57057e`](https://github.com/clerk/javascript/commit/4bb57057e9af20fc433626ed178d97d3ca811362), [`40ac4b645`](https://github.com/clerk/javascript/commit/40ac4b645f449b546dae5b4c0d013c9d9ea6d09c)]:
3928 | - @clerk/[email protected]
3929 |
3930 | ## 1.0.0-alpha-v5.2
3931 |
3932 | ### Major Changes
3933 |
3934 | - 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)
3935 |
3936 | ### Patch Changes
3937 |
3938 | - Updated dependencies [[`c2a090513`](https://github.com/clerk/javascript/commit/c2a0905132684a4a1e8d598b66caddf20062273e)]:
3939 | - @clerk/[email protected]
3940 |
3941 | ## 1.0.0-alpha-v5.1
3942 |
3943 | ### Major Changes
3944 |
3945 | - Drop default exports from all packages. Migration guide: ([#2150](https://github.com/clerk/javascript/pull/2150)) by [@dimkl](https://github.com/dimkl)
3946 |
3947 | - use `import { Clerk } from '@clerk/backend';`
3948 | - use `import { clerkInstance } from '@clerk/clerk-sdk-node';`
3949 | - use `import { Clerk } from '@clerk/clerk-sdk-node';`
3950 | - use `import { Clerk } from '@clerk/clerk-js';`
3951 | - use `import { Clerk } from '@clerk/clerk-js/headless';`
3952 | - use `import { IsomorphicClerk } from '@clerk/clerk-react'`
3953 |
3954 | - Change the response payload of Backend API requests to return `{ data, errors }` instead of return the data and throwing on error response. ([#2126](https://github.com/clerk/javascript/pull/2126)) by [@dimkl](https://github.com/dimkl)
3955 |
3956 | Code example to keep the same behavior:
3957 |
3958 | ```typescript
3959 | import { users } from '@clerk/backend';
3960 | import { ClerkAPIResponseError } from '@clerk/shared/error';
3961 |
3962 | const { data, errors, clerkTraceId, status, statusText } = await users.getUser('user_deadbeef');
3963 | if (errors) {
3964 | throw new ClerkAPIResponseError(statusText, {
3965 | data: errors,
3966 | status,
3967 | clerkTraceId,
3968 | });
3969 | }
3970 | ```
3971 |
3972 | - Enforce passing `request` param to `authenticateRequest` method of `@clerk/backend` ([#2122](https://github.com/clerk/javascript/pull/2122)) by [@dimkl](https://github.com/dimkl)
3973 |
3974 | instead of passing each header or cookie related option that is used internally to
3975 | determine the request state.
3976 |
3977 | Migration guide:
3978 |
3979 | - use `request` param in `clerkClient.authenticateRequest()` instead of:
3980 | - `origin`
3981 | - `host`
3982 | - `forwardedHost`
3983 | - `forwardedProto`
3984 | - `referrer`
3985 | - `userAgent`
3986 | - `cookieToken`
3987 | - `clientUat`
3988 | - `headerToken`
3989 | - `searchParams`
3990 |
3991 | Example
3992 |
3993 | ```typescript
3994 | //
3995 | // current
3996 | //
3997 | import { clerkClient } from '@clerk/backend'
3998 |
3999 | const requestState = await clerkClient.authenticateRequest({
4000 | secretKey: 'sk_....'
4001 | publishableKey: 'pk_....'
4002 | origin: req.headers.get('origin'),
4003 | host: req.headers.get('host'),
4004 | forwardedHost: req.headers.get('x-forwarded-host'),
4005 | forwardedProto: req.headers.get('x-forwarded-proto'),
4006 | referrer: req.headers.get('referer'),
4007 | userAgent: req.headers.get('user-agent'),
4008 | clientUat: req.cookies.get('__client_uat'),
4009 | cookieToken: req.cookies.get('__session'),
4010 | headerToken: req.headers.get('authorization'),
4011 | searchParams: req.searchParams
4012 | });
4013 |
4014 | //
4015 | // new
4016 | //
4017 | import { clerkClient, } from '@clerk/backend'
4018 |
4019 | // use req (if it's a fetch#Request instance) or use `createIsomorphicRequest` from `@clerk/backend`
4020 | // to re-construct fetch#Request instance
4021 | const requestState = await clerkClient.authenticateRequest({
4022 | secretKey: 'sk_....'
4023 | publishableKey: 'pk_....'
4024 | request: req
4025 | });
4026 |
4027 | ```
4028 |
4029 | - Drop deprecated properties. Migration steps: ([#1899](https://github.com/clerk/javascript/pull/1899)) by [@dimkl](https://github.com/dimkl)
4030 |
4031 | - use `createClerkClient` instead of `__unstable_options`
4032 | - use `publishableKey` instead of `frontendApi`
4033 | - use `clockSkewInMs` instead of `clockSkewInSeconds`
4034 | - use `apiKey` instead of `secretKey`
4035 | - drop `httpOptions`
4036 | - use `*.image` instead of
4037 | - `ExternalAccount.picture`
4038 | - `ExternalAccountJSON.avatar_url`
4039 | - `Organization.logoUrl`
4040 | - `OrganizationJSON.logo_url`
4041 | - `User.profileImageUrl`
4042 | - `UserJSON.profile_image_url`
4043 | - `OrganizationMembershipPublicUserData.profileImageUrl`
4044 | - `OrganizationMembershipPublicUserDataJSON.profile_image_url`
4045 | - drop `pkgVersion`
4046 | - use `Organization.getOrganizationInvitationList` with `status` instead of `getPendingOrganizationInvitationList`
4047 | - drop `orgs` claim (if required, can be manually added by using `user.organizations` in a jwt template)
4048 | - use `localInterstitial` instead of `remotePublicInterstitial` / `remotePublicInterstitialUrl`
4049 |
4050 | Internal changes:
4051 |
4052 | - replaced error enum (and it's) `SetClerkSecretKeyOrAPIKey` with `SetClerkSecretKey`
4053 |
4054 | ### Patch Changes
4055 |
4056 | - Strip `experimental__has` from the auth object in `makeAuthObjectSerializable()`. This fixes an issue in Next.js where an error is being thrown when this function is passed to a client component as a prop. ([#2101](https://github.com/clerk/javascript/pull/2101)) by [@BRKalow](https://github.com/BRKalow)
4057 |
4058 | - Updated dependencies [[`64d3763ec`](https://github.com/clerk/javascript/commit/64d3763ec73747ad04c4b47017195cf4114e150c), [`83e9d0846`](https://github.com/clerk/javascript/commit/83e9d08469e7c2840f06aa7d86831055e23f67a5), [`7f833da9e`](https://github.com/clerk/javascript/commit/7f833da9ebc1b2ec9c65513628c377d0584e5d72), [`492b8a7b1`](https://github.com/clerk/javascript/commit/492b8a7b12f14658a384566012e5807f0a171710), [`0d1052ac2`](https://github.com/clerk/javascript/commit/0d1052ac284b909786fd0e4744b02fcf4d1a8be6), [`5471c7e8d`](https://github.com/clerk/javascript/commit/5471c7e8dd0155348748fa90e5ae97093f59efe9), [`e0e79b4fe`](https://github.com/clerk/javascript/commit/e0e79b4fe47f64006718d547c898b9f67fe4d424)]:
4059 | - @clerk/[email protected]
4060 |
4061 | ## 1.0.0-alpha-v5.0
4062 |
4063 | ### Major Changes
4064 |
4065 | - Internal update default apiUrl domain from clerk.dev to clerk.com ([#1878](https://github.com/clerk/javascript/pull/1878)) by [@dimkl](https://github.com/dimkl)
4066 |
4067 | - 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)
4068 |
4069 | ### Minor Changes
4070 |
4071 | - Added prefers-color-scheme to interstitial ([#1935](https://github.com/clerk/javascript/pull/1935)) by [@royanger](https://github.com/royanger)
4072 |
4073 | - Add support for NextJS 14 ([#1968](https://github.com/clerk/javascript/pull/1968)) by [@dimkl](https://github.com/dimkl)
4074 |
4075 | - Experimental support for `<Gate/>` with role checks. ([#1942](https://github.com/clerk/javascript/pull/1942)) by [@panteliselef](https://github.com/panteliselef)
4076 |
4077 | ### Patch Changes
4078 |
4079 | - Add `sha256` hasher support to PasswordHasher as described in [`Users#CreateUser`](https://clerk.com/docs/reference/backend-api/tag/Users#operation/CreateUser!path=password_hasher) ([#1941](https://github.com/clerk/javascript/pull/1941)) by [@MathieuNls](https://github.com/MathieuNls)
4080 |
4081 | - Fix type inferance for auth helper. ([#2047](https://github.com/clerk/javascript/pull/2047)) by [@panteliselef](https://github.com/panteliselef)
4082 |
4083 | - Add clerkTraceId to ClerkBackendApiResponse and ClerkAPIResponseError to allow for better tracing and debugging API error responses. ([#1986](https://github.com/clerk/javascript/pull/1986)) by [@Nikpolik](https://github.com/Nikpolik)
4084 |
4085 | Uses `clerk_trace_id` when available in a response and defaults to [`cf-ray` identifier](https://developers.cloudflare.com/fundamentals/reference/cloudflare-ray-id/) if missing.
4086 |
4087 | - Updated dependencies [[`743c4d204`](https://github.com/clerk/javascript/commit/743c4d20423790b554e66923466081c0d3b0d9ed), [`791c49807`](https://github.com/clerk/javascript/commit/791c49807c3c9e19964cbf621c935d237caeecf3), [`a68eb3083`](https://github.com/clerk/javascript/commit/a68eb3083ff68459cd33098e2df190a5ba26c841), [`ef2325dcc`](https://github.com/clerk/javascript/commit/ef2325dcc18729e9ce9ee5823e9a963efa51dbc1), [`71663c568`](https://github.com/clerk/javascript/commit/71663c568926b1d60b97aa7ccc5298d05b618af2), [`97407d8aa`](https://github.com/clerk/javascript/commit/97407d8aa481007d3262fe7a0772dea901ce0a8c), [`97407d8aa`](https://github.com/clerk/javascript/commit/97407d8aa481007d3262fe7a0772dea901ce0a8c), [`7644b7472`](https://github.com/clerk/javascript/commit/7644b74726ba73e615a1256f9ff3fa03b0f8bc30), [`f5d55bb1f`](https://github.com/clerk/javascript/commit/f5d55bb1fc6a87303fb8bf461c3a917ae4da4005), [`6f755addd`](https://github.com/clerk/javascript/commit/6f755addd0886b9ff8b0d5dbe48e37470049acad)]:
4088 | - @clerk/[email protected]
4089 |
4090 | ## 0.31.3
4091 |
4092 | ### Patch Changes
4093 |
4094 | - 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)
4095 |
4096 | - Update imports of `@clerk/shared` to granular entrypoints. This addresses warnings during a Next.js build that are the result of unsupported APIs being included in the module graph of builds for the edge runtime. ([#1924](https://github.com/clerk/javascript/pull/1924)) by [@BRKalow](https://github.com/BRKalow)
4097 |
4098 | - Updated dependencies [[`3bf64107e`](https://github.com/clerk/javascript/commit/3bf64107e1d0f9fce55163276d157da7849a390f), [`52f8553d2`](https://github.com/clerk/javascript/commit/52f8553d22f9454ee1194fd162410db15da7a4be), [`92727eec3`](https://github.com/clerk/javascript/commit/92727eec39566278263ffa118a085493f964eb94), [`b09b66eec`](https://github.com/clerk/javascript/commit/b09b66eec6ed0fbf99d93cd6843826f19c911099), [`51861addf`](https://github.com/clerk/javascript/commit/51861addff911615035fdc74718a1deff3f5cd62), [`aa4cd7615`](https://github.com/clerk/javascript/commit/aa4cd761585b888706a36a6eed7436a8f0476dbf)]:
4099 | - @clerk/[email protected]
4100 | - @clerk/[email protected]
4101 |
4102 | ## 0.31.2
4103 |
4104 | ### Patch Changes
4105 |
4106 | - Updated dependencies [[`9ca215702`](https://github.com/clerk/javascript/commit/9ca215702d1b816217d2c06c812f7d653ec2da11)]:
4107 | - @clerk/[email protected]
4108 |
4109 | ## 0.31.1
4110 |
4111 | ### Patch Changes
4112 |
4113 | - Added new function `signJwt(payload, key, options)` for JWT token signing. ([#1786](https://github.com/clerk/javascript/pull/1786)) by [@Nikpolik](https://github.com/Nikpolik)
4114 |
4115 | Also updated the existing `hasValidSignature` and `verifyJwt` method to handle PEM-formatted keys directly (previously they had to be converted to jwks).
4116 | For key compatibility, support is specifically confined to `RSA` types and formats `jwk, pkcs8, spki`.
4117 |
4118 | - Updated dependencies [[`35be8709d`](https://github.com/clerk/javascript/commit/35be8709d88f1d1eef043acdba4d49b07578c7b2), [`e38488c92`](https://github.com/clerk/javascript/commit/e38488c929e437583296c34cde23f76218f78caf), [`a11f962bc`](https://github.com/clerk/javascript/commit/a11f962bcbcf225fb927122267de1e8f5faccf53), [`9b644d799`](https://github.com/clerk/javascript/commit/9b644d7991b8cba4b385e9443f87798cde5c9989), [`a9894b445`](https://github.com/clerk/javascript/commit/a9894b445bf1e463176b0442fb73c48f89d9fed8), [`834dadb36`](https://github.com/clerk/javascript/commit/834dadb36c30b2a8f052784de4ad1026b0083b4e), [`70f251007`](https://github.com/clerk/javascript/commit/70f2510074352206bbe7bdadf2c28ccf3c074c12), [`a46d6fe99`](https://github.com/clerk/javascript/commit/a46d6fe99bd9b80671b60347b4c35d558012200f)]:
4119 | - @clerk/[email protected]
4120 | - @clerk/[email protected]
4121 |
4122 | ## 0.31.0
4123 |
4124 | ### Minor Changes
4125 |
4126 | - Add support for LinkedIn OIDC ([#1772](https://github.com/clerk/javascript/pull/1772)) by [@fragoulis](https://github.com/fragoulis)
4127 |
4128 | ### Patch Changes
4129 |
4130 | - Throw an error if the `signInUrl` is on the same origin of a satellite application or if it is of invalid format ([#1845](https://github.com/clerk/javascript/pull/1845)) by [@desiprisg](https://github.com/desiprisg)
4131 |
4132 | - Avoid always showing deprecation warnings for `frontendApi` and `apiKey` in `@clerk/clerk-sdk-node` ([#1856](https://github.com/clerk/javascript/pull/1856)) by [@dimkl](https://github.com/dimkl)
4133 |
4134 | - Updated dependencies [[`977336f79`](https://github.com/clerk/javascript/commit/977336f793cd4ce5984f98dac3cedf9f5ec363f5), [`997b8e256`](https://github.com/clerk/javascript/commit/997b8e256c8f83d68d0ae4243c7ea5640573d1ae), [`91e9a55f4`](https://github.com/clerk/javascript/commit/91e9a55f4b9f1a8f8d843a788597026015ddeafd), [`91014880d`](https://github.com/clerk/javascript/commit/91014880df71c2618d0b1e513da4dd19ccd809e3), [`7f4d4b942`](https://github.com/clerk/javascript/commit/7f4d4b942e8834462cdc0976b106d9739c345f6b)]:
4135 | - @clerk/[email protected]
4136 | - @clerk/[email protected]
4137 |
4138 | ## 0.30.3
4139 |
4140 | ### Patch Changes
4141 |
4142 | - Apply deprecation warnings for @clerk/types: ([#1823](https://github.com/clerk/javascript/pull/1823)) by [@dimkl](https://github.com/dimkl)
4143 |
4144 | - `orgs` jwt claims
4145 | - `apiKey`
4146 | - `frontendApi`
4147 | - `redirect_url`
4148 | - `password`
4149 | - `generateSignature`
4150 | - `afterSwitchOrganizationUrl`
4151 | - `profileImageUrl`
4152 |
4153 | - Remove deprecation warning that is logging more than intended and not actionable for users of our SDKs. by [@nikosdouvlis](https://github.com/nikosdouvlis)
4154 |
4155 | - Retry the implemented changes from [#1767](https://github.com/clerk/javascript/pull/1767) which were reverted in [#1806](https://github.com/clerk/javascript/pull/1806) due to RSC related errors (not all uses components had the `use client` directive). Restore the original PR and add additional `use client` directives to ensure it works correctly. by [@nikosdouvlis](https://github.com/nikosdouvlis)
4156 |
4157 | - Updated dependencies [[`1136c7c15`](https://github.com/clerk/javascript/commit/1136c7c15043ffe917b4918e9e33f55b496cd679), [`1e212c19d`](https://github.com/clerk/javascript/commit/1e212c19d1cbfbcf6bc6718f5aec0a3cb893b96f), [`1136c7c15`](https://github.com/clerk/javascript/commit/1136c7c15043ffe917b4918e9e33f55b496cd679), [`1136c7c15`](https://github.com/clerk/javascript/commit/1136c7c15043ffe917b4918e9e33f55b496cd679)]:
4158 | - @clerk/[email protected]
4159 |
4160 | ## 0.30.2
4161 |
4162 | ### Patch Changes
4163 |
4164 | - Improve the `jwk-remote-missing` error by adding the available JWK IDs to the error message. This way you can understand why the entry was not found and compare the available ones with other keys. ([#1816](https://github.com/clerk/javascript/pull/1816)) by [@LekoArts](https://github.com/LekoArts)
4165 |
4166 | - Pins the internal dependency versions. This ensures that users installing our main framework SDKs will get consistent versions across all @clerk/ packages. ([#1798](https://github.com/clerk/javascript/pull/1798)) by [@BRKalow](https://github.com/BRKalow)
4167 |
4168 | - Update `authenticateRequest()` to respect the `CloudFront-Forwarded-Proto` header when determining the correct `forwardedProto` value. This fixes an issue when Clerk is used in applications that are deployed behind AWS CloudFront, where previously all requests were treated as cross-origin. ([#1817](https://github.com/clerk/javascript/pull/1817)) by [@dimkl](https://github.com/dimkl)
4169 |
4170 | - Remove experimental jsdoc tags from multi-domain types. ([#1819](https://github.com/clerk/javascript/pull/1819)) by [@panteliselef](https://github.com/panteliselef)
4171 |
4172 | - Updated dependencies [[`b59b6b75d`](https://github.com/clerk/javascript/commit/b59b6b75dc61bc4d7e61f7cca774f3731a2929b9), [`164f3aac7`](https://github.com/clerk/javascript/commit/164f3aac7928bc69301846130cc77986569d4e91), [`68259a2bb`](https://github.com/clerk/javascript/commit/68259a2bb8193befdde9101d4ec9bf305881d5e2), [`33e927c59`](https://github.com/clerk/javascript/commit/33e927c59fbf06436ff642ef9f846bd3b467e3e1), [`9514618d6`](https://github.com/clerk/javascript/commit/9514618d65cfdde0ff011eabd41a992b61fc8dc1), [`c7c6912f3`](https://github.com/clerk/javascript/commit/c7c6912f34874467bc74104690fe9f95491cc10d), [`71bb1c7b5`](https://github.com/clerk/javascript/commit/71bb1c7b570f7b0bbc377c8104c9abcc1af4cacf)]:
4173 | - @clerk/[email protected]
4174 |
4175 | ## 0.30.1
4176 |
4177 | ### Patch Changes
4178 |
4179 | - Temporarily revert internal change to resolve RSC-related errors ([#1806](https://github.com/clerk/javascript/pull/1806)) by [@nikosdouvlis](https://github.com/nikosdouvlis)
4180 |
4181 | ## 0.30.0
4182 |
4183 | ### Minor Changes
4184 |
4185 | - Replace utilities with `@clerk/shared` exports ([#1769](https://github.com/clerk/javascript/pull/1769)) by [@dimkl](https://github.com/dimkl)
4186 |
4187 | - Introduce a new getOrganizationInvitationList() method, along with support for filtering by status and the regular limit & offset parameters, which it can be used in order to list the invitations of a specific organization. We also marked the old getPendingOrganizationInvitationList() method as deprecated ([#1796](https://github.com/clerk/javascript/pull/1796)) by [@chanioxaris](https://github.com/chanioxaris)
4188 |
4189 | ### Patch Changes
4190 |
4191 | - Apply deprecation warnings for `@clerk/backend`: ([#1777](https://github.com/clerk/javascript/pull/1777)) by [@dimkl](https://github.com/dimkl)
4192 |
4193 | - backend api return format
4194 | - `clockSkewInSeconds`
4195 | - `pkgVersion`
4196 | - `picture`/`logoUrl`/`profileImageUrl`
4197 | - `InterstitialAPI`
4198 | - `httpOptions`
4199 | - `apiKey`
4200 | - `frontendApi`
4201 | - `__unstable_options`
4202 |
4203 | - Updated dependencies [[`7ffa6fac3`](https://github.com/clerk/javascript/commit/7ffa6fac3762f6fb130ba2f2fcaa28e52b36b3b4), [`5c8754239`](https://github.com/clerk/javascript/commit/5c8754239e9ef13656fb73f30c9c6a6187b9aa81), [`2f6a6ac99`](https://github.com/clerk/javascript/commit/2f6a6ac9991469bf8532019bb22ff50adecdb434), [`753f7bbda`](https://github.com/clerk/javascript/commit/753f7bbda9bbb7444f96222a3b6cae815a09058f), [`55c8ebd39`](https://github.com/clerk/javascript/commit/55c8ebd390dd88036aee06866009be6a50c63138)]:
4204 | - @clerk/[email protected]
4205 | - @clerk/[email protected]
4206 |
4207 | ## 0.29.3
4208 |
4209 | ### Patch Changes
4210 |
4211 | - Updated dependencies [[`c61ddf5bf`](https://github.com/clerk/javascript/commit/c61ddf5bf2664e38bbaba6572d421adac8a2eff7), [`0366e0b20`](https://github.com/clerk/javascript/commit/0366e0b208e9086896562af94f24cdbd401c702c)]:
4212 | - @clerk/[email protected]
4213 |
4214 | ## 0.29.2
4215 |
4216 | ### Patch Changes
4217 |
4218 | - Refactor the internal jwt assertions in separate module to improve testability and changed dates to UTC in jwt verification error messages ([#1724](https://github.com/clerk/javascript/pull/1724)) by [@dimkl](https://github.com/dimkl)
4219 |
4220 | - Removing the `__clerk_referrer_primary` that was marked as deprecated. It was introduced to support the multi-domain featured, but was replaced shortly after. ([#1755](https://github.com/clerk/javascript/pull/1755)) by [@panteliselef](https://github.com/panteliselef)
4221 |
4222 | - Fix 1 second flakiness in assertions tests ([#1758](https://github.com/clerk/javascript/pull/1758)) by [@dimkl](https://github.com/dimkl)
4223 |
4224 | - Refactor the internal generation of request URLs to use a shared helper from `@clerk/backend` ([#1532](https://github.com/clerk/javascript/pull/1532)) by [@dimkl](https://github.com/dimkl)
4225 |
4226 | ## 0.29.1
4227 |
4228 | ### Patch Changes
4229 |
4230 | - 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)
4231 |
4232 | - Fix missing members_count property for an Organization ([#1735](https://github.com/clerk/javascript/pull/1735)) by [@panteliselef](https://github.com/panteliselef)
4233 |
4234 | - Updated dependencies [[`e99df0a0d`](https://github.com/clerk/javascript/commit/e99df0a0de8ab91e9de4d32dfab46ad562f510d3), [`4327b91f9`](https://github.com/clerk/javascript/commit/4327b91f9ed65b440afaa5f76a6231aeacd3541a), [`01b024c57`](https://github.com/clerk/javascript/commit/01b024c57c80ae00d83801fe90b2992111dc1a68)]:
4235 | - @clerk/[email protected]
4236 |
4237 | ## 0.29.0
4238 |
4239 | ### Minor Changes
4240 |
4241 | - Introduce a new getOrganizationInvitation() method with which you can fetch a single organization invitation by providing the ID ([#1682](https://github.com/clerk/javascript/pull/1682)) by [@chanioxaris](https://github.com/chanioxaris)
4242 |
4243 | ### Patch Changes
4244 |
4245 | - Updated dependencies [[`463ff84f5`](https://github.com/clerk/javascript/commit/463ff84f5bfb7114102ca6cb5a2ea2fce705164c), [`1426e5eb3`](https://github.com/clerk/javascript/commit/1426e5eb3730bb79e2ec5341fa4347d7fa957739)]:
4246 | - @clerk/[email protected]
4247 |
4248 | ## 0.28.1
4249 |
4250 | ### Patch Changes
4251 |
4252 | - Improve error messaging when clock skew is detected. ([#1661](https://github.com/clerk/javascript/pull/1661)) by [@BRKalow](https://github.com/BRKalow)
4253 |
4254 | ## 0.28.0
4255 |
4256 | ### Minor Changes
4257 |
4258 | - Introduce `hasImage` in User / Organization / Session resources ([#1544](https://github.com/clerk/javascript/pull/1544)) by [@dimkl](https://github.com/dimkl)
4259 |
4260 | - Include `signUpUrl`, `afterSignInUrl` and `afterSignUpUrl` to `authenticateRequest` options. ([#1470](https://github.com/clerk/javascript/pull/1470)) by [@desiprisg](https://github.com/desiprisg)
4261 |
4262 | ### Patch Changes
4263 |
4264 | - Updated dependencies [[`96cc1921c`](https://github.com/clerk/javascript/commit/96cc1921cac20442f19510137ee0100df5f8a0f4), [`8d1e7d76d`](https://github.com/clerk/javascript/commit/8d1e7d76de40c0ecb367c6745094dd0a75f764b3), [`435d2cff5`](https://github.com/clerk/javascript/commit/435d2cff5dfc86c58690d3f0d843f567ac4f3c04), [`8873841fc`](https://github.com/clerk/javascript/commit/8873841fcbb96f31aaeb8a12a0ce1d90512986d4), [`0a5f632f8`](https://github.com/clerk/javascript/commit/0a5f632f83bb4dae4cc82718dc86b7df3a125a56), [`34da40a50`](https://github.com/clerk/javascript/commit/34da40a5035b37eb365c6cb273e25c4d3bcf7161), [`3158752c7`](https://github.com/clerk/javascript/commit/3158752c73b9266775f954d3adaf43c66ba8b2e8), [`8538cd0c1`](https://github.com/clerk/javascript/commit/8538cd0c1e2ee2e38bd11079735a2ffc6738f71b), [`a412a5014`](https://github.com/clerk/javascript/commit/a412a501426f5d7a32284fda47efe48a04b5d38e), [`4ea30e883`](https://github.com/clerk/javascript/commit/4ea30e883a4f5c19cdde3424bf02afa99e2bc86d), [`86de584dd`](https://github.com/clerk/javascript/commit/86de584ddf1c22ec99852b983a92386e5542613c), [`e02a1aff2`](https://github.com/clerk/javascript/commit/e02a1aff2d4b1478601a2e7b598d600ab3902169), [`09bfb793e`](https://github.com/clerk/javascript/commit/09bfb793ee54d50eb54ef4e3a5eb385ea2f2fb54), [`b2296d630`](https://github.com/clerk/javascript/commit/b2296d6304e1ca31a35450e0c67a12555c0142f9), [`52ce79108`](https://github.com/clerk/javascript/commit/52ce79108fb5cb4fc84bf4f2df3e3dc748ee4eb3), [`4764e40c7`](https://github.com/clerk/javascript/commit/4764e40c7e858803fc6379dec20fcf687dcaed64), [`1e117beec`](https://github.com/clerk/javascript/commit/1e117beeca53f27d8e9f58f2a724fbc8a7d54021), [`89bc5de04`](https://github.com/clerk/javascript/commit/89bc5de04aafa9832d4d1b5f816af2340acd14d4)]:
4265 | - @clerk/[email protected]
4266 |
4267 | ## 0.27.0
4268 |
4269 | ### Minor Changes
4270 |
4271 | - Add filter by status(pending, accepted, revoked) support for getInvitationList method ([#1533](https://github.com/clerk/javascript/pull/1533)) by [@raptisj](https://github.com/raptisj)
4272 |
4273 | ### Patch Changes
4274 |
4275 | - Deprecate usage of old image fields in favor of `imageUrl` ([#1543](https://github.com/clerk/javascript/pull/1543)) by [@dimkl](https://github.com/dimkl)
4276 |
4277 | - Updated dependencies [[`ea95525a4`](https://github.com/clerk/javascript/commit/ea95525a423bcc89bc9e210c2d29c78e5a6c1210), [`24a46ae7e`](https://github.com/clerk/javascript/commit/24a46ae7e038b56197dc56a535c05e698c5bf249), [`d433b83b9`](https://github.com/clerk/javascript/commit/d433b83b92c61752917f62cc410a774813f38fd7), [`5e1a09df4`](https://github.com/clerk/javascript/commit/5e1a09df4e905ddd887d64c7e8cab10fb4beb3ec), [`0a59e122d`](https://github.com/clerk/javascript/commit/0a59e122d12b672f111a43ef3897061bfd9bdb52)]:
4278 | - @clerk/[email protected]
4279 |
4280 | ## 0.26.0
4281 |
4282 | ### Minor Changes
4283 |
4284 | - Support hosting NextJs apps on non-Vercel platforms by constructing req.url using host-related headers instead of using on req.url directly. CLERK_TRUST_HOST is now enabled by default. ([#1492](https://github.com/clerk/javascript/pull/1492)) by [@dimkl](https://github.com/dimkl)
4285 |
4286 | ### Patch Changes
4287 |
4288 | - Updated dependencies [[`6fa4768dc`](https://github.com/clerk/javascript/commit/6fa4768dc6b261026d6e75d84c9ade1f389fe0d3)]:
4289 | - @clerk/[email protected]
4290 |
4291 | ## 0.25.1
4292 |
4293 | ### Patch Changes
4294 |
4295 | - Updated dependencies [[`2a9d83280`](https://github.com/clerk/javascript/commit/2a9d8328011cb4c3e1a4c6c675cbd5a4edac4c5c)]:
4296 | - @clerk/[email protected]
4297 |
4298 | ## 0.25.0
4299 |
4300 | ### Minor Changes
4301 |
4302 | - Introduce `createIsomorphicRequest` in `@clerk/backend` ([#1393](https://github.com/clerk/javascript/pull/1393)) by [@anagstef](https://github.com/anagstef)
4303 |
4304 | This utility simplifies the `authenticateRequest` signature, and it makes it easier to integrate with more frameworks.
4305 |
4306 | - Add `updateUserProfileImage` and `updateOrganizationLogo` methods for uploading images to `User` and `Organization` respectively. ([#1456](https://github.com/clerk/javascript/pull/1456)) by [@anagstef](https://github.com/anagstef)
4307 |
4308 | ### Patch Changes
4309 |
4310 | - Add missing property 'adminDeleteEnabled' in Organization resource ([#1468](https://github.com/clerk/javascript/pull/1468)) by [@chanioxaris](https://github.com/chanioxaris)
4311 |
4312 | - Fix the headers checked to determine the Response Content-Type ([#1469](https://github.com/clerk/javascript/pull/1469)) by [@anagstef](https://github.com/anagstef)
4313 |
4314 | - Add missing property 'privateMetadata' in OrganizationInvitation resource ([#1468](https://github.com/clerk/javascript/pull/1468)) by [@chanioxaris](https://github.com/chanioxaris)
4315 |
4316 | - Updated dependencies [[`73c9c1d0e`](https://github.com/clerk/javascript/commit/73c9c1d0e3c5f102a515e1ddda01a0a441b40d5b), [`ae9fc247a`](https://github.com/clerk/javascript/commit/ae9fc247aca5bf8211cc8e021706325a010ce9d3), [`1a151e701`](https://github.com/clerk/javascript/commit/1a151e701da80f2d5b1ba1447d6fd5f8612a4bb8), [`090bab66e`](https://github.com/clerk/javascript/commit/090bab66e295bff2358115d2cbd3ed0e603b5ff5), [`592911196`](https://github.com/clerk/javascript/commit/5929111966811ac578019a9c1dda03b09eda72a8)]:
4317 | - @clerk/[email protected]
4318 |
4319 | ## 0.24.0
4320 |
4321 | ### Minor Changes
4322 |
4323 | - The `clockSkewInSeconds` property is now deprecated from the `verifyJWT` options in favour of the new `clockSkewInMs` property. The old property accepted a value in milliseconds, so this change fixes the property name. ([#1450](https://github.com/clerk/javascript/pull/1450)) by [@desiprisg](https://github.com/desiprisg)
4324 |
4325 | ### Patch Changes
4326 |
4327 | - Add a more descriptive error when secret key is invalid ([#1446](https://github.com/clerk/javascript/pull/1446)) by [@raptisj](https://github.com/raptisj)
4328 |
4329 | ## 0.23.7
4330 |
4331 | ### Patch Changes
4332 |
4333 | - Treat expired JWT as signed-out state for requests originated from non-browser clients on satellite apps ([#1433](https://github.com/clerk/javascript/pull/1433)) by [@panteliselef](https://github.com/panteliselef)
4334 |
4335 | - Make all 4 keys (legacy and new) optional in authenticateRequest params ([#1437](https://github.com/clerk/javascript/pull/1437)) by [@anagstef](https://github.com/anagstef)
4336 |
4337 | - Increase the default value for clock skew in `verifyJwt` from 2 to 5 seconds ([#1428](https://github.com/clerk/javascript/pull/1428)) by [@anagstef](https://github.com/anagstef)
4338 |
4339 | ## 0.23.6
4340 |
4341 | ### Patch Changes
4342 |
4343 | - Updated dependencies [[`30f8ad18a`](https://github.com/clerk/javascript/commit/30f8ad18a4f85ca2e3fda46e5c180b28bc8fb47c)]:
4344 | - @clerk/[email protected]
4345 |
4346 | ## 0.23.5
4347 |
4348 | ### Patch Changes
4349 |
4350 | - Updated dependencies [[`bfb3af28`](https://github.com/clerk/javascript/commit/bfb3af28eb69d47e31f2b846d1ecc309fd885704)]:
4351 | - @clerk/[email protected]
4352 |
4353 | ## 0.23.4
4354 |
4355 | ### Patch Changes
4356 |
4357 | - Simplify the signature of the low-level `authenticateRequest` helper. ([#1329](https://github.com/clerk/javascript/pull/1329)) by [@anagstef](https://github.com/anagstef)
4358 |
4359 | - One pair of legacy or new instance keys are required instead of all 4 of them in `authenticateRequest`
4360 | - `@clerk/backend` now can handle the `"Bearer "` prefix in Authorization header for better DX
4361 | - `host` parameter is now optional in `@clerk/backend`
4362 |
4363 | - Updated dependencies [[`11954816`](https://github.com/clerk/javascript/commit/119548164a1757b878027019c20a688d312b1cfd), [`32148490`](https://github.com/clerk/javascript/commit/32148490b813028412af0467e342aa85227cb4d2)]:
4364 | - @clerk/[email protected]
4365 |
4366 | ## 0.23.3
4367 |
4368 | ### Patch Changes
4369 |
4370 | - Updated dependencies [[`17cc14ec`](https://github.com/clerk/javascript/commit/17cc14ec64ed292239ee782662171a4a8cbd9e87)]:
4371 | - @clerk/[email protected]
4372 |
4373 | ## 0.23.2
4374 |
4375 | ### Patch Changes
4376 |
4377 | - Updated dependencies [[`9651658c`](https://github.com/clerk/javascript/commit/9651658c2ab00108ffcb9679cd119488c41ec521), [`4e1bb2bd`](https://github.com/clerk/javascript/commit/4e1bb2bd1f3cc933b1e8422849119e0aa16fdaa6)]:
4378 | - @clerk/[email protected]
4379 |
4380 | ## 0.23.1
4381 |
4382 | ### Patch Changes
4383 |
4384 | - Allow `clerkJSVersion` to be passed when loading interstitial. Support for ([#1354](https://github.com/clerk/javascript/pull/1354)) by [@panteliselef](https://github.com/panteliselef)
4385 |
4386 | - Nextjs
4387 | - Remix
4388 | - Node
4389 |
4390 | ## 0.23.0
4391 |
4392 | ### Minor Changes
4393 |
4394 | - Support `audience` parameter in authentication request ([#1004](https://github.com/clerk/javascript/pull/1004)) by [@dimkl](https://github.com/dimkl)
4395 |
4396 | The audience parameter is used to verify the aud claim in
4397 | the request matches the value of the parameter or is included
4398 | (when the user provides a list).
4399 |
4400 | Resolves:
4401 |
4402 | - [#978](https://github.com/clerk/javascript/pull/978)
4403 | - [#1004](https://github.com/clerk/javascript/pull/1004)
4404 |
4405 | ### Patch Changes
4406 |
4407 | - Updated dependencies [[`c42b4ac0`](https://github.com/clerk/javascript/commit/c42b4ac02d7ab7022a06b8f484e057999c6d7963)]:
4408 | - @clerk/[email protected]
4409 |
4410 | ## 0.22.0
4411 |
4412 | ### Minor Changes
4413 |
4414 | - Add support for NextJS applications hosted on AWS Amplify by [@nikosdouvlis](https://github.com/nikosdouvlis)
4415 |
4416 | - Address npm audit issues for the clerk backend package by [@nikosdouvlis](https://github.com/nikosdouvlis)
4417 |
4418 | - Add support for NextJS applications hosted on Railway by [@nikosdouvlis](https://github.com/nikosdouvlis)
4419 |
4420 | ### Patch Changes
4421 |
4422 | - Remove unused `url` prop from `redirectToSignIn` and `redirectToSignUp` helpers by [@nikosdouvlis](https://github.com/nikosdouvlis)
4423 |
4424 | - Updated dependencies [[`b66ea0a5`](https://github.com/clerk/javascript/commit/b66ea0a5aea0d6801e03a1426a0db69921b7b0e3), [`b66ea0a5`](https://github.com/clerk/javascript/commit/b66ea0a5aea0d6801e03a1426a0db69921b7b0e3), [`b66ea0a5`](https://github.com/clerk/javascript/commit/b66ea0a5aea0d6801e03a1426a0db69921b7b0e3)]:
4425 | - @clerk/[email protected]
4426 |
4427 | ## [0.21.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-06-03)
4428 |
4429 | **Note:** Version bump only for package @clerk/backend
4430 |
4431 | ### [0.20.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-26)
4432 |
4433 | **Note:** Version bump only for package @clerk/backend
4434 |
4435 | ## [0.20.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-23)
4436 |
4437 | **Note:** Version bump only for package @clerk/backend
4438 |
4439 | ### [0.19.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-18)
4440 |
4441 | **Note:** Version bump only for package @clerk/backend
4442 |
4443 | ### [0.19.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-17)
4444 |
4445 | **Note:** Version bump only for package @clerk/backend
4446 |
4447 | ## [0.19.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-15)
4448 |
4449 | **Note:** Version bump only for package @clerk/backend
4450 |
4451 | ## [0.18.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-04)
4452 |
4453 | **Note:** Version bump only for package @clerk/backend
4454 |
4455 | ## [0.18.0-staging.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-04)
4456 |
4457 | **Note:** Version bump only for package @clerk/backend
4458 |
4459 | ## [0.18.0-staging.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-05-02)
4460 |
4461 | **Note:** Version bump only for package @clerk/backend
4462 |
4463 | ### [0.17.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-19)
4464 |
4465 | **Note:** Version bump only for package @clerk/backend
4466 |
4467 | ### [0.17.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-19)
4468 |
4469 | ### Bug Fixes
4470 |
4471 | - **backend:** Add missing Webhooks export ([db8d224](https://github.com/clerk/javascript/commit/db8d22433779e39d7b566acf8a5b7b50d57d3738))
4472 |
4473 | ## [0.17.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-12)
4474 |
4475 | **Note:** Version bump only for package @clerk/backend
4476 |
4477 | ### [0.16.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-11)
4478 |
4479 | **Note:** Version bump only for package @clerk/backend
4480 |
4481 | ### [0.16.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-04-06)
4482 |
4483 | **Note:** Version bump only for package @clerk/backend
4484 |
4485 | ## [0.16.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-31)
4486 |
4487 | **Note:** Version bump only for package @clerk/backend
4488 |
4489 | ## [0.16.0-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-31)
4490 |
4491 | ### Features
4492 |
4493 | - **backend:** Add signInUrl to buildPublicInterstitialUrl ([2bbbaa6](https://github.com/clerk/javascript/commit/2bbbaa662c6fd8be3e95dc1c4ed3700e47f39f75))
4494 | - **backend:** Support multi-domain in dev instances ([2b8eb75](https://github.com/clerk/javascript/commit/2b8eb7542adbc20d7f075603fb5091063faca7e5))
4495 |
4496 | ### Bug Fixes
4497 |
4498 | - **backend:** Update interstitial to include signInUrl ([d923618](https://github.com/clerk/javascript/commit/d923618f4b285c53c411cc4a4ba821792c4c33e7))
4499 |
4500 | ## [0.15.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-29)
4501 |
4502 | **Note:** Version bump only for package @clerk/backend
4503 |
4504 | ### [0.13.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-10)
4505 |
4506 | **Note:** Version bump only for package @clerk/backend
4507 |
4508 | ## [0.13.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-09)
4509 |
4510 | **Note:** Version bump only for package @clerk/backend
4511 |
4512 | ## [0.12.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-07)
4513 |
4514 | **Note:** Version bump only for package @clerk/backend
4515 |
4516 | ## [0.11.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-03)
4517 |
4518 | **Note:** Version bump only for package @clerk/backend
4519 |
4520 | ## [0.10.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-03-01)
4521 |
4522 | **Note:** Version bump only for package @clerk/backend
4523 |
4524 | ### [0.9.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-25)
4525 |
4526 | **Note:** Version bump only for package @clerk/backend
4527 |
4528 | ## [0.9.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-24)
4529 |
4530 | **Note:** Version bump only for package @clerk/backend
4531 |
4532 | ### [0.8.1-staging.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-22)
4533 |
4534 | ### Bug Fixes
4535 |
4536 | - **backend:** Update user params ([624402f](https://github.com/clerk/javascript/commit/624402fa0e2ff00819254d0fe0e6e7f44bdbe42c))
4537 |
4538 | ## [0.8.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-17)
4539 |
4540 | **Note:** Version bump only for package @clerk/backend
4541 |
4542 | ## [0.7.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-15)
4543 |
4544 | **Note:** Version bump only for package @clerk/backend
4545 |
4546 | ### [0.6.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-10)
4547 |
4548 | **Note:** Version bump only for package @clerk/backend
4549 |
4550 | ### [0.6.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-07)
4551 |
4552 | **Note:** Version bump only for package @clerk/backend
4553 |
4554 | ### [0.6.1-staging.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-07)
4555 |
4556 | **Note:** Version bump only for package @clerk/backend
4557 |
4558 | ## [0.6.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-07)
4559 |
4560 | **Note:** Version bump only for package @clerk/backend
4561 |
4562 | ### [0.5.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-02-01)
4563 |
4564 | **Note:** Version bump only for package @clerk/backend
4565 |
4566 | ## [0.5.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-27)
4567 |
4568 | **Note:** Version bump only for package @clerk/backend
4569 |
4570 | ### [0.4.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-24)
4571 |
4572 | ### Bug Fixes
4573 |
4574 | - **backend,clerk-sdk-node,shared:** Drop support for NodeJS 12 ([d9169ab](https://github.com/clerk/javascript/commit/d9169ab4873e1745d7250628f5bf8c8f7da49421))
4575 |
4576 | ### [0.4.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-20)
4577 |
4578 | **Note:** Version bump only for package @clerk/backend
4579 |
4580 | ### [0.4.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-18)
4581 |
4582 | **Note:** Version bump only for package @clerk/backend
4583 |
4584 | ## [0.4.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2023-01-17)
4585 |
4586 | ### Bug Fixes
4587 |
4588 | - **backend,clerk-sdk-node,shared:** Support node12 runtimes ([fdcd6b3](https://github.com/clerk/javascript/commit/fdcd6b3f7c61490297a5fdfa80228cbb7787b49b))
4589 | - **backend:** Polyfill webcrypto for node14 and node12 ([329bd6d](https://github.com/clerk/javascript/commit/329bd6d3426929e2cee06aeb04fd910b394a920f))
4590 |
4591 | ### [0.3.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-23)
4592 |
4593 | **Note:** Version bump only for package @clerk/backend
4594 |
4595 | ### [0.3.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-19)
4596 |
4597 | **Note:** Version bump only for package @clerk/backend
4598 |
4599 | ## [0.3.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-13)
4600 |
4601 | **Note:** Version bump only for package @clerk/backend
4602 |
4603 | ### [0.2.3](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-12)
4604 |
4605 | **Note:** Version bump only for package @clerk/backend
4606 |
4607 | ### [0.2.2](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-09)
4608 |
4609 | **Note:** Version bump only for package @clerk/backend
4610 |
4611 | ### [0.2.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-08)
4612 |
4613 | **Note:** Version bump only for package @clerk/backend
4614 |
4615 | ## [0.2.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-08)
4616 |
4617 | **Note:** Version bump only for package @clerk/backend
4618 |
4619 | ### [0.1.1](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-12-02)
4620 |
4621 | **Note:** Version bump only for package @clerk/backend
4622 |
4623 | ## [0.1.0](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-30)
4624 |
4625 | **Note:** Version bump only for package @clerk/backend
4626 |
4627 | ## [0.1.0-staging.4](https://github.com/clerk/javascript/compare/@clerk/[email protected]...@clerk/[email protected]) (2022-11-29)
4628 |
4629 | **Note:** Version bump only for package @clerk/backend
4630 |
```