Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
4a447b8
Drop functions from property tables; add JSDoc comments
alexisintech Apr 9, 2026
9100976
undo changes about removing functions from property tables
alexisintech Apr 9, 2026
ea3d2eb
Revert "undo changes about removing functions from property tables"
alexisintech Apr 9, 2026
0292f5f
only remove functions from property tables if output page listed in a…
alexisintech Apr 9, 2026
8b9b1d4
begin building extract-methods.mjs
alexisintech Apr 10, 2026
ac8f133
use custom-plugin in extract-methods for link replacements
alexisintech Apr 10, 2026
9139e27
catchall link replacements should never replace text in headings
alexisintech Apr 10, 2026
2978152
protectPipeDelimitedInlineCodeSpans; handle if members live on alias …
alexisintech Apr 10, 2026
adb43df
add client resource to link replacements
alexisintech Apr 10, 2026
a0a9731
refactor extract-methods to use existing plugins to create tables,etc
alexisintech Apr 10, 2026
c9129a4
type intersections should merge all type information into the generat…
alexisintech Apr 10, 2026
2d1ceec
objects get their own folders with <object>-properties file and <obje…
alexisintech Apr 10, 2026
6eedb5b
include typealias functions in the methods generation
alexisintech Apr 11, 2026
ac0f71d
add helpers for documenting union types in property tables
alexisintech Apr 14, 2026
acfba24
cleaning up comments
alexisintech Apr 14, 2026
67bfa0b
fix links
alexisintech Apr 14, 2026
064abe1
fix: handle union objects only for type declaration tables
alexisintech Apr 14, 2026
a6f2857
remove slugs from properties file/methods folder; do not flatten inli…
alexisintech Apr 15, 2026
6fef09a
docs review
SarahSoutoul Apr 15, 2026
c99e565
fix clerkui descriptions; fix handlegoogleonetapcallback link; add ap…
alexisintech Apr 16, 2026
1250e86
inline handleemaillinkverificationparams
alexisintech Apr 16, 2026
a70521c
refactor to combine all reference_object info into one object
alexisintech Apr 16, 2026
9680e81
fix session object addition; add generation logic for union literals
alexisintech Apr 16, 2026
3a7b36b
add back children in property tables if they're documented; handle Ch…
alexisintech Apr 18, 2026
4fdd354
do not flatten parent props if they link to a dedicated page
alexisintech Apr 18, 2026
6e3e360
remove jsdoc comment from constructor
alexisintech Apr 18, 2026
3657c38
remove update to current-user
alexisintech Apr 18, 2026
94d5eb1
Merge branch 'main' into aa/generate-object-docs
alexisintech May 4, 2026
63e195c
remove use of 'optional' in jscomments
alexisintech May 4, 2026
a49d4b4
fix tsconfig error
alexisintech May 4, 2026
ee8d16a
remove inline tag from getting generated in output
alexisintech May 4, 2026
3327641
add user object and comments; support generic instantiation + interse…
alexisintech May 4, 2026
d6fa55f
remove backticks from link replacements; add more link replacements
alexisintech May 4, 2026
b1a0766
omit experimental tag + text from output; add more jsdoc comments for…
alexisintech May 4, 2026
0e3cbd6
finish documenting user object
alexisintech May 5, 2026
196fba4
generate signinfutureresource; fix file-structure test
alexisintech May 6, 2026
a432b35
support new @propertyTableDoc tag; handle object properties that incl…
alexisintech May 6, 2026
5f6a6b7
fix mixed namespaces (all callable members plus @propertyTableDoc tag)
alexisintech May 6, 2026
809241d
refactor how we handle objects with only callable members; introduce …
alexisintech May 7, 2026
4347350
remove TODO from generated content
alexisintech May 7, 2026
86b3e8f
fix TODO handling; add some links to custom-plugin
alexisintech May 7, 2026
f0d62d0
Merge branch 'main' into aa/generate-object-docs
alexisintech May 8, 2026
833ccf9
Apply suggestion from @alexisintech
alexisintech May 8, 2026
b2350a6
comment clean up
alexisintech May 8, 2026
5cded2a
generate signupfutureresource
alexisintech May 8, 2026
adb9396
fix signupfields
alexisintech May 8, 2026
83de588
signupfutureresource updates
alexisintech May 8, 2026
a473d6c
param headings need to get wrapped in backticks
alexisintech May 8, 2026
4e51dce
generate organization docs
alexisintech May 8, 2026
5c23021
remove properties headings from generated files
alexisintech May 8, 2026
28ebf79
generate api-keys
alexisintech May 8, 2026
537a7f7
generate billing docs; fix file-structure-test
alexisintech May 8, 2026
f0826e1
retrieve --> get
alexisintech May 8, 2026
91715b2
replace @document tag with empty comments for generation
alexisintech May 11, 2026
9338cfd
Merge branch 'main' into aa/generate-object-docs
SarahSoutoul May 11, 2026
74d59d7
fix links
alexisintech May 11, 2026
d5c6cd0
handle union types in custom-theme
alexisintech May 12, 2026
4c39d12
add link to paymentelement
alexisintech May 12, 2026
365ca33
apikeys: update descriptions for create and getall
alexisintech May 12, 2026
847d2a6
fix(repo): Add standalonePage tag for JSDoc comments (#8524)
alexisintech May 12, 2026
e6bb8f8
Merge branch 'main' into aa/generate-object-docs
alexisintech May 12, 2026
2e98fbf
docs review - billing
SarahSoutoul May 12, 2026
98fd223
Fix duplicate returns APIKeys
SarahSoutoul May 12, 2026
d7c4821
apikeys: remove duplication for create method
alexisintech May 12, 2026
e08731f
add backticks to appearance prop in jsdoc comments
alexisintech May 12, 2026
3fc8009
docs review - session
SarahSoutoul May 13, 2026
c9e3a19
session object updates
alexisintech May 13, 2026
914e689
docs review - user
SarahSoutoul May 13, 2026
ab06e81
fix status in GetUserOrganizationSuggestionsParams
alexisintech May 13, 2026
d58f52f
docs review - signInFuture & signUpFuture
SarahSoutoul May 13, 2026
ee0ceaf
signinfuture/signupfuture updates
alexisintech May 13, 2026
481b67d
docs review - org
SarahSoutoul May 14, 2026
87215e7
docs review - clerk
SarahSoutoul May 15, 2026
fe17dca
make frontend api url open in new tab
alexisintech May 15, 2026
16d4d98
Fix external link
SarahSoutoul May 15, 2026
39b8139
fix billing config
alexisintech May 23, 2026
95660d9
remove @property from clerkstatus jsdoc comment
alexisintech May 23, 2026
c901331
Merge branch 'main' into aa/generate-object-docs
alexisintech May 27, 2026
f863ef1
chore(repo): add changeset
alexisintech May 27, 2026
d43af9a
chore(nextjs): fix prettier formatting in keyless-provider
alexisintech May 27, 2026
0a9f42b
Merge branch 'main' into aa/generate-object-docs
alexisintech May 27, 2026
9be16f7
chore(repo): broaden typedoc cache inputs and prune comment-utils exp…
manovotny May 28, 2026
0cdd2a7
chore(repo): restore stripTextAfterTodo (removed in PR #8637)
manovotny May 28, 2026
8ae53b8
refactor(repo): Inline extract-methods + tighten parameter rendering …
alexisintech May 28, 2026
b5ced6d
Merge branch 'main' into aa/generate-object-docs
alexisintech May 28, 2026
f2d6bd7
docs review - misc cleanup
alexisintech May 28, 2026
d91c4a8
small comment update
alexisintech May 28, 2026
e42b500
feat(repo): add @generateWithEmptyComment tag for empty doc placeholders
alexisintech May 28, 2026
877fdf2
final @generateWithEmptyComment replacements
alexisintech May 28, 2026
1c40ce8
fix breaking change of SignUpFutureSSOParams
alexisintech May 28, 2026
8c9be50
apply coderabbit suggestions
alexisintech May 28, 2026
35f8ac0
test(repo): update typedoc snapshots for jsdoc rewordings
alexisintech May 28, 2026
8172b62
chore(repo): narrow typedoc:generate turbo outputs to docs/
alexisintech May 28, 2026
d555bdc
docs(shared): use @hidden over @internal for internal Clerk/Client me…
jacekradko May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .changeset/typedoc-objects-jsdoc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
'@clerk/backend': patch
'@clerk/clerk-js': patch
'@clerk/expo': patch
'@clerk/express': patch
'@clerk/nextjs': patch
'@clerk/react': patch
'@clerk/shared': patch
'@clerk/ui': patch
'@clerk/vue': patch
---

Add and improve JSDoc comments across public types and methods to support generated reference documentation for the `/objects` docs section. Exports a few previously-internal types (`OnEventListener`, `OffEventListener`, `ClerkOptionsNavigation`) so they can be referenced from the generated docs.
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@ packages/clerk-js/src/core/resources/index.ts
packages/shared/src/compiled
/**/CHANGELOG.md
renovate.json5
# Frozen snapshots of TypeDoc-generated MDX; must match raw `extract-methods.mjs` output.
.typedoc/__tests__/__snapshots__/
CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
### `create()`

Creates a new API key.

Returns an [`APIKeyResource`](/docs/reference/types/api-key-resource) object that includes the `secret` property.
> [!WARNING]
> Make sure to store the API key secret immediately after creation, as it will not be available again.

```typescript
function create(params: CreateAPIKeyParams): Promise<APIKeyResource>
```

#### `CreateAPIKeyParams`


| Property | Type | Description |
| ------ | ------ | ------ |
| <a id="description"></a> `description?` | `string` | The description of the API key. |
| <a id="name"></a> `name` | `string` | The name of the API key. |
| <a id="secondsuntilexpiration"></a> `secondsUntilExpiration?` | `number` | The number of seconds until the API key expires. Set to `null` or omit to create a key that never expires. |
| <a id="subject"></a> `subject?` | `string` | The user or organization ID to associate the API key with. If not provided, defaults to the [Active Organization](!active-organization), then the current User. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
### `handleEmailLinkVerification()`

Completes an email link verification flow started by `Clerk.client.signIn.createEmailLinkFlow` or `Clerk.client.signUp.createEmailLinkFlow`, by processing the verification results from the redirect URL query parameters. This method should be called after the user is redirected back from visiting the verification link in their email.

```typescript
function handleEmailLinkVerification(params: { onVerifiedOnOtherDevice?: () => void; redirectUrl?: string; redirectUrlComplete?: string }, customNavigate?: (to: string) => Promise<unknown>): Promise<unknown>
```

#### Parameters


| Parameter | Type | Description |
| ------ | ------ | ------ |
| `params` | <code>\{ onVerifiedOnOtherDevice?: () => void; redirectUrl?: string; redirectUrlComplete?: string; \}</code> | Allows you to define the URLs where the user should be redirected to on successful verification or pending/completed sign-up or sign-in attempts. If the email link is successfully verified on another device, there's a callback function parameter that allows custom code execution. |
| `params.onVerifiedOnOtherDevice?` | <code>() => void</code> | Callback function to be executed after successful email link verification on another device. |
| `params.redirectUrl?` | `string` | The full URL to navigate to after successful email link verification on the same device, but without completing sign-in or sign-up. |
| `params.redirectUrlComplete?` | `string` | The full URL to navigate to after successful email link verification on completed sign-up or sign-in on the same device. |
| `customNavigate?` | <code>(to: string) => Promise\<unknown\></code> | A function that overrides Clerk's default navigation behavior, allowing custom handling of navigation during sign-up and sign-in flows. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### `handleRedirectCallback()`

Completes a custom OAuth or SAML redirect flow that was started by calling [`SignIn.authenticateWithRedirect(params)`](/docs/reference/objects/sign-in) or [`SignUp.authenticateWithRedirect(params)`](/docs/reference/objects/sign-up).

```typescript
function handleRedirectCallback(params: HandleOAuthCallbackParams, customNavigate?: (to: string) => Promise<unknown>): Promise<unknown>
```

#### Parameters


| Parameter | Type | Description |
| ------ | ------ | ------ |
| `params` | [`HandleOAuthCallbackParams`](/docs/reference/types/handle-o-auth-callback-params) | Additional props that define where the user will be redirected to at the end of a successful OAuth or SAML flow. |
| `customNavigate?` | <code>(to: string) => Promise\<unknown\></code> | A function that overrides Clerk's default navigation behavior, allowing custom handling of navigation during sign-up and sign-in flows. |
14 changes: 14 additions & 0 deletions .typedoc/__tests__/__snapshots__/clerk-methods-join-waitlist.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
### `joinWaitlist()`

Create a new waitlist entry programmatically. Requires that you set your app's sign-up mode to [**Waitlist**](/docs/guides/secure/restricting-access#waitlist) in the Clerk Dashboard.

```typescript
function joinWaitlist(params: JoinWaitlistParams): Promise<WaitlistResource>
```

#### `JoinWaitlistParams`


| Property | Type | Description |
| ------ | ------ | ------ |
| <a id="emailaddress"></a> `emailAddress` | `string` | The email address of the user to add to the waitlist. |
15 changes: 15 additions & 0 deletions .typedoc/__tests__/__snapshots__/clerk-methods-sign-out.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### `signOut()`

Signs out the current user on single-session instances, or all users on multi-session instances.

```typescript
function signOut(options?: SignOutOptions): Promise<void>
```

#### `SignOutOptions`


| Property | Type | Description |
| ------ | ------ | ------ |
| <a id="redirecturl"></a> `redirectUrl?` | `string` | Specify a redirect URL to navigate to after sign-out is complete. |
| <a id="sessionid"></a> `sessionId?` | `string` | Specify a specific session to sign out. Useful for multi-session applications. |
21 changes: 21 additions & 0 deletions .typedoc/__tests__/__snapshots__/clerk-properties.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
| Property | Type | Description |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="apikeys"></a> `apiKeys` | [`APIKeysNamespace`](/docs/reference/objects/api-keys) | The `APIKeys` object used for managing API keys. |
| <a id="billing"></a> `billing` | [`BillingNamespace`](/docs/reference/objects/billing) | The `Billing` object used for managing billing. |
| <a id="client"></a> `client` | <code>undefined \| [ClientResource](/docs/reference/objects/client)</code> | The `Client` object for the current window. |
| <a id="domain"></a> `domain` | `string` | The current Clerk app's domain. Prefixed with `clerk.` on production if not already prefixed. Returns `""` when ran on the server. |
| <a id="instancetype"></a> `instanceType` | <code>undefined \| "production" \| "development"</code> | Indicates whether the Clerk instance is running in a production or development environment. |
| <a id="issatellite"></a> `isSatellite` | `boolean` | Indicates whether the instance is a satellite app. |
| <a id="issignedin"></a> `isSignedIn` | `boolean` | Indicates whether the current user has a valid signed-in client session. |
| <a id="isstandardbrowser"></a> `isStandardBrowser` | <code>undefined \| boolean</code> | Indicates whether the instance is being loaded in a standard browser environment. Set to `false` on native platforms where cookies cannot be set. When `undefined`, Clerk assumes a standard browser. |
| <a id="loaded"></a> `loaded` | `boolean` | Indicates whether the `Clerk` object is ready for use. Set to `false` when the `status` is `"loading"`. Set to `true` when the `status` is `"ready"` or `"degraded"`. |
| <a id="oauthapplication"></a> `oauthApplication` | [`OAuthApplicationNamespace`](../o-auth-application-namespace.mdx) | OAuth application helpers (e.g. consent metadata for custom consent UIs). |
| <a id="organization"></a> `organization` | <code>undefined \| null \| [OrganizationResource](/docs/reference/objects/organization)</code> | A shortcut to the last active `Session.user.organizationMemberships` which holds an instance of a `Organization` object. If the session is `null` or `undefined`, the user field will match. |
| <a id="proxyurl"></a> `proxyUrl` | <code>undefined \| string</code> | **Required for applications that run behind a reverse proxy**. Your Clerk app's proxy URL. Can be either a relative path (`/__clerk`) or a full URL (`https://<your-domain>/__clerk`). |
Comment thread
alexisintech marked this conversation as resolved.
| <a id="publishablekey"></a> `publishableKey` | `string` | Your Clerk [Publishable Key](!publishable-key). |
| <a id="sdkmetadata"></a> `sdkMetadata` | <code>undefined \| \{ environment?: string; name: string; version: string; \}</code> | If present, contains information about the SDK that the host application is using. For example, if Clerk is loaded through `@clerk/nextjs`, this would be `{ name: '@clerk/nextjs', version: '1.0.0' }`. You don't need to set this value yourself unless you're [developing an SDK](/docs/guides/development/sdk-development/overview). |
| <a id="session"></a> `session` | <code>undefined \| null \| [SignedInSessionResource](/docs/reference/objects/session)</code> | The currently active `Session`, which is guaranteed to be one of the sessions in `Client.sessions`. If there is no active session, this field will be `null`. If the session is loading, this field will be `undefined`. |
| <a id="status"></a> `status` | <code>"error" \| "degraded" \| "loading" \| "ready"</code> | The status of the `Clerk` instance. Possible values are: <ul> <li>`"error"`: Set when hotloading `clerk-js` or `Clerk.load()` failed.</li> <li>`"loading"`: Set during initialization.</li> <li>`"ready"`: Set when Clerk is fully operational.</li> <li>`"degraded"`: Set when Clerk is partially operational.</li> </ul> |
| <a id="telemetry"></a> `telemetry` | <code>undefined \| \{ isDebug: boolean; isEnabled: boolean; record: void; recordLog: void; \}</code> | [Telemetry](/docs/guides/how-clerk-works/security/clerk-telemetry) configuration. |
| <a id="user"></a> `user` | <code>undefined \| null \| [UserResource](/docs/reference/objects/user)</code> | A shortcut to `Session.user` which holds the currently active `User` object. If the session is `null` or `undefined`, the user field will match. |
| <a id="version"></a> `version` | <code>undefined \| string</code> | The Clerk SDK version number. |
1 change: 1 addition & 0 deletions .typedoc/__tests__/__snapshots__/clerk.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The `Clerk` class serves as the central interface for working with Clerk's authentication and user management functionality in your application. As a top-level class in the Clerk SDK, it provides access to key methods and properties for managing users, sessions, API keys, billing, organizations, and more.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
### `checkAuthorization()`

Checks if the user is [authorized for the specified Role, Permission, Feature, or Plan](/docs/guides/secure/authorization-checks) or requires the user to [reverify their credentials](/docs/guides/secure/reverification) if their last verification is older than allowed.

```typescript
function checkAuthorization(isAuthorizedParams: CheckAuthorizationParams): boolean
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### `emailCode.sendCode()`

Sends an email code to sign-in.

```typescript
function sendCode(params?: SignInFutureEmailCodeSendParams): Promise<{ error: null | ClerkError }>
```

#### `SignInFutureEmailCodeSendParams`


| Property | Type | Description |
| ------ | ------ | ------ |
| `emailAddress?` | `string` | The user's email address. Only supported if [Email address](/docs/guides/configure/auth-strategies/sign-up-sign-in-options#email) is enabled. Provide either `emailAddress` or `emailAddressId`, not both. Omit both when a sign-in already exists. |
| `emailAddressId?` | `string` | The ID for the user's email address that will receive an email with the one-time authentication code. Provide either `emailAddress` or `emailAddressId`, not both. Omit both when a sign-in already exists. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
### `emailLink`


| Property | Type | Description |
| ------ | ------ | ------ |
| `verification` | <code>null \| \{ createdSessionId: string; status: "expired" \| "failed" \| "verified" \| "client_mismatch"; verifiedFromTheSameClient: boolean; \}</code> | The verification status of the email link. This property is populated by reading query parameters from the URL after the user visits the email link. Returns `null` if no verification status is available. |
Loading
Loading