nuxt-og-image 5.1.13 → 6.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.mjs +2 -0
  3. package/dist/chunks/tw4-classes.cjs +116 -0
  4. package/dist/chunks/tw4-classes.mjs +113 -0
  5. package/dist/chunks/tw4-generator.cjs +118 -0
  6. package/dist/chunks/tw4-generator.mjs +110 -0
  7. package/dist/cli.cjs +333 -0
  8. package/dist/cli.d.cts +1 -0
  9. package/dist/cli.d.mts +1 -0
  10. package/dist/cli.d.ts +1 -0
  11. package/dist/cli.mjs +330 -0
  12. package/dist/client/200.html +1 -1
  13. package/dist/client/404.html +1 -1
  14. package/dist/client/_fonts/0xp3SbCWC1OhX7q1-uF6kilMZFm-alJNkUtkLTPCy_A-tN9KwPUWhhXvtqh74sU9FIkI4W6hsbm85r0X24hjOfM.woff2 +0 -0
  15. package/dist/client/_fonts/1ZTlEDqU4DtwDJiND8f6qaugUpa0RIDvQl-v7iM6l54-D6hedAgqRfOCLZzaShnyeAvlEnMzk4Wm7g9WDKWFHIc.woff +0 -0
  16. package/dist/client/_fonts/4HA9tc4y8BVQeLXvLn3JgQqilAj1xrAnUSprQGHIPSw-ZPswEL_UDOYaxTLQDUySPjoOHDxhD83pD19HMfKfK9s.woff2 +0 -0
  17. package/dist/client/_fonts/Bmul3LaKlc7BUKqJHE_UmEoF40Sg_2ga52yJjwyDcKs-TnYmYl1DNYkiWMu0Vx49DakCPBuiCCj9zoLIuQjUdKY.woff2 +0 -0
  18. package/dist/client/_fonts/DfgmjWGpWte3Q3a54Nevr_BYmMM5YEJXRI1CdI2VwO0-ox5RadQfCyVTmKl_hubTaIJjtRw9oaQz2GDBeZR6l1M.woff2 +0 -0
  19. package/dist/client/_fonts/Lc_5lWuBuZcZ166p1-s-mnGkMJwIYJE_QDCkws8iCkI-r45Qbm2hCykrfOZ0kowz__uTTTUOPDN9hz34QcRNTY4.woff2 +0 -0
  20. package/dist/client/_fonts/iEvApgDRmzKzNqOYocBTrmcHZmuGAJloawKDP1S0nyE-T3oc_9We24QGwfw5naik4cM0g7VxylWVaQwKm4dy3cw.woff2 +0 -0
  21. package/dist/client/_nuxt/0kYTU2a7.js +2 -0
  22. package/dist/client/_nuxt/B0QDx5EE.js +2 -0
  23. package/dist/client/_nuxt/BKqzYw6x.js +3 -0
  24. package/dist/client/_nuxt/C-Ivr2Rl.js +1 -0
  25. package/dist/client/_nuxt/CLgn8DCr.js +1 -0
  26. package/dist/client/_nuxt/CwWm-XE3.js +1 -0
  27. package/dist/client/_nuxt/D9eL2h5z.js +1 -0
  28. package/dist/client/_nuxt/DJXHIJSq.js +1 -0
  29. package/dist/client/_nuxt/DVnX3Z-O.js +1 -0
  30. package/dist/client/_nuxt/DXObZt09.js +184 -0
  31. package/dist/client/_nuxt/Dxi6QG7I.js +1 -0
  32. package/dist/client/_nuxt/E8AZ6HoH.js +1 -0
  33. package/dist/client/_nuxt/IFrameLoader.CGrV1TpP.css +1 -0
  34. package/dist/client/_nuxt/JAMwWy1K.js +3864 -0
  35. package/dist/client/_nuxt/OSectionBlock.BVHnMsIr.css +1 -0
  36. package/dist/client/_nuxt/PONEy9N-.js +1 -0
  37. package/dist/client/_nuxt/UdkqSAsD.js +1 -0
  38. package/dist/client/_nuxt/builds/latest.json +1 -1
  39. package/dist/client/_nuxt/builds/meta/5205806b-8e5a-41ea-90c0-9cd83a75fc0a.json +1 -0
  40. package/dist/client/_nuxt/entry.BEExJd9R.css +2 -0
  41. package/dist/client/_nuxt/error-404.B79WD2X-.css +1 -0
  42. package/dist/client/_nuxt/error-500.DT3Sd0Wu.css +1 -0
  43. package/dist/client/_nuxt/pages.eW3hi7XF.css +1 -0
  44. package/dist/client/_nuxt/templates.dUiUBaip.css +1 -0
  45. package/dist/client/_payload.json +1 -0
  46. package/dist/client/debug/_payload.json +1 -0
  47. package/dist/client/debug/index.html +1 -0
  48. package/dist/client/docs/_payload.json +1 -0
  49. package/dist/client/docs/index.html +1 -0
  50. package/dist/client/fonts/HubotSans-Regular.woff2 +0 -0
  51. package/dist/client/index.html +1 -1
  52. package/dist/client/templates/_payload.json +1 -0
  53. package/dist/client/templates/index.html +1 -0
  54. package/dist/module.cjs +36 -1027
  55. package/dist/module.d.cts +63 -25
  56. package/dist/module.d.mts +63 -25
  57. package/dist/module.d.ts +63 -25
  58. package/dist/module.json +1 -1
  59. package/dist/module.mjs +32 -1009
  60. package/dist/runtime/app/components/Templates/Community/Brutalist.satori.d.vue.ts +14 -0
  61. package/dist/runtime/app/components/Templates/Community/Brutalist.satori.vue +51 -0
  62. package/dist/runtime/app/components/Templates/Community/Brutalist.satori.vue.d.ts +14 -0
  63. package/dist/runtime/app/components/Templates/Community/{Frame.vue.d.ts → Frame.satori.d.vue.ts} +2 -2
  64. package/dist/runtime/app/components/Templates/Community/Frame.satori.vue +71 -0
  65. package/dist/runtime/app/components/Templates/Community/{Frame.d.vue.ts → Frame.satori.vue.d.ts} +2 -2
  66. package/dist/runtime/app/components/Templates/Community/Newspaper.satori.d.vue.ts +12 -0
  67. package/dist/runtime/app/components/Templates/Community/Newspaper.satori.vue +70 -0
  68. package/dist/runtime/app/components/Templates/Community/Newspaper.satori.vue.d.ts +12 -0
  69. package/dist/runtime/app/components/Templates/Community/Nuxt.satori.d.vue.ts +12 -0
  70. package/dist/runtime/app/components/Templates/Community/{Nuxt.vue → Nuxt.satori.vue} +3 -3
  71. package/dist/runtime/app/components/Templates/Community/Nuxt.satori.vue.d.ts +12 -0
  72. package/dist/runtime/app/components/Templates/Community/NuxtSeo.satori.d.vue.ts +12 -0
  73. package/dist/runtime/app/components/Templates/Community/NuxtSeo.satori.vue +69 -0
  74. package/dist/runtime/app/components/Templates/Community/NuxtSeo.satori.vue.d.ts +12 -0
  75. package/dist/runtime/app/components/Templates/Community/Pergel.satori.d.vue.ts +12 -0
  76. package/dist/runtime/app/components/Templates/Community/{Pergel.vue → Pergel.satori.vue} +14 -11
  77. package/dist/runtime/app/components/Templates/Community/Pergel.satori.vue.d.ts +12 -0
  78. package/dist/runtime/app/components/Templates/Community/Retro.satori.d.vue.ts +12 -0
  79. package/dist/runtime/app/components/Templates/Community/Retro.satori.vue +64 -0
  80. package/dist/runtime/app/components/Templates/Community/Retro.satori.vue.d.ts +12 -0
  81. package/dist/runtime/app/components/Templates/Community/SaaS.satori.d.vue.ts +12 -0
  82. package/dist/runtime/app/components/Templates/Community/SaaS.satori.vue +60 -0
  83. package/dist/runtime/app/components/Templates/Community/SaaS.satori.vue.d.ts +12 -0
  84. package/dist/runtime/app/components/Templates/Community/SimpleBlog.satori.d.vue.ts +9 -0
  85. package/dist/runtime/app/components/Templates/Community/SimpleBlog.satori.vue +38 -0
  86. package/dist/runtime/app/components/Templates/Community/SimpleBlog.satori.vue.d.ts +9 -0
  87. package/dist/runtime/app/components/Templates/Community/{UnJs.d.vue.ts → UnJs.satori.d.vue.ts} +2 -2
  88. package/dist/runtime/app/components/Templates/Community/{UnJs.vue → UnJs.satori.vue} +41 -33
  89. package/dist/runtime/app/components/Templates/Community/{UnJs.vue.d.ts → UnJs.satori.vue.d.ts} +2 -2
  90. package/dist/runtime/app/components/Templates/Community/WithEmoji.satori.d.vue.ts +13 -0
  91. package/dist/runtime/app/components/Templates/Community/WithEmoji.satori.vue +27 -0
  92. package/dist/runtime/app/components/Templates/Community/WithEmoji.satori.vue.d.ts +13 -0
  93. package/dist/runtime/app/composables/_defineOgImageRaw.d.ts +6 -0
  94. package/dist/runtime/app/composables/_defineOgImageRaw.js +70 -0
  95. package/dist/runtime/app/composables/defineOgImage.d.ts +14 -2
  96. package/dist/runtime/app/composables/defineOgImage.js +13 -42
  97. package/dist/runtime/app/composables/defineOgImageComponent.d.ts +5 -1
  98. package/dist/runtime/app/composables/defineOgImageComponent.js +4 -5
  99. package/dist/runtime/app/composables/defineOgImageScreenshot.d.ts +1 -1
  100. package/dist/runtime/app/composables/defineOgImageScreenshot.js +2 -2
  101. package/dist/runtime/app/composables/mock.d.ts +7 -4
  102. package/dist/runtime/app/composables/mock.js +4 -4
  103. package/dist/runtime/app/utils/plugins.js +22 -28
  104. package/dist/runtime/app/utils.d.ts +15 -1
  105. package/dist/runtime/app/utils.js +74 -46
  106. package/dist/runtime/pure.d.ts +7 -0
  107. package/dist/runtime/pure.js +105 -0
  108. package/dist/runtime/server/og-image/bindings/css-inline/wasm-fs.d.ts +3 -2
  109. package/dist/runtime/server/og-image/bindings/css-inline/wasm.d.ts +3 -2
  110. package/dist/runtime/server/og-image/bindings/font-assets/cloudflare.d.ts +3 -0
  111. package/dist/runtime/server/og-image/bindings/font-assets/cloudflare.js +22 -0
  112. package/dist/runtime/server/og-image/bindings/font-assets/dev-prerender.d.ts +3 -0
  113. package/dist/runtime/server/og-image/bindings/font-assets/dev-prerender.js +49 -0
  114. package/dist/runtime/server/og-image/bindings/font-assets/node.d.ts +3 -0
  115. package/dist/runtime/server/og-image/bindings/font-assets/node.js +14 -0
  116. package/dist/runtime/server/og-image/bindings/resvg/node-dev.d.ts +5 -0
  117. package/dist/runtime/server/og-image/bindings/resvg/node-dev.js +70 -0
  118. package/dist/runtime/server/og-image/bindings/takumi/node.d.ts +6 -0
  119. package/dist/runtime/server/og-image/bindings/takumi/node.js +5 -0
  120. package/dist/runtime/server/og-image/bindings/takumi/wasm.d.ts +6 -0
  121. package/dist/runtime/server/og-image/bindings/takumi/wasm.js +6 -0
  122. package/dist/runtime/server/og-image/cache/buildCache.d.ts +16 -0
  123. package/dist/runtime/server/og-image/cache/buildCache.js +48 -0
  124. package/dist/runtime/server/og-image/cache/lru.d.ts +2 -2
  125. package/dist/runtime/server/og-image/cache/lru.js +3 -3
  126. package/dist/runtime/server/og-image/cache/mock.d.ts +1 -2
  127. package/dist/runtime/server/og-image/cache/mock.js +0 -1
  128. package/dist/runtime/server/og-image/chromium/screenshot.js +4 -3
  129. package/dist/runtime/server/og-image/context.d.ts +2 -3
  130. package/dist/runtime/server/og-image/context.js +55 -193
  131. package/dist/runtime/server/og-image/devtools.d.ts +10 -0
  132. package/dist/runtime/server/og-image/devtools.js +74 -0
  133. package/dist/runtime/server/og-image/fonts.d.ts +6 -0
  134. package/dist/runtime/server/og-image/fonts.js +41 -0
  135. package/dist/runtime/server/og-image/instances.d.ts +1 -0
  136. package/dist/runtime/server/og-image/instances.js +5 -0
  137. package/dist/runtime/server/og-image/satori/instances.d.ts +1 -36
  138. package/dist/runtime/server/og-image/satori/plugins/emojis.js +83 -4
  139. package/dist/runtime/server/og-image/satori/plugins/encoding.js +11 -1
  140. package/dist/runtime/server/og-image/satori/plugins/imageSrc.js +5 -1
  141. package/dist/runtime/server/og-image/satori/plugins/twClasses.js +35 -0
  142. package/dist/runtime/server/og-image/satori/renderer.js +16 -53
  143. package/dist/runtime/server/og-image/satori/transforms/emojis/emoji-names-minimal.d.ts +1 -0
  144. package/dist/runtime/server/og-image/satori/transforms/emojis/emoji-names-minimal.js +223 -0
  145. package/dist/runtime/server/og-image/satori/transforms/emojis/emoji-utils.d.ts +45 -0
  146. package/dist/runtime/server/og-image/satori/transforms/emojis/emoji-utils.js +13 -0
  147. package/dist/runtime/server/og-image/satori/transforms/emojis/fetch.d.ts +6 -0
  148. package/dist/runtime/server/og-image/satori/transforms/emojis/fetch.js +38 -0
  149. package/dist/runtime/server/og-image/satori/transforms/emojis/index.d.ts +7 -0
  150. package/dist/runtime/server/og-image/satori/transforms/emojis/index.js +64 -0
  151. package/dist/runtime/server/og-image/satori/transforms/emojis/local.d.ts +7 -0
  152. package/dist/runtime/server/og-image/satori/transforms/emojis/local.js +32 -0
  153. package/dist/runtime/server/og-image/satori/utils.js +5 -4
  154. package/dist/runtime/server/og-image/satori/vnodes.js +7 -6
  155. package/dist/runtime/server/og-image/takumi/instances.d.ts +1 -0
  156. package/dist/runtime/server/og-image/takumi/instances.js +6 -0
  157. package/dist/runtime/server/og-image/takumi/nodes.d.ts +12 -0
  158. package/dist/runtime/server/og-image/takumi/nodes.js +86 -0
  159. package/dist/runtime/server/og-image/takumi/renderer.d.ts +3 -0
  160. package/dist/runtime/server/og-image/takumi/renderer.js +45 -0
  161. package/dist/runtime/server/og-image/templates/html.js +32 -23
  162. package/dist/runtime/server/plugins/prerender.d.ts +1 -1
  163. package/dist/runtime/server/plugins/prerender.js +17 -7
  164. package/dist/runtime/server/util/auto-eject.d.ts +2 -0
  165. package/dist/runtime/server/util/auto-eject.js +30 -0
  166. package/dist/runtime/server/util/eventHandlers.d.ts +0 -1
  167. package/dist/runtime/server/util/eventHandlers.js +15 -85
  168. package/dist/runtime/server/util/options.d.ts +7 -2
  169. package/dist/runtime/server/util/options.js +40 -6
  170. package/dist/runtime/server/utils.d.ts +6 -2
  171. package/dist/runtime/server/utils.js +12 -8
  172. package/dist/runtime/shared/urlEncoding.d.ts +64 -0
  173. package/dist/runtime/shared/urlEncoding.js +194 -0
  174. package/dist/runtime/shared.d.ts +4 -9
  175. package/dist/runtime/shared.js +31 -50
  176. package/dist/runtime/types.d.ts +71 -25
  177. package/dist/shared/nuxt-og-image.DroaQ3v-.cjs +2852 -0
  178. package/dist/shared/nuxt-og-image.HMyihp-D.mjs +2825 -0
  179. package/dist/types.d.mts +2 -0
  180. package/package.json +105 -43
  181. package/types/virtual.d.ts +7 -1
  182. package/dist/client/_nuxt/B3LgXoKV.js +0 -2
  183. package/dist/client/_nuxt/B8PEiB0p.js +0 -1
  184. package/dist/client/_nuxt/CPsbVDfV.js +0 -1
  185. package/dist/client/_nuxt/CVO1_9PV.js +0 -1
  186. package/dist/client/_nuxt/CjQm5wk3.js +0 -4029
  187. package/dist/client/_nuxt/Cp-IABpG.js +0 -1
  188. package/dist/client/_nuxt/D0TMZt8T.js +0 -1
  189. package/dist/client/_nuxt/D0r3Knsf.js +0 -1
  190. package/dist/client/_nuxt/builds/meta/eb2c0390-3125-4af7-b189-e76a7dfe3017.json +0 -1
  191. package/dist/client/_nuxt/entry.cdy4VsCK.css +0 -1
  192. package/dist/client/_nuxt/error-404.Cu4JbXd7.css +0 -1
  193. package/dist/client/_nuxt/error-500.B79uceR7.css +0 -1
  194. package/dist/runtime/app/components/OgImage/OgImage.d.ts +0 -3
  195. package/dist/runtime/app/components/OgImage/OgImage.js +0 -10
  196. package/dist/runtime/app/components/Templates/Community/BrandedLogo.d.vue.ts +0 -13
  197. package/dist/runtime/app/components/Templates/Community/BrandedLogo.vue +0 -22
  198. package/dist/runtime/app/components/Templates/Community/BrandedLogo.vue.d.ts +0 -13
  199. package/dist/runtime/app/components/Templates/Community/Frame.vue +0 -58
  200. package/dist/runtime/app/components/Templates/Community/Nuxt.d.vue.ts +0 -12
  201. package/dist/runtime/app/components/Templates/Community/Nuxt.vue.d.ts +0 -12
  202. package/dist/runtime/app/components/Templates/Community/NuxtSeo.d.vue.ts +0 -15
  203. package/dist/runtime/app/components/Templates/Community/NuxtSeo.vue +0 -103
  204. package/dist/runtime/app/components/Templates/Community/NuxtSeo.vue.d.ts +0 -15
  205. package/dist/runtime/app/components/Templates/Community/Pergel.d.vue.ts +0 -12
  206. package/dist/runtime/app/components/Templates/Community/Pergel.vue.d.ts +0 -12
  207. package/dist/runtime/app/components/Templates/Community/SimpleBlog.d.vue.ts +0 -9
  208. package/dist/runtime/app/components/Templates/Community/SimpleBlog.vue +0 -27
  209. package/dist/runtime/app/components/Templates/Community/SimpleBlog.vue.d.ts +0 -9
  210. package/dist/runtime/app/components/Templates/Community/Wave.d.vue.ts +0 -11
  211. package/dist/runtime/app/components/Templates/Community/Wave.vue +0 -28
  212. package/dist/runtime/app/components/Templates/Community/Wave.vue.d.ts +0 -11
  213. package/dist/runtime/app/components/Templates/Community/WithEmoji.d.vue.ts +0 -13
  214. package/dist/runtime/app/components/Templates/Community/WithEmoji.vue +0 -21
  215. package/dist/runtime/app/components/Templates/Community/WithEmoji.vue.d.ts +0 -13
  216. package/dist/runtime/assets/Inter-normal-400.ttf.base64 +0 -1
  217. package/dist/runtime/assets/Inter-normal-700.ttf.base64 +0 -1
  218. package/dist/runtime/server/og-image/satori/font.d.ts +0 -3
  219. package/dist/runtime/server/og-image/satori/font.js +0 -40
  220. package/dist/runtime/server/og-image/satori/plugins/unocss.js +0 -55
  221. package/dist/runtime/server/og-image/satori/transforms/emojis.d.ts +0 -3
  222. package/dist/runtime/server/og-image/satori/transforms/emojis.js +0 -3595
  223. package/dist/runtime/server/plugins/__zero-runtime/nuxt-content-v2.d.ts +0 -2
  224. package/dist/runtime/server/plugins/__zero-runtime/nuxt-content-v2.js +0 -9
  225. package/dist/runtime/server/plugins/nuxt-content-v2.d.ts +0 -2
  226. package/dist/runtime/server/plugins/nuxt-content-v2.js +0 -5
  227. package/dist/runtime/server/routes/__zero-runtime/font.d.ts +0 -2
  228. package/dist/runtime/server/routes/__zero-runtime/font.js +0 -8
  229. package/dist/runtime/server/routes/font.d.ts +0 -2
  230. package/dist/runtime/server/routes/font.js +0 -3
  231. package/dist/runtime/server/util/plugins.d.ts +0 -2
  232. package/dist/runtime/server/util/plugins.js +0 -56
  233. /package/dist/runtime/server/og-image/satori/plugins/{unocss.d.ts → twClasses.d.ts} +0 -0
package/dist/module.d.cts CHANGED
@@ -3,7 +3,8 @@ import { AddComponentOptions } from '@nuxt/kit';
3
3
  import { ResvgRenderOptions } from '@resvg/resvg-js';
4
4
  import { SatoriOptions } from 'satori';
5
5
  import { SharpOptions } from 'sharp';
6
- import { OgImageOptions, InputFontConfig, CompatibilityFlagEnvOverrides, OgImageComponent } from '../dist/runtime/types.js';
6
+ import { OgImageComponent, OgImageOptions, CompatibilityFlagEnvOverrides } from '../dist/runtime/types.js';
7
+ export { OgImageComponent, OgImageOptions, OgImageRenderEventContext, OgImageRuntimeConfig, RuntimeCompatibilitySchema, VNode } from '../dist/runtime/types.js';
7
8
 
8
9
  interface ModuleOptions {
9
10
  /**
@@ -20,12 +21,6 @@ interface ModuleOptions {
20
21
  * @default { component: 'NuxtSeo', width: 1200, height: 630, cache: true, cacheTtl: 24 * 60 * 60 * 1000 }
21
22
  */
22
23
  defaults: OgImageOptions;
23
- /**
24
- * Fonts to use when rendering the og:image.
25
- *
26
- * @example ['Roboto:400', 'Roboto:700', { path: 'path/to/font.ttf', weight: 400, name: 'MyFont' }]
27
- */
28
- fonts: InputFontConfig[];
29
24
  /**
30
25
  * Options to pass to satori.
31
26
  *
@@ -55,19 +50,32 @@ interface ModuleOptions {
55
50
  */
56
51
  componentOptions?: Pick<AddComponentOptions, 'global'>;
57
52
  /**
58
- * Modify the cache behavior.
59
- *
60
- * Passing a boolean will enable or disable the runtime cache with the default options.
61
- *
62
- * Providing a record will allow you to configure the runtime cache fully.
53
+ * Configure the runtime cache storage for generated OG images.
54
+ * - `true` - Use Nitro's default cache storage (default)
55
+ * - `false` - Disable caching
56
+ * - `string` - Use a custom storage mount key (e.g., `'redis'`). You must mount the storage yourself via a Nitro plugin.
57
+ * - `object` - Provide a driver config that the module will mount for you (build-time only)
63
58
  *
64
59
  * @default true
65
60
  * @see https://nitro.unjs.io/guide/storage#mountpoints
66
- * @example { driver: 'redis', host: 'localhost', port: 6379, password: 'password' }
61
+ * @example runtimeCacheStorage: 'redis' // Use your own mounted 'redis' storage
62
+ * @example runtimeCacheStorage: { driver: 'redis', host: 'localhost', port: 6379 }
67
63
  */
68
- runtimeCacheStorage: boolean | (Record<string, any> & {
64
+ runtimeCacheStorage: boolean | string | (Record<string, any> & {
69
65
  driver: string;
70
66
  });
67
+ /**
68
+ * Custom version string for cache key namespacing.
69
+ *
70
+ * By default, the module version is used which invalidates cache on upgrades.
71
+ * Set a static value like `'v1'` to persist cache across module updates.
72
+ * Set to `false` to disable versioning entirely.
73
+ *
74
+ * @default module version
75
+ * @example cacheVersion: 'v1'
76
+ * @example cacheVersion: false
77
+ */
78
+ cacheVersion?: string | false;
71
79
  /**
72
80
  * Extra component directories that should be used to resolve components.
73
81
  *
@@ -79,25 +87,55 @@ interface ModuleOptions {
79
87
  */
80
88
  compatibility?: CompatibilityFlagEnvOverrides;
81
89
  /**
82
- * Use an alternative host for downloading Google Fonts.
90
+ * Only allow the prerendering and dev runtimes to generate images.
91
+ */
92
+ zeroRuntime?: boolean;
93
+ /**
94
+ * Enable persistent build cache for CI environments.
95
+ * Caches rendered images to disk so they persist between CI runs.
83
96
  *
84
- * Provide a custom mirror host (e.g., your own proxy server).
85
- * Note: The mirror must serve TTF fonts for Satori compatibility.
86
- * For China users, consider using local font files via the `path` option instead.
97
+ * @default false
98
+ * @example true
99
+ * @example { base: '.cache/og-image' }
87
100
  */
88
- googleFontMirror?: string;
101
+ buildCache?: boolean | {
102
+ base?: string;
103
+ };
89
104
  /**
90
- * Only allow the prerendering and dev runtimes to generate images.
105
+ * Warn about OG Image components missing renderer suffix in dev mode.
106
+ * Set to false to suppress warnings for legacy/test components.
107
+ *
108
+ * @default true
91
109
  */
92
- zeroRuntime?: boolean;
110
+ warnMissingSuffix?: boolean;
111
+ /**
112
+ * Strategy for resolving emoji icons.
113
+ *
114
+ * - 'auto': Automatically choose based on available dependencies (default)
115
+ * - 'local': Use local @iconify-json dependencies only
116
+ * - 'fetch': Use Iconify API to fetch emojis
117
+ *
118
+ * @default 'auto'
119
+ */
120
+ emojiStrategy?: 'auto' | 'local' | 'fetch';
121
+ /**
122
+ * Include query parameters in cache keys.
123
+ *
124
+ * When enabled, requests like `/page?foo=bar` will have a separate cache from `/page`.
125
+ * Enable this if your OG image content depends on query params.
126
+ *
127
+ * @default false
128
+ */
129
+ cacheQueryParams?: boolean;
93
130
  /**
94
- * Enable when your nuxt/content files match your pages.
131
+ * Path to your Tailwind CSS 4 entry file for OG image styling.
95
132
  *
96
- * This will automatically map the `ogImage` frontmatter key to the correct path.
133
+ * Use this when using Tailwind 4 with the Vite plugin instead of @nuxtjs/tailwindcss.
134
+ * The CSS file should include `@import "tailwindcss"` and any `@theme` customizations.
97
135
  *
98
- * This is similar behavior to using `nuxt/content` with `documentDriven: true`.
136
+ * @example '~/assets/css/main.css'
99
137
  */
100
- strictNuxtContentPaths?: boolean;
138
+ tailwindCss?: string;
101
139
  }
102
140
  interface ModuleHooks {
103
141
  'nuxt-og-image:components': (ctx: {
package/dist/module.d.mts CHANGED
@@ -3,7 +3,8 @@ import { AddComponentOptions } from '@nuxt/kit';
3
3
  import { ResvgRenderOptions } from '@resvg/resvg-js';
4
4
  import { SatoriOptions } from 'satori';
5
5
  import { SharpOptions } from 'sharp';
6
- import { OgImageOptions, InputFontConfig, CompatibilityFlagEnvOverrides, OgImageComponent } from '../dist/runtime/types.js';
6
+ import { OgImageComponent, OgImageOptions, CompatibilityFlagEnvOverrides } from '../dist/runtime/types.js';
7
+ export { OgImageComponent, OgImageOptions, OgImageRenderEventContext, OgImageRuntimeConfig, RuntimeCompatibilitySchema, VNode } from '../dist/runtime/types.js';
7
8
 
8
9
  interface ModuleOptions {
9
10
  /**
@@ -20,12 +21,6 @@ interface ModuleOptions {
20
21
  * @default { component: 'NuxtSeo', width: 1200, height: 630, cache: true, cacheTtl: 24 * 60 * 60 * 1000 }
21
22
  */
22
23
  defaults: OgImageOptions;
23
- /**
24
- * Fonts to use when rendering the og:image.
25
- *
26
- * @example ['Roboto:400', 'Roboto:700', { path: 'path/to/font.ttf', weight: 400, name: 'MyFont' }]
27
- */
28
- fonts: InputFontConfig[];
29
24
  /**
30
25
  * Options to pass to satori.
31
26
  *
@@ -55,19 +50,32 @@ interface ModuleOptions {
55
50
  */
56
51
  componentOptions?: Pick<AddComponentOptions, 'global'>;
57
52
  /**
58
- * Modify the cache behavior.
59
- *
60
- * Passing a boolean will enable or disable the runtime cache with the default options.
61
- *
62
- * Providing a record will allow you to configure the runtime cache fully.
53
+ * Configure the runtime cache storage for generated OG images.
54
+ * - `true` - Use Nitro's default cache storage (default)
55
+ * - `false` - Disable caching
56
+ * - `string` - Use a custom storage mount key (e.g., `'redis'`). You must mount the storage yourself via a Nitro plugin.
57
+ * - `object` - Provide a driver config that the module will mount for you (build-time only)
63
58
  *
64
59
  * @default true
65
60
  * @see https://nitro.unjs.io/guide/storage#mountpoints
66
- * @example { driver: 'redis', host: 'localhost', port: 6379, password: 'password' }
61
+ * @example runtimeCacheStorage: 'redis' // Use your own mounted 'redis' storage
62
+ * @example runtimeCacheStorage: { driver: 'redis', host: 'localhost', port: 6379 }
67
63
  */
68
- runtimeCacheStorage: boolean | (Record<string, any> & {
64
+ runtimeCacheStorage: boolean | string | (Record<string, any> & {
69
65
  driver: string;
70
66
  });
67
+ /**
68
+ * Custom version string for cache key namespacing.
69
+ *
70
+ * By default, the module version is used which invalidates cache on upgrades.
71
+ * Set a static value like `'v1'` to persist cache across module updates.
72
+ * Set to `false` to disable versioning entirely.
73
+ *
74
+ * @default module version
75
+ * @example cacheVersion: 'v1'
76
+ * @example cacheVersion: false
77
+ */
78
+ cacheVersion?: string | false;
71
79
  /**
72
80
  * Extra component directories that should be used to resolve components.
73
81
  *
@@ -79,25 +87,55 @@ interface ModuleOptions {
79
87
  */
80
88
  compatibility?: CompatibilityFlagEnvOverrides;
81
89
  /**
82
- * Use an alternative host for downloading Google Fonts.
90
+ * Only allow the prerendering and dev runtimes to generate images.
91
+ */
92
+ zeroRuntime?: boolean;
93
+ /**
94
+ * Enable persistent build cache for CI environments.
95
+ * Caches rendered images to disk so they persist between CI runs.
83
96
  *
84
- * Provide a custom mirror host (e.g., your own proxy server).
85
- * Note: The mirror must serve TTF fonts for Satori compatibility.
86
- * For China users, consider using local font files via the `path` option instead.
97
+ * @default false
98
+ * @example true
99
+ * @example { base: '.cache/og-image' }
87
100
  */
88
- googleFontMirror?: string;
101
+ buildCache?: boolean | {
102
+ base?: string;
103
+ };
89
104
  /**
90
- * Only allow the prerendering and dev runtimes to generate images.
105
+ * Warn about OG Image components missing renderer suffix in dev mode.
106
+ * Set to false to suppress warnings for legacy/test components.
107
+ *
108
+ * @default true
91
109
  */
92
- zeroRuntime?: boolean;
110
+ warnMissingSuffix?: boolean;
111
+ /**
112
+ * Strategy for resolving emoji icons.
113
+ *
114
+ * - 'auto': Automatically choose based on available dependencies (default)
115
+ * - 'local': Use local @iconify-json dependencies only
116
+ * - 'fetch': Use Iconify API to fetch emojis
117
+ *
118
+ * @default 'auto'
119
+ */
120
+ emojiStrategy?: 'auto' | 'local' | 'fetch';
121
+ /**
122
+ * Include query parameters in cache keys.
123
+ *
124
+ * When enabled, requests like `/page?foo=bar` will have a separate cache from `/page`.
125
+ * Enable this if your OG image content depends on query params.
126
+ *
127
+ * @default false
128
+ */
129
+ cacheQueryParams?: boolean;
93
130
  /**
94
- * Enable when your nuxt/content files match your pages.
131
+ * Path to your Tailwind CSS 4 entry file for OG image styling.
95
132
  *
96
- * This will automatically map the `ogImage` frontmatter key to the correct path.
133
+ * Use this when using Tailwind 4 with the Vite plugin instead of @nuxtjs/tailwindcss.
134
+ * The CSS file should include `@import "tailwindcss"` and any `@theme` customizations.
97
135
  *
98
- * This is similar behavior to using `nuxt/content` with `documentDriven: true`.
136
+ * @example '~/assets/css/main.css'
99
137
  */
100
- strictNuxtContentPaths?: boolean;
138
+ tailwindCss?: string;
101
139
  }
102
140
  interface ModuleHooks {
103
141
  'nuxt-og-image:components': (ctx: {
package/dist/module.d.ts CHANGED
@@ -3,7 +3,8 @@ import { AddComponentOptions } from '@nuxt/kit';
3
3
  import { ResvgRenderOptions } from '@resvg/resvg-js';
4
4
  import { SatoriOptions } from 'satori';
5
5
  import { SharpOptions } from 'sharp';
6
- import { OgImageOptions, InputFontConfig, CompatibilityFlagEnvOverrides, OgImageComponent } from '../dist/runtime/types.js';
6
+ import { OgImageComponent, OgImageOptions, CompatibilityFlagEnvOverrides } from '../dist/runtime/types.js';
7
+ export { OgImageComponent, OgImageOptions, OgImageRenderEventContext, OgImageRuntimeConfig, RuntimeCompatibilitySchema, VNode } from '../dist/runtime/types.js';
7
8
 
8
9
  interface ModuleOptions {
9
10
  /**
@@ -20,12 +21,6 @@ interface ModuleOptions {
20
21
  * @default { component: 'NuxtSeo', width: 1200, height: 630, cache: true, cacheTtl: 24 * 60 * 60 * 1000 }
21
22
  */
22
23
  defaults: OgImageOptions;
23
- /**
24
- * Fonts to use when rendering the og:image.
25
- *
26
- * @example ['Roboto:400', 'Roboto:700', { path: 'path/to/font.ttf', weight: 400, name: 'MyFont' }]
27
- */
28
- fonts: InputFontConfig[];
29
24
  /**
30
25
  * Options to pass to satori.
31
26
  *
@@ -55,19 +50,32 @@ interface ModuleOptions {
55
50
  */
56
51
  componentOptions?: Pick<AddComponentOptions, 'global'>;
57
52
  /**
58
- * Modify the cache behavior.
59
- *
60
- * Passing a boolean will enable or disable the runtime cache with the default options.
61
- *
62
- * Providing a record will allow you to configure the runtime cache fully.
53
+ * Configure the runtime cache storage for generated OG images.
54
+ * - `true` - Use Nitro's default cache storage (default)
55
+ * - `false` - Disable caching
56
+ * - `string` - Use a custom storage mount key (e.g., `'redis'`). You must mount the storage yourself via a Nitro plugin.
57
+ * - `object` - Provide a driver config that the module will mount for you (build-time only)
63
58
  *
64
59
  * @default true
65
60
  * @see https://nitro.unjs.io/guide/storage#mountpoints
66
- * @example { driver: 'redis', host: 'localhost', port: 6379, password: 'password' }
61
+ * @example runtimeCacheStorage: 'redis' // Use your own mounted 'redis' storage
62
+ * @example runtimeCacheStorage: { driver: 'redis', host: 'localhost', port: 6379 }
67
63
  */
68
- runtimeCacheStorage: boolean | (Record<string, any> & {
64
+ runtimeCacheStorage: boolean | string | (Record<string, any> & {
69
65
  driver: string;
70
66
  });
67
+ /**
68
+ * Custom version string for cache key namespacing.
69
+ *
70
+ * By default, the module version is used which invalidates cache on upgrades.
71
+ * Set a static value like `'v1'` to persist cache across module updates.
72
+ * Set to `false` to disable versioning entirely.
73
+ *
74
+ * @default module version
75
+ * @example cacheVersion: 'v1'
76
+ * @example cacheVersion: false
77
+ */
78
+ cacheVersion?: string | false;
71
79
  /**
72
80
  * Extra component directories that should be used to resolve components.
73
81
  *
@@ -79,25 +87,55 @@ interface ModuleOptions {
79
87
  */
80
88
  compatibility?: CompatibilityFlagEnvOverrides;
81
89
  /**
82
- * Use an alternative host for downloading Google Fonts.
90
+ * Only allow the prerendering and dev runtimes to generate images.
91
+ */
92
+ zeroRuntime?: boolean;
93
+ /**
94
+ * Enable persistent build cache for CI environments.
95
+ * Caches rendered images to disk so they persist between CI runs.
83
96
  *
84
- * Provide a custom mirror host (e.g., your own proxy server).
85
- * Note: The mirror must serve TTF fonts for Satori compatibility.
86
- * For China users, consider using local font files via the `path` option instead.
97
+ * @default false
98
+ * @example true
99
+ * @example { base: '.cache/og-image' }
87
100
  */
88
- googleFontMirror?: string;
101
+ buildCache?: boolean | {
102
+ base?: string;
103
+ };
89
104
  /**
90
- * Only allow the prerendering and dev runtimes to generate images.
105
+ * Warn about OG Image components missing renderer suffix in dev mode.
106
+ * Set to false to suppress warnings for legacy/test components.
107
+ *
108
+ * @default true
91
109
  */
92
- zeroRuntime?: boolean;
110
+ warnMissingSuffix?: boolean;
111
+ /**
112
+ * Strategy for resolving emoji icons.
113
+ *
114
+ * - 'auto': Automatically choose based on available dependencies (default)
115
+ * - 'local': Use local @iconify-json dependencies only
116
+ * - 'fetch': Use Iconify API to fetch emojis
117
+ *
118
+ * @default 'auto'
119
+ */
120
+ emojiStrategy?: 'auto' | 'local' | 'fetch';
121
+ /**
122
+ * Include query parameters in cache keys.
123
+ *
124
+ * When enabled, requests like `/page?foo=bar` will have a separate cache from `/page`.
125
+ * Enable this if your OG image content depends on query params.
126
+ *
127
+ * @default false
128
+ */
129
+ cacheQueryParams?: boolean;
93
130
  /**
94
- * Enable when your nuxt/content files match your pages.
131
+ * Path to your Tailwind CSS 4 entry file for OG image styling.
95
132
  *
96
- * This will automatically map the `ogImage` frontmatter key to the correct path.
133
+ * Use this when using Tailwind 4 with the Vite plugin instead of @nuxtjs/tailwindcss.
134
+ * The CSS file should include `@import "tailwindcss"` and any `@theme` customizations.
97
135
  *
98
- * This is similar behavior to using `nuxt/content` with `documentDriven: true`.
136
+ * @example '~/assets/css/main.css'
99
137
  */
100
- strictNuxtContentPaths?: boolean;
138
+ tailwindCss?: string;
101
139
  }
102
140
  interface ModuleHooks {
103
141
  'nuxt-og-image:components': (ctx: {
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "nuxt": ">=3.16.0"
5
5
  },
6
6
  "configKey": "ogImage",
7
- "version": "5.1.13",
7
+ "version": "6.0.0-beta.1",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"