Skip to content

v0.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Oct 09:27
· 7 commits to main since this release

The report rendering moves into its own package, @focusring/wcagify-reporter, so other apps can show WCAGify reports without WCAGify's editor, admin and share routes, or Nuxt Content.

Breaking changes

  • Nuxt Studio is removed. Its editor and the /_studio, /__nuxt_studio/* and /sw.js routes are gone. Edit reports as markdown in content/reports/<slug>/ (or with wcagify-new-report), commit and redeploy. Projects that still want Studio can install nuxt-studio and add it to their own modules.
  • @focusring/wcagify/print.css is now @focusring/wcagify-reporter/print.css. Apps that extend the WCAGify layer get it automatically; only projects that imported the file directly need to change the path.
  • @focusring/wcagify/locales/en and /nl hold only the app's keys. The report and codeBlock messages are in @focusring/wcagify-reporter/locales/*. Nuxt apps are unaffected because @nuxtjs/i18n merges both layers' locale files; code that imported the locale objects directly must merge the two.
  • The Nitro auto-import rewriteUploadUrls(value, reportSlug, token) is removed. Import it from @focusring/wcagify (or @focusring/wcagify-reporter). The new signature is rewriteUploadUrls(value, from, to) with URL prefixes; rewriteUploadUrls(issues, '/api/uploads/<slug>/', '/api/share/<token>/uploads/') reproduces the old behaviour.
  • Report components, prose overrides and report composables moved to @focusring/wcagify-reporter (Report*.vue, ResultsIndicator, ProseImg, ProsePre, ProseHNested, useWcagData, useConformanceResult, useReportDownload). Auto-imports and component names are unchanged; deep imports of @focusring/wcagify/app/... must point at @focusring/wcagify-reporter/app/....
  • Report component props are typed with ReportDocument / IssueDocument instead of Nuxt Content's generated item types. Nuxt Content items still fit; hand-built objects need title, path and a minimark body.
  • ProseImg, ProsePre and ProseHNested are global components, registered from the report layer's app/components/prose/. A project's own ProseImg still wins.
  • Dependencies moved. @nuxt/fonts, reka-ui, @vueuse/core, @nuxtjs/mdc and minimark now come in through @focusring/wcagify-reporter. Projects that import any of them directly must list them in their own package.json.

New

  • @focusring/wcagify-reporter: a framework-free API (schemas, WCAG data, scoring, documents, teaser) and a render-only Nuxt layer (@focusring/wcagify-reporter/layer) with the report components, prose overrides, report translations, Nuxt UI app config, report.css and print.css. No pages, no server routes, no Nuxt Content. @focusring/wcagify depends on it at the exact same version, extends its layer and re-exports its root API, so existing projects need no changes.
  • New root exports: reportDocumentSchema, issueDocumentSchema, minimarkSchema, reportTeaser, teaserSchema, rewriteUploadUrls, allScEntries, levelIncludes, and the types ReportDocument, IssueDocument, Minimark, MinimarkNode, Teaser, TeaserReport.
  • Report bodies render through ReportMarkdown (minimark + MDCRenderer) without registering @nuxtjs/mdc, so no /api/_mdc/highlight route is added.

Improvements

  • Smaller pages: the report schemas and zod are no longer shipped to the browser; the report page loads about 75 KB less JavaScript (about 20 KB gzipped).
  • CI guard: an e2e suite builds an app that extends only the report layer and fails if a release adds a server route, Nuxt Content or server-only dependencies to it, loads Tailwind's base styles twice, or ships zod to the client.

Security (0.6.8)

0.6.8, released just before this, stopped serving Nuxt Content's collection dumps (/__nuxt_content/<collection>/sql_dump.txt and /query) to visitors when WCAGIFY_ADMIN_SECRET is set. Upgrade if you run an admin-locked instance on an older version.

Install both packages at the same version: @focusring/wcagify 0.7.0 needs @focusring/wcagify-reporter 0.7.0.


Commits

   🚨 Breaking Changes

  • wcagify: Remove nuxt studio  -  by @timdamen and Claude Opus 5.5 (15363)
  • wcagify-reporter: Move the report layer into its own package  -  by @timdamen and Claude Opus 5.5 (91255)

   🚀 Features

  • wcagify: Add report documents, teaser and upload rewrite to core  -  by @timdamen and Claude Opus 5.5 (92135)

   🏎 Performance

  • wcagify-reporter: Let bundlers drop unused schemas  -  by @timdamen and Claude Opus 5.5 (19389)
    View changes on GitHub