Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
docs(repo): Fixing billing broken links for Typedoc output by SarahSoutoul · Pull Request #9393 · clerk/javascript · GitHub
Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(repo): Fixing billing broken links for Typedoc output by SarahSoutoul · Pull Request #9393 · clerk/javascript · GitHub
Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(repo): Fixing billing broken links for Typedoc output by SarahSoutoul · Pull Request #9393 · clerk/javascript · GitHub
Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' docs(repo): Fixing billing broken links for Typedoc output by SarahSoutoul · Pull Request #9393 · clerk/javascript · GitHub
Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(repo): Fixing billing broken links for Typedoc output by SarahSoutoul · Pull Request #9393 · clerk/javascript · GitHub
Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(repo): Fixing billing broken links for Typedoc output by SarahSoutoul · Pull Request #9393 · clerk/javascript · GitHub
Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); docs(repo): Fixing billing broken links for Typedoc output by SarahSoutoul · Pull Request #9393 · clerk/javascript · GitHub
Skip to content

docs(repo): Fixing billing broken links for Typedoc output - #9393

Merged
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links
Aug 14, 2026
Merged

docs(repo): Fixing billing broken links for Typedoc output#9393
SarahSoutoul merged 12 commits into
mainfrom
ss/fix-typedoc-broken-links

Conversation

@SarahSoutoul

@SarahSoutoulSarahSoutoul commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes broken and incomplete TypeDoc links and generated documentation for several billing types and checkout methods. The broken links were spotted in this TypeDoc-generated PR, which will ultimately be closed once this PR generates a new TypeDoc PR.

This PR:

  • Adds canonical Clerk Docs link replacements for:
    • BillingAppliedDiscount
    • BillingCredits
    • BillingDiscountRedemption
    • BillingDiscounts
    • BillingPaymentTotals
    • BillingPayerCredit
    • BillingPeriodTotals
    • BillingProrationCreditDetail
    • BillingProrationDiscount
    • BillingSubscriptionItemNextPayment
    • BillingSubscriptionNextPayment
    • ConfirmCheckoutParams
    • UpdateCheckoutParams
  • Corrects the checkout parameter links:
    • ConfirmCheckoutParams now links to #confirm-parameters.
    • UpdateCheckoutParams now links to #update-parameters.
  • Replaces the relative #confirm and #update links with canonical BillingCheckoutResource URLs so they work when TypeDoc is embedded on other pages, such as useCheckout().
  • Refactors UpdateCheckoutParams into a directly documented object type while preserving its existing id, orgId, and promoCode properties. This allows TypeDoc to generate a complete standalone property table.
  • Removes the generated Properties heading from update-checkout-params.mdx so the fragment embeds cleanly beneath the Update parameters heading.
  • Adds complete JSDoc comments for:
    • BillingCredits
    • BillingPayerCredit
    • BillingProrationCreditDetail
    • BillingAppliedDiscount
    • BillingDiscountRedemption
  • Documents the BillingCredits properties on BillingCheckoutTotals and BillingSubscriptionItemResource, which were previously omitted from the generated output.
  • Marks ProtectAssertion and ProtectAssertionResolver as inline types so TypeDoc does not generate broken standalone links.

A fresh TypeDoc generation now produces standalone fragments with complete property tables for all five previously missing billing types:

  • billing-credits.mdx
  • billing-payer-credit.mdx
  • billing-proration-credit-detail.mdx
  • billing-applied-discount.mdx
  • billing-discount-redemption.mdx

In addition, update-checkout-params.mdx now renders a complete parameter table without a redundant Properties heading.

clerk/clerk#3135 fixed the billing links whose TypeDoc fragments were already synced with Clerk Docs.

The five newly generated fragments above were intentionally not included in that Clerk PR. Once this JavaScript PR is released and the updated TypeDoc output is synced into Clerk Docs, I will merge clerk/clerk#3153 into the TypeDoc-generated PR to complete the remaining documentation changes.

To verify the changes, run:

pnpm test:typedoc

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@SarahSoutoulSarahSoutoul self-assigned this Aug 11, 2026
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewAug 14, 2026 6:56pm
swingsetReadyReadyPreviewAug 14, 2026 6:56pm

Request Review

@pkg-pr-new

pkg-pr-newBot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9393

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9393

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9393

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9393

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9393

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9393

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9393

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9393

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9393

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9393

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9393

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9393

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9393

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9393

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9393

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9393

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9393

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9393

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9393

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9393

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9393

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9393

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9393

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9393

commit: 61835eb

@changeset-bot

changeset-botBot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 61835eb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
NameType
@clerk/sharedPatch
@clerk/astroPatch
@clerk/backendPatch
@clerk/chrome-extensionPatch
@clerk/clerk-jsPatch
@clerk/electronPatch
@clerk/expo-passkeysPatch
@clerk/expoPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/headlessPatch
@clerk/honoPatch
@clerk/localizationsPatch
@clerk/mswPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/reactPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch
@clerk/uiPatch
@clerk/vuePatch
@clerk/swingsetPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a721446a-a6bc-477e-9eac-88a481dc97c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3b79795 and 763376e.

📒 Files selected for processing (3)
  • .changeset/fix-billing-typedoc-pages.md
  • .typedoc/__tests__/relative-link-replacements.test.ts
  • packages/shared/src/types/billing.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go(manual)
  • clerk/dashboard(manual)
  • clerk/accounts(manual)
  • clerk/backoffice(manual)
  • clerk/clerk(manual) → reviewed against open PR #3134typedoc-167204b instead of the default branch
  • clerk/clerk-docs(manual)
  • clerk/cloudflare-workers(manual)
  • clerk/clerk-ios(auto-detected)
  • clerk/cli(auto-detected)
  • clerk/clerk-android(auto-detected)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/fix-billing-typedoc-pages.md
  • packages/shared/src/types/billing.ts

📝 Walkthrough

Walkthrough

The PR adds Billing documentation for credits, proration, discounts, and checkout fields. It restructures UpdateCheckoutParams without changing its effective fields. It updates checkout and Billing TypeDoc links and heading handling. It adds tests for relative link replacements and @inline annotations to Protect assertion types. It creates a patch changeset for @clerk/shared.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk:⚪ Minimal · up to 76337

This change updates generated documentation links and TypeDoc annotations without any identified actionable merge-blocking risk remaining.

Suggested reviewers:manovotny

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description check✅ PassedThe description clearly explains the TypeDoc link fixes, billing documentation updates, refactoring, tests, and verification steps.
Title check✅ PassedThe title clearly identifies the main change: fixing broken billing links in TypeDoc output.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@SarahSoutoulSarahSoutoul changed the title docs(repo): Fixing initial broken linksdocs(repo): Fixing billing broken links for Typedoc outputAug 13, 2026
@github-actions

github-actionsBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-08-14T18:56:15.790Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.29.0
Recommended bump: MINOR → 4.30.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: UpdateCheckoutParams
- type UpdateCheckoutParams = WithOptionalOrgType<{+ type UpdateCheckoutParams = {
id: string;
+ orgId?: string;
promoCode: string;
- }>;+ };

Static analyzer: Breaking change in type alias UpdateCheckoutParams: Type changed: import("@clerk/shared").WithOptionalOrgType<{id:string;promoCode:string;}>{id:string;orgId?:string;promoCode:string;}

🤖 AI review (reclassified as non-breaking) (97%): The resolved shape of WithOptionalOrgType<{id:string;promoCode:string;}> is structurally identical to {id:string;orgId?:string;promoCode:string;} — the alias merely inlines the intersection, producing the same set of required and optional properties. No consumer code is affected.


Report generated by Break Check

Last ran on 61835eb.

@manovotnymanovotny self-assigned this Aug 14, 2026
- Add JSDoc for BillingAppliedDiscount.durationInCycles so excludeNotDocumented
no longer drops it from the generated page
- Clarify amountOff as the configured fixed amount vs the applied amount
- Use absolute clerk.com doc URLs so the links resolve in IntelliSense
- Add unit tests for the relative link replacements
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@manovotny

Copy link
Copy Markdown
Contributor

Pushed some changes directly in 763376e.

  • Added JSDoc for BillingAppliedDiscount.durationInCycles — it was the only property in that interface without a comment, so excludeNotDocumented was dropping it from the generated billing-applied-discount.mdx, leaving the table incomplete.
  • Reworded amountOff on BillingAppliedDiscount and BillingDiscountRedemption to describe it as the configured fixed amount, distinct from amount (what's actually applied to the transaction) — matches the Commerce schema's configured-vs-applied split.
  • Switched the three checkout [Learn more.] links to absolute https://clerk.com/docs/... URLs so they resolve in IntelliSense; the TypeDoc replaceText rule strips them back to relative /docs/... for the docs site, matching what the rest of the package does.
  • Added .typedoc/__tests__/relative-link-replacements.test.ts covering the billing link replacements, anchor preservation, and the .mdx-boundary substring safety, so a wrong route/anchor can't pass CI silently.
  • Tweaked the changeset ("TypeDoc" spelling + mention the added type descriptions).

@SarahSoutoul
SarahSoutoul merged commit 7f5c294 into mainAug 14, 2026
52 checks passed
@SarahSoutoul
SarahSoutoul deleted the ss/fix-typedoc-broken-links branch August 14, 2026 19:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@SarahSoutoul@manovotny