kubb.dev
0.0.1
Patch Changes
#170
4b06f89Thanks @stijnvanhulle! - docs(adapter-oas): add missing dedupe option to the adapter-oas reference page#191
db0dbd0Thanks @stijnvanhulle! - Keep the beta banner's layout offset in sync while scrolling so page content no longer shows through the docs header once the banner scrolls out of view.#158
8d529eaThanks @stijnvanhulle! - Move extension metadata into the docs repo (kubb-labs/docs) and hand-write the extension docs pages. The new source of truth isextensions/{plugins,adapters,parsers}/<id>.yamlat the root of the docs repo: small options-free files in the nuxt/modules style, validated against the newpublic/schemas/extension.json. The pages underplugins/,adapters/, andparsers/are now committed markdown with options documented inline and reusable examples undersnippets/via the VitePress import syntax. The fetch pipeline vendors the docs repo andgenerateRegistryreads fromvendor/docs/extensions/, keeping the npm and GitHub stats enrichment. See ADR-0008.#221
bb7d0f2Thanks @stijnvanhulle! - Render the changelog as a standalone timeline view. Releases now read as dated version markers down a vertical rail, with mono package labels and colored category labels, rendered above a page header with a link to the source changelog. The synced markdown keeps its structure, so the layout comes from achangelogpage class and a small header component.#212
b21d831Thanks @stijnvanhulle! - Add four client usage guides to the sidebar under Going further: calling operations, error handling, serialization and parsing, and server-sent events. The pages cover the shared contract of@kubb/plugin-fetchand@kubb/plugin-axios: the grouped options object, theRequestResultshape,throwOnErrorandResponseError,contentType, parameter and body serialization, response deserializers and thevalidatoroption, and consuming atext/event-streamoperation withfor await.#236
8dcfe53Thanks @stijnvanhulle! - Match the top spacing on the plugins, adapters, parsers, contributors, sponsors, and blog pages to the docs and extension detail pages. Theselayout: pageroutes opened with a 3rem gap above their title, so it sat much lower than on the rest of the site; they now start at the same--kubb-space-3offset below the nav.#125
5ce4a1cThanks @stijnvanhulle! - Allow thestatus.kubb.deviframe andcdn.jsdelivr.netsource map fetches in the CSP, and addmobile-web-app-capablealongside the deprecated apple-prefixed meta.#126
4bfffe7Thanks @stijnvanhulle! - Document every diagnostic code underdocs/5.x/diagnostics, so eachdocs:link Kubb prints resolves. The index lists all codes with their severity and a one-line summary.#136
1a9dd5bThanks @stijnvanhulle! - Document the@kubb/plugin-clientclass naming change in the v5 migration guide: class clients (clientType: 'class',clientType: 'staticClass', andsdk) now name each tag class with aClientsuffix (petgeneratesPetClient) so the barrel no longer collides with the schema model of the same name. The guide shows the before and after output and how to restore the old names throughresolver.resolveGroupName.#134
e42220fThanks @stijnvanhulle! - Sync the hand-written docs with kubb v5.0.0-beta.44:Diagnostics.hasError/isProblem/isPerformancereplace the removedhasBuildErrorand'timing'kind, the file manager and file processor sections describe the internal classes instead of removed exports,config.inputnarrowing uses theinoperator, the last v4barrelTypeexamples use thebarrelobject, the AST ref helpers import from@kubb/ast/utils, and the incremental cache default is documented in the configuration reference and the migration guide (including a new rule in the upgrade prompt).Fix
generateDocs.tsxgenerating zero plugin, adapter, parser, and middleware pages: the pinned@kubb/renderer-jsxhas nostreammethod, so the silent fallback emitted nothing. The generator renders the tree and readsrenderer.files, and throws when populated registries produce zero pages.#122
444dd55Thanks @stijnvanhulle! - Link the footer copyright (© 2022-2026 Stijn Van Hulle) to stijnvanhulle.be.#173
ea628b1Thanks @stijnvanhulle! - Extension pages (plugins, adapters, parsers) now declareheader: plugin|adapter|parserin their YAML frontmatter instead of embedding a component call in the markdown body. Layout.vue reads the frontmatter key and renders the header in the#doc-beforeslot, keeping content files component-free.#157
3b06b75Thanks @stijnvanhulle! - Remove unused code flagged by knip in the docs app. Drop the deadDOCS_DIRandMAX_BADGE_DISPLAYconstants and the unused framework brand logos inbrands.ts(the VitePress config defines its own), and drop the redundantexporton the script helpersghHeaders,parseGitHubRepo,fenceLang,renderCodeBlock, andrenderExampleFilethat are only used within their own module. No runtime or output changes.#139
270efcaThanks @stijnvanhulle! - Document the v5 tag group folder change in the migration guide. Grouping withgroup: { type: 'tag' }now writes each tag to a folder named after the plain camelCased tag instead of${tag}Controller, and the guide shows thegroup.nameescape hatch that restores the v4 layout. Adds a matching rule to the upgrade prompt.#141
b01bbaaThanks @stijnvanhulle! - Document the new pluginoutput.modeoption ('directory' | 'group' | 'file') in the configuration reference and migration guide, and drop the removedctx.getModehelper from the core API reference. The migration guide and its upgrade prompt now explain that single-file output needs an explicitoutput.mode: 'file'instead of anoutput.pathending in.ts. Add a diagnostics page forKUBB_INVALID_PLUGIN_OPTIONS, the error raised whenoutput.mode: 'group'is set without agroupoption.#144
2b612c0Thanks @stijnvanhulle! - Removekubb agentCLI command references from docs#142
6a4b654Thanks @stijnvanhulle! - Drop the'group'value from the documentedoutput.modeoption.output.modenow reads'directory' | 'file'in the configuration reference and migration guide. TheKUBB_INVALID_PLUGIN_OPTIONSdiagnostics page now describes the remaining case, pairingoutput.mode: 'file'with agroupoption, and thegroupoption keeps organizing'directory'output into per-tag or per-path subdirectories.#192
b1d0dbdThanks @stijnvanhulle! - Replace@kubb/plugin-clientreferences with@kubb/plugin-axiosand@kubb/plugin-fetch, now that the combined client package has been removed from the kubb ecosystem. Updates the Studio plugin registry, the kubb.dev site config and landing components, the agent package list, and the architecture docs.#218
6ec9abfThanks @stijnvanhulle! - Restore the Macros guide to the sidebar under Going further. The plugin restructure moved the per-client how-to guides into the plugin sidebars and dropped the general Macros page, which the AST reference and every plugin's options page still link to.#213
f97d3e1Thanks @stijnvanhulle! - Rename the "Configuration" sidebar entry tokubb.config.tswith the kubb logo, and regroup the Reference section so configuration and commands sit together, ahead of the AST/Parsers/Adapters building blocks and the Telemetry/Diagnostics pair.#175
acb9d10Thanks @stijnvanhulle! - Replace inline<Terminal>Vue components in docs with a markdown-it fence plugin. Terminal blocks now use```terminalfences withcommand:andoutput:fields. Badge labels are removed from section headings.#132
085c231Thanks @stijnvanhulle! - Align the landing-pageTerminalview with the new kubb v5 beta output: two spaces after the symbol, plugin names padded to a fixed column, and a right-aligned summary block (Plugins,Files,Duration,Output).#232
37c3c8bThanks @stijnvanhulle! - fix(ui): ship @kubb/ui as source so Nuxt UI components resolve in consuming appsComponents like
ConfirmModalandDangerSectionreferencedUModal,UAlert, and other Nuxt UI components in their templates. The package used to ship pre-built, so those references compiled to runtimeresolveComponent()calls that fail outside the library build, and Vue rendered them as inert unknown elements. In Kubb Studio this made the delete-agent confirmation modal invisible, both in the agents table and on the agent settings page.The package now ships raw source and each consumer compiles it: Kubb Studio transpiles it so Nuxt resolves the components (including the Nuxt icon runtime), and kubb.dev scans it through the Nuxt UI Vite plugin's
scanPackagesoption, which substitutes the Vue-compatible icon. The tsdown build step, the extracted@kubb/ui/style.cssentry, and the runtime resolution failures all go away.