Upgrading nuxt-og-image 2 to 3
Breaking2.2.6 → 3.1.1Breaking14New26Changed18Fixed207Other3
BreakingUpgrade verdict
14 breaking changes.
In plain terms
- Drop deprecated module config siteUrl, host - (0df3f).
- Remove hook og-image:prerenderScreenshots - (a7ee4).
- Remove deprecated defineOgImageDynamic, defineOgImageStatic - (6c1f3).
- Remove deprecated OgImageDynamic and OgImageStatic components - (850ca).
Must act Top 3 of 14 that need code or config changes
nuxt-og-image publishes an official migration guide for version 3. It covers more than the release notes do.
Migration guide ↗Requires Node.js >=18.0.0 from 3.0.0-rc.55 (none stated before).
Adds @nuxt/devtools-kit ^1.6.1, @unocss/core ^0.64.1, @unocss/preset-wind ^0.64.1, magic-string ^0.30.13, pkg-types ^1.2.1, strip-literal ^2.1.1, unplugin ^1.16.0, unwasm ^0.3.9.
Drops @twemoji/api, @types/fs-extra, birpc, chalk, css-inline, fast-glob, flatted, fs-extra, globby, launch-editor, svg2png-wasm, tinyws, twemoji, ws.
Installs 175 packages in all (was 353).
What you must change
Breaking14
Drop deprecated module config siteUrl, host - (0df3f).
siteUrlhostRemove hook og-image:prerenderScreenshots - (a7ee4).
og-image:prerenderScreenshotsRemove deprecated defineOgImageDynamic, defineOgImageStatic - (6c1f3).
defineOgImageDynamicdefineOgImageStaticRemove deprecated OgImageDynamic and OgImageStatic components - (850ca).
OgImageDynamicOgImageStaticRemove defineOgImageWithoutCache, defineOgImageCached - (7f22a).
defineOgImageWithoutCachedefineOgImageCachedRename runtimeBrowser -> runtimeChromium - (41a16).
runtimeBrowserruntimeChromiumRename default component NuxtSeo - (6052f).
NuxtSeowarning: This version no longer supports CSS inlining by default.
Rebuild core - (6f3b7).
Require explicit opt-in for inlining css - (23404).
Improved rendering of inline elements - (3f52c).
Serve prerendered images at /og-image/static/* - (71b59).
/__og-image__/static/*To opt in simply require add the @css-inline/css-inline dependency.
@css-inline/css-inlineAdditionally, if you're using edge rendering you may need to add the@css-inline/css-inline-wasm dependency.
@css-inline/css-inline-wasmAPI changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- added:
const emojiCache: Storage<string> - added:
const fontCache: Storage<BufferSource> | undefined - added:
const htmlPayloadCache: Storage<{ expiresAt: number, value: OgImageOptions }> - added:
const prerenderOptionsCache: Storage<OgImageOptions> | undefined
- added:
const componentNames: string[] - added:
default componentNames
- added:
const theme: Record<string, any>
- added:
const createBrowser: () => Promise<Browser | void>
- added:
const cssInline: _CssInline - added:
default cssInline
- added:
const instance: WasmResvg - added:
default instance - added:
interface WasmResvg - added:
property WasmResvg.Resvg: import('resvg').Resvg - added:
property WasmResvg.initWasmPromise: Promise<void>
- added:
const satori: typeof import('satori').satori - added:
default satori
- added:
const sharp: _sharp - added:
default sharp
- added:
const components: Record<string, Component> - added:
default components
- added:
const renderer: Renderer | { __unenv__: true } | undefined - added:
default renderer
- added:
const renderer: Renderer | { __unenv__: true } | undefined - added:
default renderer
- removed:
interface NuxtConfig - removed:
interface NuxtOptions - removed:
property NuxtConfig['ogImage']?: Partial<ModuleOptions> - removed:
property NuxtOptions['ogImage']?: ModuleOptions
- removed:
interface NuxtConfig - removed:
interface NuxtHooks extends ModuleHooks - removed:
interface NuxtOptions - removed:
property NuxtConfig['ogImage']?: Partial<ModuleOptions> - removed:
property NuxtOptions['ogImage']?: ModuleOptions
- removed:
property ModuleHooks.'og-image:config': (config: ModuleOptions) => Promise<void> | void - removed:
property ModuleHooks.'og-image:prerenderScreenshots': (queue: OgImageOptions[]) => Promise<void> | void - removed:
property ModuleOptions.host?: string - removed:
property ModuleOptions.playground: boolean - removed:
property ModuleOptions.runtimeBrowser: boolean - removed:
property ModuleOptions.runtimeCompatibility?: Partial<RuntimeCompatibilitySchema> - removed:
property ModuleOptions.runtimeSatori: boolean - removed:
property ModuleOptions.siteUrl?: string - changed:
const default: _nuxt_schema.NuxtModule<ModuleOptions> → const default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false> - changed:
property ModuleOptions.satoriOptions: Partial<SatoriOptions> → property ModuleOptions.satoriOptions?: Partial<SatoriOptions> - added:
property ModuleHooks.'nuxt-og-image:components': (ctx: { components: OgImageComponent[] }) => Promise<void> | void - added:
property ModuleHooks.'nuxt-og-image:runtime-config': (config: ModuleOptions) => Promise<void> | void - added:
property ModuleOptions.compatibility?: CompatibilityFlagEnvOverrides - added:
property ModuleOptions.componentOptions?: Pick<AddComponentOptions, 'global'> - added:
property ModuleOptions.googleFontMirror?: true | string - added:
property ModuleOptions.resvgOptions?: Partial<ResvgRenderOptions> - added:
property ModuleOptions.sharpOptions?: true | Partial<SharpOptions> - added:
property ModuleOptions.strictNuxtContentPaths: boolean - added:
property ModuleOptions.zeroRuntime?: boolean
- added:
const _default: import('vue').DefineComponent<OgImageOptions<'NuxtSeo'>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string,… - added:
default _default
- added:
const _default: import('vue').DefineComponent<OgImagePageScreenshotOptions, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, strin… - added:
default _default
- added:
function defineOgImage(_options?: DefineOgImageInput): void
- added:
function defineOgImageComponent<T extends keyof OgImageComponents>(component: T, props?: Partial<ExtractComponentProps<OgImageComponents[T]>>, options?: OgImageOptions): void
- added:
function defineOgImageScreenshot(options?: OgImagePageScreenshotOptions): void
- added:
function defineOgImage(_options?: DefineOgImageInput): void - added:
function defineOgImageComponent<T extends keyof OgImageComponents>(component: T, props?: Partial<ExtractComponentProps<OgImageComponents[T]>>, options?: OgImageOptions): void - added:
function defineOgImageScreenshot(options?: OgImagePageScreenshotOptions): void
- added:
const _default: import('nuxt/app').Plugin<Record<string, unknown>> & import('nuxt/app').ObjectPlugin<Record<string, unknown>> - added:
default _default
- added:
const _default: import('nuxt/app').Plugin<Record<string, unknown>> & import('nuxt/app').ObjectPlugin<Record<string, unknown>> - added:
default _default
- added:
const _default: import('nuxt/app').Plugin<Record<string, unknown>> & import('nuxt/app').ObjectPlugin<Record<string, unknown>> - added:
default _default
- added:
const _default: import('nuxt/app').Plugin<Record<string, unknown>> & import('nuxt/app').ObjectPlugin<Record<string, unknown>> - added:
default _default
- added:
function createOgImageMeta(src: string | null, input: OgImageOptions | OgImagePrebuilt, resolvedOptions: OgImageOptions, ssrContext: NuxtSSRContext): void - added:
function normaliseOptions(_options: DefineOgImageInput): OgImageOptions | OgImagePrebuilt
- added:
function ogImageCanonicalUrls(nuxtApp: NuxtApp): void - added:
function routeRuleOgImage(nuxtApp: NuxtApp): void
- removed:
function screenshot(browser: Browser, options: Partial<ScreenshotOptions> & Record<string, any>): Promise<Buffer>
- removed:
function useNitroCache<T>(e: H3Event, module: string, options: { key: string; cacheTtl: number; cache: boolean; headers: boolean; skipRestore?: boolean }): Promise<{ enabled: any; cachedItem: boolean | T; update(item: T): Promise<void> }>
- removed:
const _default: import('vue').DefineComponent<OgImageOptions, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue… - removed:
default _default
- removed:
const _default: import('vue').DefineComponent<OgImageOptions, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue… - removed:
default _default
- removed:
const _default: import('vue').DefineComponent<OgImageScreenshotOptions, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, i… - removed:
default _default
- removed:
const _default: import('vue').DefineComponent<OgImageOptions, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue… - removed:
default _default
- removed:
const _default: import('vue').DefineComponent<OgImageOptions, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue… - removed:
default _default
- removed:
const _default: import('vue').DefineComponent<OgImageOptions, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue… - removed:
default _default
- removed:
function defineOgImage(_options?: OgImagePrebuilt | OgImageOptions): Promise<void> - removed:
function defineOgImageCached(options?: OgImageOptions): Promise<void> - removed:
function defineOgImageDynamic(options?: OgImageOptions): Promise<void> - removed:
function defineOgImageScreenshot(options?: OgImageScreenshotOptions): Promise<void> - removed:
function defineOgImageStatic(options?: OgImageOptions): Promise<void> - removed:
function defineOgImageWithoutCache(options?: OgImageOptions): Promise<void>
- removed:
function normaliseOgImageOptions(_options: OgImageOptions): any
- removed:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<any>> - removed:
default _default
- removed:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<string | undefined>> - removed:
default _default
- removed:
const OgImagePrenderNitroPlugin: NitroAppPlugin - removed:
default OgImagePrenderNitroPlugin
- removed:
default function createBrowser(): Promise<any>
- removed:
default function createBrowser(): Promise<any>
- removed:
default function createBrowser(): Promise<Browser | void>
- removed:
default nodeFn - removed:
function nodeFn(html: string, options: any): string - removed:
namespace nodeFn - removed:
var nodeFn.__mock: boolean
- removed:
const mockFn: { (s: string): string; __mock: boolean } - removed:
default mockFn
- removed:
default function (svg: string, options: ResvgRenderOptions & RuntimeOgImageOptions): Promise<Buffer>
- removed:
default function (svg: string, options: ResvgRenderOptions & RuntimeOgImageOptions): Promise<Uint8Array>
- removed:
default function (svg: string, options: ConvertOptions & RuntimeOgImageOptions): Promise<Uint8Array>
- removed:
default function (nodes: any, options: SatoriOptions): Promise<string>
- removed:
default function (nodes: string, options: SatoriOptions & RuntimeOgImageOptions): Promise<string>
- removed:
const BrowserRenderer: Renderer - removed:
default BrowserRenderer
- removed:
const SatoriRenderer: Renderer - removed:
default SatoriRenderer
- removed:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - removed:
default _default
- removed:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - removed:
default _default
- removed:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - removed:
default _default
- removed:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - removed:
default _default
- removed:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - removed:
default _default
- removed:
function defineSatoriTransformer(transformer: SatoriTransformer | SatoriTransformer[]): SatoriTransformer | SatoriTransformer[] - removed:
function loadFont(requestOrigin: string, font: FontConfig): Promise<any> - removed:
function walkSatoriTree(node: VNode, plugins: (SatoriTransformer | SatoriTransformer[])[], props: RuntimeOgImageOptions): Promise<void>
- removed:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<{ siteConfigUrl: { value: any; source: any }; dev: boolean | undefined; runtimeConfig: any;… - removed:
default _default
- removed:
const _default: any - removed:
default _default
- removed:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<string | void>> - removed:
default _default
- removed:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<false | OgImageOptions>> - removed:
default _default
- removed:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<any>> - removed:
default _default
- removed:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<any>> - removed:
default _default
- removed:
export * from './utils-pure' - removed:
function base64ToArrayBuffer(base64: string): ArrayBuffer - removed:
function fetchOptions(e: H3Event, path: string): Promise<RuntimeOgImageOptions> - removed:
function fetchOptionsCached(e: H3Event, path: string): Promise<RuntimeOgImageOptions> - removed:
function readPublicAsset(file: string, encoding?: BufferEncoding): Promise<string | Buffer | undefined> - removed:
function readPublicAssetBase64(file: string): Promise<{ src: string; width?: number; height?: number } | undefined> - removed:
function toBase64Image(fileName: string, data: string | ArrayBuffer): string - removed:
function wasmLoader(asyncModuleLoad: Promise<any> | Buffer | string, fallback: string): { load(options: RuntimeOgImageOptions): Promise<any> }
- removed:
function decodeHtml(html: string): string - removed:
function extractAndNormaliseOgImageOptions(path: string, html: string, routeRules: OgImageOptions, defaults: OgImageOptions): OgImageOptions | false
- added:
function getExtension(path: string): string - added:
function isInternalRoute(path: string): boolean - added:
function normaliseFontInput(fonts: InputFontConfig[]): ResolvedFontConfig[] - added:
function separateProps(options: OgImageOptions | undefined, ignoreKeys?: string[]): { props: Record<string, any> } - added:
function toBase64Image(data: string | ArrayBuffer): string - added:
function withoutQuery(path: string): string
- added:
function createBrowser(): Promise<Browser | void>
- added:
function createBrowser(): Promise<Browser | void>
- added:
function createBrowser(): Promise<Browser | void>
- added:
const _default: { initWasmPromise: Promise<void>; cssInline: { inline: typeof inline } } - added:
default _default
- added:
const _default: { initWasmPromise: any; cssInline: { inline: any } } - added:
default _default
- added:
const _default: { initWasmPromise: any; cssInline: { inline: any } } - added:
default _default
- added:
const _default: { initWasmPromise: Promise<void>; Resvg: typeof _Resvg } - added:
default _default
- added:
const _default: { initWasmPromise: Promise<void>; Resvg: new (svg: Uint8Array | string, options?: import('@resvg/resvg-wasm').ResvgRenderOptions) => { free(): void; render():… - added:
default _default
- added:
const _default: { initWasmPromise: Promise<void>; Resvg: new (svg: Uint8Array | string, options?: import('@resvg/resvg-wasm').ResvgRenderOptions) => { free(): void; render():… - added:
default _default
- added:
const _default: { initWasmPromise: Promise<void>; satori: typeof _satori } - added:
default _default
- added:
const _default: { initWasmPromise: Promise<void>; satori: typeof _satori } - added:
default _default
- added:
const _default: { initWasmPromise: Promise<void>; satori: typeof _satori } - added:
default _default
- added:
default sharp
- added:
const emojiCache: Storage<string> - added:
const fontCache: Storage<BufferSource> - added:
const htmlPayloadCache: Storage<{ expiresAt: number; value: OgImageOptions }> - added:
const prerenderOptionsCache: Storage<OgImageOptions> | undefined
- added:
const emojiCache: Storage<string> - added:
const fontCache: Storage<OgImageOptions<'NuxtSeo'>> - added:
const htmlPayloadCache: Storage<{ expiresAt: number; value: OgImageOptions }> - added:
const prerenderOptionsCache: Storage<OgImageOptions> | undefined
- added:
const ChromiumRenderer: Renderer - added:
default ChromiumRenderer
- added:
function createScreenshot({ basePath, e, options, extension }: OgImageRenderEventContext, browser: Browser): Promise<Buffer>
- added:
function extractAndNormaliseOgImageOptions(html: string): OgImageOptions | false - added:
function resolveContext(e: H3Event): Promise<H3Error | OgImageRenderEventContext> - added:
function resolvePathCacheKey(e: H3Event, path?: string): string
- added:
function useChromiumRenderer(): Promise<import('../../types').Renderer> - added:
function useSatoriRenderer(): Promise<import('../../types').Renderer>
- added:
const assets: import('unstorage').Storage<import('unstorage').StorageValue> - added:
function loadFont({ e, publicStoragePath }: OgImageRenderEventContext, font: ResolvedFontConfig): Promise<ResolvedFontConfig>
- added:
function useCssInline(): Promise<any> - added:
function useResvg(): Promise<new (svg: Uint8Array | string, options?: import('@resvg/resvg-wasm').ResvgRenderOptions) => { free(): void; render(): { free(): void; asPng(): Uint8Array; readonly height: number; readonly pixels: Uint8Array; readonly width: number }; toString(): string; innerBBox(): { free(): void; height: number; width: number; x: number; y: number } | undefined; getBBox(): { free()… - added:
function useSatori(): Promise<typeof _satori> - added:
function useSharp(): Promise<typeof _sharp>
- added:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - added:
default _default
- added:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - added:
default _default
- added:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - added:
default _default
- added:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - added:
default _default
- added:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - added:
default _default
- added:
const _default: import('../../../../types').SatoriTransformer | import('../../../../types').SatoriTransformer[] - added:
default _default
- added:
const SatoriRenderer: Renderer - added:
default SatoriRenderer - added:
function createSvg(event: OgImageRenderEventContext): Promise<string>
- added:
function applyEmojis(ctx: OgImageRenderEventContext, island: NuxtIslandResponse): Promise<any>
- added:
function applyInlineCss(ctx: OgImageRenderEventContext, island: NuxtIslandResponse): Promise<boolean>
- added:
function defineSatoriTransformer(transformer: SatoriTransformer | SatoriTransformer[]): SatoriTransformer | SatoriTransformer[] - added:
function walkSatoriTree(e: OgImageRenderEventContext, node: VNode, plugins: (SatoriTransformer | SatoriTransformer[])[]): (void | Promise<void>)[]
- added:
function createVNodes(ctx: OgImageRenderEventContext): Promise<VNode>
- added:
function html(ctx: OgImageRenderEventContext): Promise<string>
- added:
const _default: any - added:
default _default
- added:
const _default: any - added:
default _default
- added:
const _default: any - added:
default _default
- added:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<any>> - added:
default _default
- added:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<any>> - added:
default _default
- added:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<{ siteConfigUrl: string; componentNames: any; runtimeConfig: import('../../types').OgImageR… - added:
default _default
- added:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<any>> - added:
default _default
- added:
const _default: import('h3').EventHandler<import('h3').EventHandlerRequest, Promise<any>> - added:
default _default
- added:
function useOgImageBufferCache(ctx: OgImageRenderEventContext, options: { baseCacheKey: string | false; cacheMaxAgeSeconds?: number }): Promise<void | H3Error | { cachedItem: false | BufferSource; enabled: boolean; update: (image: BufferSource) => Promise<void> }>
- added:
function decodeHtml(html: string): string - added:
function decodeObjectHtmlEntities(obj: Record<string, string | any>): Record<string, any> - added:
function htmlDecodeQuotes(html: string): string
- added:
function fontEventHandler(e: H3Event): Promise<any> - added:
function imageEventHandler(e: H3Event): Promise<any>
- added:
function createNitroRouteRuleMatcher(): ((path: string) => NitroRouteRules) - added:
function fetchIsland(e: H3Event, component: string, props: Record<string, any>): Promise<NuxtIslandResponse> - added:
function withoutQuery(path: string): string
- added:
const logger: import('consola').ConsolaInstance
- added:
function normaliseOptions(_options: DefineOgImageInput): OgImageOptions | OgImagePrebuilt
- added:
function nuxtContentPlugin(nitroApp: NitroApp): void
- added:
function importWasm(input: any): Promise<any> - added:
function readWasmFile(input: string): Promise<Buffer>
- added:
export * from './pure' - added:
function generateMeta(url: string, resolvedOptions: OgImageOptions): import('@unhead/schema').Meta<import('@unhead/schema').UserTagConfigWithoutInnerContent>[] - added:
function getOgImagePath(pagePath: string, _options?: Partial<OgImageOptions>): string - added:
function useOgImageRuntimeConfig(): OgImageRuntimeConfig
- removed:
index OgImageOptions[key: string]: any - removed:
interface PlaygroundClientFunctions - removed:
interface PlaygroundServerFunctions - removed:
interface RuntimeOgImageOptions extends OgImageOptions - removed:
method PlaygroundClientFunctions.refresh(type: string): void - removed:
method PlaygroundServerFunctions.getConfig(): ModuleOptions - removed:
method PlaygroundServerFunctions.openInEditor(filepath: string): void - removed:
property OgImageOptions.cache?: boolean - removed:
property OgImageOptions.cacheKey?: string - removed:
property OgImageOptions.cacheTtl?: number - removed:
property OgImageOptions.description?: string - removed:
property OgImageOptions.provider?: 'browser' | 'satori' - removed:
property OgImageOptions.static?: boolean - removed:
property OgImageOptions.title?: string - removed:
property Renderer.createPng: (options: RuntimeOgImageOptions) => Promise<Buffer> - removed:
property Renderer.createSvg: (options: RuntimeOgImageOptions) => Promise<string> - removed:
property Renderer.createVNode: (options: RuntimeOgImageOptions) => Promise<VNode> - removed:
property RuntimeOgImageOptions.path: string - removed:
property RuntimeOgImageOptions.requestOrigin: string - removed:
type OgImageScreenshotOptions = Omit<OgImageOptions, 'component'> - changed:
interface OgImageOptions extends Partial<ScreenshotOptions> → interface OgImageOptions<T extends keyof OgImageComponents = 'NuxtSeo'> - changed:
property FontConfig.weight: number → property FontConfig.weight?: string | number - changed:
property OgImageOptions.component?: string | null → property OgImageOptions.component?: T | string - changed:
property Renderer.name: 'browser' | 'satori' → property Renderer.name: 'chromium' | 'satori' - changed:
property SatoriTransformer.transform: (node: VNode, props: RuntimeOgImageOptions) => Promise<void> → property SatoriTransformer.transform: (node: VNode, e: OgImageRenderEventContext) => Promise<void> | void - changed:
type InputFontConfig = (`${string}:${number}` | FontConfig) → type InputFontConfig = (`${string}:${number}` | string | FontConfig) - added:
interface CompatibilityFlagEnvOverrides - added:
interface OgImageComponent - added:
interface OgImageRenderEventContext - added:
interface OgImageRuntimeConfig - added:
interface ResolvedFontConfig extends FontConfig - added:
interface RuntimeCompatibilitySchema - added:
interface SocialPreviewMetaData - added:
property CompatibilityFlagEnvOverrides.dev?: CompatibilityFlags - added:
property CompatibilityFlagEnvOverrides.prerender?: CompatibilityFlags - added:
property CompatibilityFlagEnvOverrides.runtime?: CompatibilityFlags - added:
property FontConfig.absolutePath?: boolean - added:
property FontConfig.key?: string - added:
property FontConfig.style?: string - added:
property OgImageComponent.category: 'app' | 'community' | 'pro' - added:
property OgImageComponent.credits?: string - added:
property OgImageComponent.hash: string - added:
property OgImageComponent.kebabName: string - added:
property OgImageComponent.pascalName: string - added:
property OgImageComponent.path?: string - added:
property OgImageOptions._query?: Record<string, any> - added:
property OgImageOptions.cacheMaxAgeSeconds?: number - added:
property OgImageOptions.emojis?: IconifyEmojiIconSets - added:
property OgImageOptions.extension?: 'png' | 'jpeg' | 'jpg' - added:
property OgImageOptions.fonts?: InputFontConfig[] - added:
property OgImageOptions.height?: number - added:
property OgImageOptions.props?: OgImageComponents[T] | Record<string, any> - added:
property OgImageOptions.renderer?: 'chromium' | 'satori' - added:
property OgImageOptions.resvg?: ResvgRenderOptions - added:
property OgImageOptions.satori?: SatoriOptions - added:
property OgImageOptions.screenshot?: Partial<ScreenshotOptions> - added:
property OgImageOptions.sharp?: SharpOptions - added:
property OgImageOptions.url?: string - added:
property OgImageOptions.width?: number - added:
property OgImageRenderEventContext._nitro: NitroApp - added:
property OgImageRenderEventContext.basePath: string - added:
property OgImageRenderEventContext.e: H3Event - added:
property OgImageRenderEventContext.extension: 'png' | 'jpeg' | 'jpg' | 'svg' | 'html' | 'json' - added:
property OgImageRenderEventContext.isDebugJsonPayload: boolean - added:
property OgImageRenderEventContext.key: string - added:
property OgImageRenderEventContext.options: OgImageOptions - added:
property OgImageRenderEventContext.publicStoragePath: string - added:
property OgImageRenderEventContext.renderer: Renderer - added:
property OgImageRuntimeConfig.baseCacheKey: string - added:
property OgImageRuntimeConfig.colorPreference: 'light' | 'dark' - added:
property OgImageRuntimeConfig.debug: boolean - added:
property OgImageRuntimeConfig.defaults: OgImageOptions - added:
property OgImageRuntimeConfig.fonts: FontConfig[] - added:
property OgImageRuntimeConfig.hasNuxtContent: boolean - added:
property OgImageRuntimeConfig.hasNuxtIcon: boolean - added:
property OgImageRuntimeConfig.isNuxtContentDocumentDriven: boolean - added:
property OgImageRuntimeConfig.publicStoragePath: string - added:
property OgImageRuntimeConfig.resvgOptions: ResvgRenderOptions - added:
property OgImageRuntimeConfig.satoriOptions: SatoriOptions - added:
property OgImageRuntimeConfig.sharpOptions: SharpOptions - added:
property OgImageRuntimeConfig.strictNuxtContentPaths: boolean - added:
property OgImageRuntimeConfig.version: string - added:
property OgImageRuntimeConfig.zeroRuntime: boolean - added:
property Renderer.createImage: (e: OgImageRenderEventContext) => Promise<H3Error | BufferSource | void> - added:
property Renderer.debug: (e: OgImageRenderEventContext) => Promise<Record<string, any>> - added:
property Renderer.supportedFormats: Partial<RendererOptions['extension']>[] - added:
property ResolvedFontConfig.cacheKey: string - added:
property ResolvedFontConfig.data?: BufferSource - added:
property RuntimeCompatibilitySchema.chromium: 'chrome-launcher' | 'on-demand' | 'playwright' | false - added:
property RuntimeCompatibilitySchema.resvg: 'node' | 'wasm' | 'wasm-fs' | false - added:
property RuntimeCompatibilitySchema.satori: 'node' | 'wasm' | 'wasm-fs' | false - added:
property RuntimeCompatibilitySchema.sharp: 'node' | false - added:
property RuntimeCompatibilitySchema.wasm?: NitroOptions['wasm'] - added:
property RuntimeCompatibilitySchema['css-inline']: 'node' | 'wasm' | 'wasm-fs' | false - added:
property SocialPreviewMetaData.og?: Record<string, string> - added:
property SocialPreviewMetaData.twitter?: Record<string, string> - added:
type CompatibilityFlags = Partial<Omit<RuntimeCompatibilitySchema, 'wasm'>> - added:
type DefineOgImageInput = OgImageOptions | OgImagePrebuilt | false - added:
type ExtractComponentProps<T extends Component> = T extends new (...args: any) => any ? Omit<InstanceType<T>['$props'], keyof ComponentCustomProps | keyof VNodeProps | keyof AllowedComponentProps> : never - added:
type IconifyEmojiIconSets = 'twemoji' | 'noto' | 'fluent-emoji' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'stre… - added:
type OgImagePageScreenshotOptions = Omit<OgImageOptions, 'html' | 'renderer' | 'component' | 'satori' | 'resvg' | 'sharp'> - added:
type OgImagePrebuilt = { url: string } & Pick<OgImageOptions, 'width' | 'height' | 'alt' | '_query'> - added:
type RendererOptions = Omit<OgImageOptions, 'extension'> & { extension: Omit<OgImageOptions['extension'], 'html'> }
- removed:
declare module 'nuxt/schema'
- added:
declare module '#og-image-cache' - added:
declare module '#og-image-virtual/component-names.mjs' - added:
declare module '#og-image-virtual/unocss-config.mjs' - added:
declare module '#og-image/bindings/chromium' - added:
declare module '#og-image/bindings/css-inline' - added:
declare module '#og-image/bindings/resvg' - added:
declare module '#og-image/bindings/satori' - added:
declare module '#og-image/bindings/sharp' - added:
declare module '#og-image/components' - added:
declare module '#og-image/renderers/chromium' - added:
declare module '#og-image/renderers/satori'