Uh oh!
There was an error while loading. Please reload this page.
fix(deps): update dependency @scalar/api-reference to v1.64.0 - #4
Open
renovate[bot] wants to merge 1 commit into
Open
fix(deps): update dependency @scalar/api-reference to v1.64.0#4renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
April 30, 2026 22:55
98312d9 to
eadf676ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 4, 2026 05:44
eadf676 to
fd4d141ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 5, 2026 00:33
fd4d141 to
25aaf8fComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 6, 2026 21:32
25aaf8f to
f30dcdaComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 7, 2026 01:29
f30dcda to
ff4cdf3ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 7, 2026 21:13
ff4cdf3 to
741cb0cComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 12, 2026 01:24
741cb0c to
26490b7ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 13, 2026 00:31
26490b7 to
718a966ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
2 times, most recently
from
May 21, 2026 22:07
123e5b8 to
f703d6bCompareReview the following changes in direct dependencies. Learn more about Socket for GitHub.
|
renovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 23, 2026 09:49
f703d6b to
77eaadbComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 28, 2026 20:45
77eaadb to
bf494a4ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 29, 2026 02:29
bf494a4 to
4a49f8aComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
May 30, 2026 01:43
4a49f8a to
72158c2ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
June 9, 2026 05:52
72158c2 to
207019aComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
June 24, 2026 13:41
f4ace53 to
b5cc319ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
June 29, 2026 23:15
b5cc319 to
67be67aComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 3, 2026 15:06
67be67a to
005f520ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 7, 2026 12:43
005f520 to
bdbaf97ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 9, 2026 10:08
bdbaf97 to
2d38f4cComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 10, 2026 02:05
2d38f4c to
e84a905ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 10, 2026 18:00
e84a905 to
7cab0d2ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 15, 2026 12:12
7cab0d2 to
f85cec6ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
2 times, most recently
from
July 22, 2026 06:03
03e1142 to
9f7c7f5ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 22, 2026 21:44
9f7c7f5 to
e1ae85eComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 23, 2026 20:46
e1ae85e to
eaad01aComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 24, 2026 00:41
eaad01a to
fcd7984ComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
July 27, 2026 22:53
fcd7984 to
5bc8a2aComparerenovateBotforce-pushed
the
renovate/scalar-monorepo
branch
from
August 7, 2026 02:10
5bc8a2a to
c9d1773Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.44.26→1.64.0Release Notes
scalar/scalar (@scalar/api-reference)
v1.64.0Minor Changes
#9683: Surface the required OAuth scopes for an operation as a dedicated "OAuth scopes" section below the description (above parameters), instead of only inside the "Auth Required" badge popover. Scopes are de-duplicated across security alternatives and shown in both the modern and classic layouts, as well as on AsyncAPI operations.
#9711: feat: add
pluginUrlsconfiguration option to load API Reference plugins from URLsEach entry must point to an ESM module that exports a plugin (the same shape as the
pluginsentries) as its default export. The standalone build (Scalar.createApiReference) imports the modules before the API reference mounts and registers their default exports alongside the plugins passed directly. Unlikeplugins, the new option is JSON-serializable, so integrations that pass their configuration as JSON (for example the Docker container or Scalar for Aspire) can load plugins without replacing the whole bundle.Patch Changes
#9732: Render every
oneOf/anyOfgroup of anallOfin place. Previously, when one object composed several mutually-exclusive choices as siblingoneOf/anyOfunderallOf, only the first group was shown and the rest were silently dropped. Each choice group now renders its own selector in the position it was declared, and the generated request example stays in sync per group.#9794: Keep sibling
propertieswhen flattening a single-memberallOf. Previously, a schema declaring its ownpropertiesnext to anallOfholding a single$reflost those sibling properties: the referenced schema'spropertiesoverwrote them instead of being combined, and the referenced schema'stitle/descriptionreplaced the parent's. Sibling and inherited properties now render together,requiredlists are unioned, and the parent schema's own annotations win over the base it extends.#9757: fix: read enum metadata from array items
When an enum is defined inside an array schema's
items, the enum values were resolved fromitemsbut theirx-enum-varnames,x-enumNames, andx-enumDescriptionswere still read from the outer schema, so the metadata was dropped. Both the values and their metadata are now read from the same schema.#9681: The "Auth Required" / "Auth Optional" badge on operations now opens on hover, not just on click
#9753: fix: badge base styles no longer rely on zero specificity
The badge base rule was written with
:where(.badge), which the scoped-style compiler collapsed to zero specificity, letting any late-loading reset clobber the badge font size, padding, and colors. The base styles now carry real specificity, and consumers that intentionally override them (the download-link json/yaml badges and the webhook badge) keep winning through tailwind-merge and higher-specificity variant rules.#9766: fix: give the collapsible section trigger an accessible name and a valid
aria-controlstargetThe trigger button rendered by
CompactSectioncarriedaria-controlsset to its ownid, so it declared that it controls itself, and it exposed no accessible name of its own. Screen reader users heard an unnamed button, and axe-core reportedbutton-nameandaria-allowed-attron every model section.The trigger now points
aria-controlsat the collapsible region, which carries its own id. While the section is collapsed the attribute is dropped entirely rather than left pointing at an element that is not rendered.The accessible name now comes from
aria-labelledbypointing at the heading the trigger already renders, so the name is always the visible text. Referencing the heading rather than copying it into anaria-labelmeans the name cannot drift out of sync with what is on screen, which is the WCAG 2.5.3 (Label in Name) failure a duplicated string would risk.#9754: fix: adapt the info links to the rendered width of the reference instead of the viewport
The introduction's info links (contact, license, terms of service, external docs, and
x-scalar-links), the section header grid, and the classic-layout selector cards switched their layout based on viewport media queries, while the rest of the reference adapts to the rendered width of the reference through thenarrow-references-containercontainer query. They now restyle based on the container as well, through a newnarrow:Tailwind variant.#9751: fix: keep even heading-to-description spacing on the operation title in narrow layouts
The narrow (single-column) operation layout bumped the operation title's bottom margin to 24px, so the gap between the heading and its description no longer matched the 12px used on wider screens. The override is removed so the title keeps the shared 12px spacing at every width.
#9676: Preload additional documents in a multi-document setup while the browser is idle, so switching between them is instant.
#9788: Add print styles so printing (or saving to PDF) no longer renders expanded content over the text that follows it. The reference lays itself out as a fixed-viewport application, and its sticky columns were pinned to a screen measurement that is meaningless on paper. Printing now flattens that shell into ordinary document flow: navigation and floating chrome are hidden, sticky positioning and viewport-derived height caps are dropped so long examples are no longer truncated, and small units such as properties and cards avoid breaking across pages.
#9691: Show the
formatof primitive array items (e.g. an array ofuuidstrings) in the schema property headingv1.63.0Minor Changes
SdkInstallationInstructionsandgetRenderableSdksfrom@scalar/api-reference/blocks, so consumers that compose their own reference layout can renderx-scalar-sdk-installationagainv1.62.9Patch Changes
v1.62.8Patch Changes
#9687: feat(themes): derive the border radius scale from
--scalar-radiusThe radius tokens used to be independent, so setting
--scalar-radius: 0still left rounded cornersbehind on anything using
--scalar-radius-lg,--scalar-radius-xlorrounded-full. They now allderive from
--scalar-radius, which means overriding that single variable rescales every corner in theinterface, and
0squares it off completely.Two new tokens fill out the scale,
--scalar-radius-2xl(12px) and--scalar-radius-3xl(16px), alongwith
--scalar-radius-fullfor pills and circles. The matchingrounded-2xlandrounded-3xlTailwindutilities now emit CSS; previously they were silently dropped.
Every default value is unchanged, so nothing shifts unless you were relying on the old behaviour. If
your theme sets
--scalar-radiuson its own and expects the larger radii to stay put, set those tokensexplicitly. Override
--scalar-radiuson:root: a custom property substitutesvar()at the elementwhere it is declared, so setting the base further down the tree moves it without moving anything derived
from it.
v1.62.7v1.62.6Patch Changes
components.securitySchemes, with requirements derived from the union of every server'ssecurity(AsyncAPI has no root-levelsecurity). When some servers require auth and others accept unauthenticated connections, a no-auth option is offered too. Schemes shared with OpenAPI (http,oauth2,openIdConnect,apiKey) get full input UI, and AsyncAPI OAuth2availableScopesare mapped onto OpenAPIscopesso the scope list renders. Broker-specific types still appear in the selector but have no dedicated input yet. The selector is now fully interactive for AsyncAPI (selecting schemes, entering credentials, editing scopes) because the auth mutators accept AsyncAPI documents. Operation/channel-level auth is intentionally left for a follow-up.documentTypeprop on the auth selector block, defaulting toopenapi. Schemes that carry a valid but unsupported type (such as AsyncAPI broker types likeuserPasswordorscramSha256) now show a dedicated "not supported yet" message naming the type, instead of the misleading "missing a type" warning.authaccessor reading from the wrong store. It now reads from the client store — the same store the reference-side Authentication panel writes credentials into — so plugins see the secrets and selected security schemes the user actually entered instead of an empty state.v1.62.5Patch Changes
#9671: Add a
canDeleteSchemesprop to the auth selector so the delete (trash) affordance can be hidden. It defaults totrue(unchanged for the API client, where schemes are editable) and the API reference now passesfalse, since its schemes come from the rendered document and cannot be removed there.#9646: Fix deep links to response properties. Response property anchors now carry a
responsesmarker so the target operation is found and scrolled to on a fresh load, and response properties are linkable even whenexpandAllResponsesis off (a deep link expands the collapsed response and scrolls the property into view).#9631: Hide the protocol and server filters in the classic layout for AsyncAPI documents
#9639: Add a read-only accessor for the global authentication state to the plugin API. Plugin lifecycle hooks (
onInit,onConfigChange) now receive anauthaccessor alongsideconfig, and the plugin manager exposesgetAuthState()for view components. Plugins can read stored secrets and the selected security schemes viaauth.export(),auth.getAuthSecrets(documentName, schemeName), andauth.getAuthSelectedSchemas(payload)without being able to mutate auth.#9664: fix: keep base allOf properties when merging oneOf/anyOf branches
When a schema used
allOfto factor out shared object properties next to aoneOf/anyOf, each branch's ownproperties/requiredoverwrote the shared base fields instead of being combined with them. The base fields now stay visible alongside each branch's own fields.v1.62.4v1.62.3v1.62.2Patch Changes
v1.62.1Patch Changes
discriminator.mapping(no explicitoneOf/anyOf), which is the shape NSwag emits for polymorphic types$dynamicRefin schemas, so generic patterns likePaginatedResponse<T>show their concrete bound item type (for exampleUser[]) instead of an empty shape. The reference threads the active dynamic scope through the schema tree and binds each$dynamicRefto the matching$dynamicAnchor.Maximum call stack size exceededcrash when rendering a schema whose self-reference is reached through anallOfbranchv1.62.0Minor Changes
#9597: Add API Reference UI localization configuration with built-in English, Russian, Spanish, French, German, Simplified Chinese and Arabic translations, including automatic RTL direction for Arabic locales.
Update the shared theme reset so text inputs align to the logical start by default for RTL documents.
Add a
mergeObjectsdeep-merge helper to@scalar/helpers, used by the localization layer to merge translation overrides onto the built-in locale.#9568: Add AsyncAPI protocol and server pickers to the sidebar (like the multi-document picker) that filter the navigation down to the operations reachable over the selected protocol/server
#9543: Add the
x-scalar-linksOpenAPI extension to render extra named links (like a privacy policy or imprint) next to the contact, license and terms of service links in the introduction.Patch Changes
#9545: Render the divider between the contact email and url links in the introduction, so they are separated like the other info links.
#8519: refactor: extract the code example block into
@scalar/blocks/code-example.api-client,api-client-react, andapi-referencenow importCodeExample,findClient,generateClientOptions, and the related helpers from the new package.workspace-storeexportsisParamDisabledwith an optionaldefaultDisabledargument.Breaking (
@scalar/api-client): the@scalar/api-client/blocks/operation-code-sampleand@scalar/api-client/v2/blocks/operation-code-sampleexport paths have been removed. Import from@scalar/blocks/code-exampleinstead, and use the renamedCodeExample/CodeExampleProps(previouslyOperationCodeSample/OperationCodeSampleProps).#9578: Show the
propertyNamestype and format (e.g.string · uuid) for a map of additional properties, so key constraints are no longer dropped from the rendered schema#9548: Keep request and response example pickers in sync across operations. Selecting an example (e.g. "Use case 1") now selects the example with the same key on every other operation that defines it, mirroring how the programming-language selection already syncs. Operations that do not have a matching example keep their current selection.
v1.61.0Minor Changes
#9520: Render AsyncAPI operations and their messages (with payload and header schemas) nested inside each channel, in both the modern and classic layouts
#9569: Show server and protocol labels when rendering AsyncAPI channels and messages: each channel header lists the servers it's available on and their protocols, and each message surfaces every protocol it's carried over (its channel's server protocols unioned with its own binding protocols)
#9515: feat: add
requestBuiltclient plugin hook andonRequestBuiltconfiguration callback that receive the exact fetchRequestthat is sent over the wireThe hook runs after the request has been built, right before it is sent. Header mutations apply to the outgoing request and the body bytes match what the server receives, which makes request signing possible: hashing the body of a rebuilt
multipart/form-datarequest would produce a different multipart boundary than the request that is actually sent.Patch Changes
anyOf/oneOf/allOf/not)<style>tag: the CSS is now rendered verbatim instead of being HTML-escaped on the server ("became"), which broke font styles and caused a hydration mismatch.allOfmember override thedescriptionandtitleof an earlier oneoneOf/anyOfbeing dropped when nested inside anallOf. The composition is now preserved so its variants keep rendering alongside the merged base properties, instead of only the firstallOfmember showing up.v1.60.0Minor Changes
content.startplugin view slot andsidebarvisibility option for plugin view components.content.start: A new view slot that renders custom plugin components before the Introduction/Info section (at the top of the content area).sidebaroption onViewComponent: Plugins can now opt-in to display a sidebar entry for their custom views by providingsidebar: { show: true, label: 'My Page' }. Omittingsidebaror settingshow: falsehides the entry from the sidebar. The entry hooks into the existing navigation, so clicking it scrolls to the plugin view and it highlights as it scrolls into view.Patch Changes
allOf,oneOf, oranyOf)expandAllSchemaProperties.expandAllResponsesis enabled. A response's own description and its content schema's description are now both shown.max-width: 1000pxwhile the sidebar visibility is driven by Tailwind'slg:variant (min-width: 1000px), so both fired at 1000px. The mobile breakpoint now useswidth < 1000px, the exact complement oflg:, so 1000px is treated as desktop.v1.59.3Patch Changes
#9396: Refactor URL redirects into a routing-agnostic, list-driven engine. Redirects now operate on the bare navigation id, so each rule works across hash, hash-base-path, and path routing automatically. Also redirect old
models/<name>bookmarks to the configured models section slug when the section label is customized (e.g.schemas/).#9489: Do not render the info link list when no links are available.
#9342: fix: resolve operations when OpenAPI path items use
$refPath entries and webhooks can reference
components.pathItemsinstead of inlining operations. Navigation, mutators, search, and markdown export now resolve path-item references before reading HTTP methods and path-level parameters.#9498: Sync the SDK installation tabs with the operation code examples: picking a language under "Client Libraries" now switches every operation's code sample to that language's custom example
v1.59.2Patch Changes
sourceinstall command onx-scalar-sdk-installation. When set, it is appended todescriptionas a fenced code block (or used on its own when there is nodescription).descriptionremains the promoted field.v1.59.1Patch Changes
v1.59.0Minor Changes
#9435: feat(api-reference): render AsyncAPI channel parameters
Channel address parameters (the
{param}placeholders in a channel address) are now shown in the API reference, reusing the same parameter list component as OpenAPI operations. Theirenum,default, andexamplesare displayed on a string schema.#9438: feat(api-reference): add an AsyncAPI server selector
Adds a server selector for AsyncAPI documents in the API reference introduction. It mirrors the OpenAPI server selector but works with the AsyncAPI server shape (a named map of
host/protocol/pathname), labelling each server with its constructed connection URL.Server selection and variable changes are now persisted to the workspace store via new
asyncapi-server:update:selectedandasyncapi-server:update:variablesevents and their mutators, mirroring the OpenAPI wiring.#9422: Add a
nonceoption for Content Security Policy support.When you pass a
nonce, the rendered HTML stamps it onto the inline<script>and the CDN<script>tag (and Scalar's own<style>tags, plus a matching<meta property="csp-nonce">). This lets the API Reference run under a strictscript-srcwith nounsafe-inlineand nounsafe-eval.Note:
style-srcstill needs'unsafe-inline'. The reference renders inlinestyle="…"attributes, which a CSP nonce can never authorize (nonces only apply to<script>,<style>and<link>elements), so a nonce-onlystyle-srcis not possible. The win is a fully strictscript-src.#9400: feat(api-reference): add
expandAllSchemaPropertiesconfig option.When enabled, nested schema properties are expanded by default while keeping the
"Show/Hide Child Attributes" button available for manual collapsing. Expansion
is cycle-safe: every finite branch is expanded fully, and self-referential
($ref or inline) schemas stop at the point they would otherwise recurse forever.
#9399: Show custom SDK installation instructions from
x-scalar-sdk-installationin the introduction card, falling back to the client selector when there are none. Each entry takes alangand a Markdowndescription, so a single tab can render rich instructions with syntax-highlighted code blocks (for example Maven and Gradle for Java)Patch Changes
#9388: Add
ScalarVirtualCodeBlockcomponent with copy button support for virtualized code blocks#9436: Hide the client selector for AsyncAPI documents
#9398: feat: read code samples from x-readme, x-stainless and x-scalar extensions
In addition to
x-codeSamples, the code sample picker now reads custom samples fromx-scalar-examples,x-stainless-snippets,x-stainless-examples, andx-readme.code-samples. When more than one is present on an operation, the highest-priority source is used (x-scalar-examples > x-stainless-snippets > x-stainless-examples > x-readme > x-codeSamples).#9426: feat(api-reference): render the contact URL from
info.contact.url#8573: fix(api-reference): infer discriminator variants from mapping
#9131: fix(api-reference): preserve OAuth redirect URI when switching OpenAPI documents
When using multiple OpenAPI documents with OAuth configured via
oauth2RedirectUri,switching to another document no longer clears the Redirect URL in the Authentication
section.
The fix threads
oauth2RedirectUrifrom the top-level configuration into the securityscheme merge chain so that each newly loaded document's OAuth flows are pre-populated
with the configured redirect URI, rather than relying solely on a component-level watcher
that would skip re-population when the same OAuth flow identity was detected across
documents.
#9391: fix: stabilize the tab title at the top of the document
The document-start sentinel and the Introduction section both fire an intersection event at scroll-top. They resolved to different entries, so the tab title raced between the section title and the document title. The sentinel now emits the Introduction entry, so both agree.
#9370: fix(api-reference): rework the modern operation layout with CSS grid so the request example sits directly under the description on narrow screens, and move the operation title and auth badge into the same grid
#9421: fix(api-reference): avoid SSR hydration mismatch from the search shortcut and teleport ids
The macOS search shortcut symbol was derived from
navigatorduring render, so a Mac client hydrated⌘where the server sent⌃. The platform is now resolved after mount. Teleport target ids and the search modal ids also switched fromnanoid()to Vue's SSR-stableuseId().#9392: Clean up the standalone build's injected
<head>styles ondestroy()so they no longer linger after SPA-style navigation (Turbo Drive, htmx). The styles are re-attached when a new instance mounts.#9420: fix(api-reference): make x-tagGroups titles navigable from search
Tag group titles appeared as search results but clicking them did nothing,
because the flattened modern layout rendered no element carrying the tag
group id to scroll to. The group now exposes its id as a scroll anchor.
v1.58.0Minor Changes
#9372: Render AsyncAPI
components.schemasas Models, listed in the sidebar and content just like OpenAPI schemas#7618: feat(api-reference): add
setPageTitleto customize the browser tab titlePass a
setPageTitlefunction to control the browser tab title. It is called whenever the section in view changes — on sidebar clicks, on scroll, and when switching documents — and receives the section title and the active OpenAPI document:Patch Changes
#9348: Render AsyncAPI channels as sections in the content area, with the channel address as the heading and the channel description below. Channels are grouped under tags when the navigation tree groups them. Operations and messages are not rendered yet.
#9255: Surface the Introduction entry and any headings extracted from
info.descriptionof AsyncAPI documents in the sidebar, mirroring how OpenAPI documents are handled.#9347: Surface AsyncAPI
info.descriptionheadings in the search modal, mirroring the sidebar behaviour. AsyncAPI channels, operations, and messages are not indexed yet.#9350: feat(api-reference): list Ask AI and MCP Servers as Scalar Docs features in the Deploy popover
#9310: Add an ESM standalone build (
dist/browser/standalone.esm.js) alongside the existing UMD bundle. The new bundle works as a side-effect script (registerswindow.Scalar.createApiReferenceand readsdata-*configuration) and exportscreateApiReferencefor direct ESM consumers. It is fully minified through Rolldown's native minifier and uses code splitting so heavy features load asynchronously after first paint:await import'd insideonMountedinstead of statically imported, moving ~265 KB into achunks/modal-*.jschunk that loads in the background.defineAsyncComponent) becomes a realchunks/AgentScalarChatInterface-*.jschunk (~200 KB), loaded only when the agent is enabled.@scalar/icons/libraryare coalesced into a singlechunks/icons-*.js.Net effect: initial sync load drops from ~3.32 MB (UMD) to ~2.73 MB (ESM) — a ~570 KB improvement — while total bundle size shrinks by ~140 KB.
Also adds an
@scalar/api-client/modal/map-hidden-clients-configdeep export so consumers that only need the lightweight client-list helper don't pull the full modal barrel into their static graph.#9139: fix(api-reference): preserve OAuth redirect URL when switching between OpenAPI documents
Auth changes were being persisted under the wrong document slug and shared a single debounce queue across all documents. When switching documents quickly, the pending save for the first document could be overwritten or dropped by a save for the second document, causing the redirect URL (and other auth secrets) to appear cleared after switching back.
The fix uses
event.documentNameas both the debounce key and the storage key, giving each document its own independent debounce queue.#9194: fix(api-reference): break cycles in
mergeAllOfSchemasfor self-referencing schemas (whether they$refback to themselves through array items or through a plain object property), which previously crashed the docs preview with "too much recursion"#9309: feat: add
modelsSectionLabelconfiguration ('Models' | 'Schemas' | string) to use OpenAPI-style Schemas terminology in the sidebar, content, and search.v1.57.5Patch Changes
#9318: fix: restore response content type selector when expandAllResponses is enabled
Move the content type picker after the disclosure panel so it stacks above expanded response content and remains clickable when
expandAllResponsesis true.v1.57.4v1.57.3Patch Changes
customFetchto the api-reference configuration and forward it to the API client so requests (including "Test Request" calls) use the custom fetch — enabling things likecredentials: 'include'. The previousfetchoption is deprecated and migrated automatically with a console warning.null, whitespace-only, andvalue/externalValue-shaped schema examples correctlyv1.57.2Patch Changes
v1.57.1v1.57.0Minor Changes
WorkspaceDocumentan union of OpenApiDocument and AsyncApiDocumentPatch Changes
#9211: fix(api-reference): clean up deprecated document listeners on destroy
createApiReference()registered three document-level listeners(
scalar:reload-references,scalar:destroy-references,scalar:update-references-config) butdestroy()only unmounted theVue app — the listeners stayed attached forever. In environments that
mount and destroy instances repeatedly (notably the Astro integration's
renderMode="client"with view transitions), each navigation leakedthree permanent listeners on
document.Tie the listeners to an
AbortControllerand abort it fromdestroy()so they all come off in one shot.
#9211: fix: show "Download AsyncAPI Document" label for AsyncAPI documents
#9211: fix: rename the "OAS" version badge to "OpenAPI" and show an "AsyncAPI" badge for AsyncAPI documents
#9211: fix(api-client): block invalid request URLs before send and surface
buildRequestfailures as resultsRequest construction now treats a bad merged URL as a first-class failure instead of throwing deep inside helpers. After
mergeUrls,resolveRequestFactoryUrlrejects incomplete targets when strict mode applies: relative URLs, an empty server base, or path strings that still contain unresolved{{variable}}placeholders. Callers may setallowMissingRequestServerBasewhere a full absolute URL is intentionally optional (for example the embedded modal layout inOperationBlock, or API ReferenceonBeforeRequesthooks that build against the document origin).buildRequestreturns aResult(ok/err) with stable error codes such asMISSING_REQUEST_SERVER_BASE,INVALID_REQUEST_FACTORY_URL, andBUILD_REQUEST_FAILEDfor unexpected synchronous failures. Those failures are wrapped withsafeRunfrom@scalar/helpers, which logs toconsole.errorand maps throws to a string message on the result. The API Reference plugin path logs and skipsonBeforeRequestwhen a preview request cannot be built, so user hooks never run against a half-built fetch payload.Downstream packages (
api-client,api-reference,scalar-appwhere applicable) unwrap the result, show toasts or logs, and avoid callingsendRequestuntil the URL is valid.#9211: fix(api-reference): improve search ranking for parameter, request-body, and model field names, including polymorphic (oneOf/anyOf/allOf) schemas
#9211: fix: resolve $ref in additionalProperties before rendering schema
#9211: chore: use the new schemas
#9211: Fix mobile sidebar z-index to ensure it appears above all content when open
#9211: Avoid repeating request body schema descriptions above collapsed overflow properties.
#9211: feat: add more analytics events
#9211: fix: agent scalar warnings
#9211: fix(api-reference): lower badge style specificity
#9211: fix: posthog stream warning
v1.55.3Patch Changes
v1.55.2Patch Changes
v1.55.1Patch Changes
v1.55.0Minor Changes
operation.security ?? document.security; hover reveals the scheme names, types, and any required scopes.Patch Changes
v1.54.0Minor Changes
operation.security ?? document.security; hover reveals the scheme names, types, and any required scopes.Patch Changes
v1.53.1v1.53.0Minor Changes
v1.52.6v1.52.5v1.52.4Patch Changes
position: fixedon.section-flareso the decorative hero flare stops reserving 100vh of empty space at the top of the documentation (affects thekepler,bluePlanet, andmarsthemes, which declareheight: 100vhon the flare but rely on the framework to position it)v1.52.3Patch Changes
v1.52.2Patch Changes
v1.52.1Patch Changes
v1.52.0Minor Changes
Patch Changes
v1.51.0Minor Changes
Patch Changes
v1.50.0Minor Changes
Patch Changes
v1.49.8Patch Changes
v1.49.7Patch Changes
v1.49.6Patch Changes
v1.49.5Patch Changes
v1.49.4Patch Changes
v1.49.3Patch Changes
v1.49.2Patch Changes
v1.49.1Patch Changes
v1.49.0Minor Changes
Patch Changes
Updated Dependencies
@scalar/workspace-store@0.40.2
@scalar/api-client@2.38.1
@scalar/openapi-parser@0.25.4
@scalar/components@0.20.9
@scalar/agent-chat@0.9.9
@scalar/oas-utils@0.10.8
@scalar/sidebar@0.8.9
v1.48.8Patch Changes
Updated Dependencies
@scalar/api-client@2.38.0
@scalar/agent-chat@0.9.8
Configuration
📅 Schedule: (UTC)
* 0-4,22-23 * * 1-5)* * * * 0,6)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.