- extend vue-seo-layer (link dependency during development); every page
takes its head from the SEO plugin through it
- remove the copied shared purge route, library, plugin and their test:
POST /api/__site__/cache/purge comes from vue-seo-layer with the same
contract and environment variables
- the page-less playground sets seo.htmlSitemap false; the smoke points
NUXT_SEO_API_BASE at the fixture API (fails open)
BREAKING CHANGE: server/api/__site__/cache/purge.post.ts,
server/lib/siteCachePurge.ts and server/plugins/site-cache-purge.ts are
no longer in this layer, and the runtime keys cachePurge and siteCache
are declared by vue-seo-layer. An app without pages sets
seo.htmlSitemap false.
nuxt-site-config copies every NUXT_SITE_* variable into the public site
config, so NUXT_SITE_CACHE_PURGE_TOKEN reached every page's payload as
cachePurgeToken (and NUXT_SITE_CACHE_ALLOW_PROXIED as cacheAllowProxied).
- The purge settings move to runtimeConfig cachePurge.token
(NUXT_CACHE_PURGE_TOKEN) and cachePurge.allowProxied
(NUXT_CACHE_PURGE_ALLOW_PROXIED), outside that prefix.
- The old siteCache.* names keep working for one release: a non-empty
new token wins, either allowProxied flag turns it on, and one
deprecation warning per process names the variables (never a value).
- The shared Nitro plugin server/plugins/site-cache-purge.ts strips
cachePurgeToken and cacheAllowProxied from nuxt-site-config's stack on
site-config:init, so a site on the old names leaks nothing either; it
does nothing without nuxt-site-config.
- The shared lib, route and plugin and tests/sitePurge.test.ts are
byte-identical in vue-journal-layer, vue-menu-layer and vue-faq-layer,
with three sha256 pins.
- README: new names, the deprecation, the stripping and the advice to
rotate a token ever set under the old name.
- runtimeConfig.siteCache.allowProxied (NUXT_SITE_CACHE_ALLOW_PROXIED, default
false) lets the shared purge route accept a request that came through a
TLS-terminating proxy; the bearer token is then the only gate
- shared lib, route and spec stay byte-identical across the three layers,
with updated sha256 pins and two new sitePurge specs
- version 0.3.0
- server/lib/siteCachePurge.ts and the route, byte for byte from
vue-faq-layer (sha256 pinned in tests/sitePurge.test.ts)
- runtimeConfig.siteCache.purgeToken (NUXT_SITE_CACHE_PURGE_TOKEN) and the
'/api/__site__/**': { cache: false } route rule
- version 0.2.0
- typed client and useMenu/useMenuApi (SSR, menu:<code>:<locale> key,
server and public bases, x-forwarded-for forwarded also on cached renders)
- MenuNav and recursive MenuNavItem: WAI disclosure navigation, URL
allowlist with a text fallback, rel on _blank, active link and trail,
mobile toggle, Esc / focus-out / outside pointer / route change closing
- menu tokens and base CSS, README
- node tests (link rules, client, server-rendered NavItem) and a playground
SSR smoke against a fixture API