nuxt-og-image 4.0.1 → 4.0.3

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 (390) hide show
  1. package/dist/client/200.html +220 -216
  2. package/dist/client/404.html +220 -216
  3. package/dist/client/_nuxt/3kbuJQcV.js +1 -0
  4. package/dist/client/_nuxt/3xVqZejG.js +1 -0
  5. package/dist/client/_nuxt/{CrOfvjVs.js → 5LuOXUq_.js} +1 -1
  6. package/dist/client/_nuxt/727ZlQH0.js +1 -0
  7. package/dist/client/_nuxt/7O62HKoU.js +1 -0
  8. package/dist/client/_nuxt/9C6ErRqt.js +1 -0
  9. package/dist/client/_nuxt/B-DoSBHF.js +1 -0
  10. package/dist/client/_nuxt/B-k3dvlD.js +1 -0
  11. package/dist/client/_nuxt/B0XVJmRM.js +1 -0
  12. package/dist/client/_nuxt/B14Poo8t.js +1 -0
  13. package/dist/client/_nuxt/B1SYOhNW.js +1 -0
  14. package/dist/client/_nuxt/B1bQXN8T.js +1 -0
  15. package/dist/client/_nuxt/B3ZDOciz.js +1 -0
  16. package/dist/client/_nuxt/B430Bg39.js +1 -0
  17. package/dist/client/_nuxt/B48N-Iqd.js +1 -0
  18. package/dist/client/_nuxt/B5auBHZD.js +1 -0
  19. package/dist/client/_nuxt/B5lbUyaz.js +1 -0
  20. package/dist/client/_nuxt/B6W0miNI.js +1 -0
  21. package/dist/client/_nuxt/B7mTdjB0.js +1 -0
  22. package/dist/client/_nuxt/B9wLZaAG.js +1 -0
  23. package/dist/client/_nuxt/BAng5TT0.js +1 -0
  24. package/dist/client/_nuxt/{BzaEo2Du.js → BC5c_5Pe.js} +1 -1
  25. package/dist/client/_nuxt/BE9QQhgF.js +1 -0
  26. package/dist/client/_nuxt/BEhvmC7f.js +1 -0
  27. package/dist/client/_nuxt/{CbgzOxfU.js → BEqZJfBF.js} +1 -1
  28. package/dist/client/_nuxt/{C8pgRvQH.js → BFOHcciG.js} +1 -1
  29. package/dist/client/_nuxt/BHOwM8T6.js +1 -0
  30. package/dist/client/_nuxt/BIEUsx6d.js +1 -0
  31. package/dist/client/_nuxt/BILxekzW.js +1 -0
  32. package/dist/client/_nuxt/BJ4Li9vH.js +1 -0
  33. package/dist/client/_nuxt/BJGe-b2p.js +1 -0
  34. package/dist/client/_nuxt/BLDCaNbg.js +1 -0
  35. package/dist/client/_nuxt/BLhTXw86.js +1 -0
  36. package/dist/client/_nuxt/{C0hdQUNN.js → BMR_PYu6.js} +1 -1
  37. package/dist/client/_nuxt/{dwbxrGt_.js → BMYPR7BL.js} +1 -1
  38. package/dist/client/_nuxt/BMj5Y0dO.js +1 -0
  39. package/dist/client/_nuxt/{BTbGKmhu.js → BNHBcdi1.js} +1 -1
  40. package/dist/client/_nuxt/BNioltXt.js +1 -0
  41. package/dist/client/_nuxt/BPT9niGB.js +1 -0
  42. package/dist/client/_nuxt/BPhBrDlE.js +1 -0
  43. package/dist/client/_nuxt/{DWmkr0yC.js → BQoSv7ci.js} +1 -1
  44. package/dist/client/_nuxt/BQwtg7Y-.js +1 -0
  45. package/dist/client/_nuxt/BUEGK8hf.js +1 -0
  46. package/dist/client/_nuxt/BVUVsWT6.js +1 -0
  47. package/dist/client/_nuxt/BVr_1_27.js +1 -0
  48. package/dist/client/_nuxt/{D44NvAEk.js → BVz_zdnA.js} +1 -1
  49. package/dist/client/_nuxt/{CMz7PuSU.js → BX77sIaO.js} +1 -1
  50. package/dist/client/_nuxt/BXW1EomU.js +1 -0
  51. package/dist/client/_nuxt/BY-TUvya.js +1 -0
  52. package/dist/client/_nuxt/B_49xXYf.js +1 -0
  53. package/dist/client/_nuxt/BbSNqyBO.js +1 -0
  54. package/dist/client/_nuxt/BdxkyMLR.js +1 -0
  55. package/dist/client/_nuxt/Be6lgOlo.js +1 -0
  56. package/dist/client/_nuxt/BeQkCIfX.js +1 -0
  57. package/dist/client/_nuxt/BfCpw3nA.js +1 -0
  58. package/dist/client/_nuxt/{CpRrwcwt.js → BfivnA6A.js} +1 -1
  59. package/dist/client/_nuxt/Bg-kzb6g.js +1 -0
  60. package/dist/client/_nuxt/BgYniUM_.js +1 -0
  61. package/dist/client/_nuxt/{i5HCB2tm.js → BiFfXF7O.js} +1 -1
  62. package/dist/client/_nuxt/Bid6LQhH.js +1 -0
  63. package/dist/client/_nuxt/BjQB5zDj.js +1 -0
  64. package/dist/client/_nuxt/{D-RymO5g.js → BknIz3MU.js} +1 -1
  65. package/dist/client/_nuxt/{eACALr6E.js → Bl1h29GH.js} +1 -1
  66. package/dist/client/_nuxt/{CKfqYE_r.js → BlxRB_8X.js} +1 -1
  67. package/dist/client/_nuxt/BoXegm-a.js +1 -0
  68. package/dist/client/_nuxt/BpWG_bgh.js +1 -0
  69. package/dist/client/_nuxt/BsOYHjMa.js +1 -0
  70. package/dist/client/_nuxt/Bu5BbsvL.js +1 -0
  71. package/dist/client/_nuxt/Bu73EIfS.js +1 -0
  72. package/dist/client/_nuxt/{DNDvMORL.js → Bvotw-X0.js} +1 -1
  73. package/dist/client/_nuxt/Bw0wYZmb.js +1 -0
  74. package/dist/client/_nuxt/{DDUKAZWS.js → BwXTMy5W.js} +1 -1
  75. package/dist/client/_nuxt/C-_Zqo7-.js +3834 -0
  76. package/dist/client/_nuxt/C-nORZOA.js +1 -0
  77. package/dist/client/_nuxt/C-wny61x.js +1 -0
  78. package/dist/client/_nuxt/C0nbwVuJ.js +1 -0
  79. package/dist/client/_nuxt/C1XDQQGZ.js +1 -0
  80. package/dist/client/_nuxt/C1tVc3UG.js +1 -0
  81. package/dist/client/_nuxt/{DymQr0nX.js → C1w2a3ep.js} +1 -1
  82. package/dist/client/_nuxt/C30yJ1fx.js +1 -0
  83. package/dist/client/_nuxt/C39BiMTA.js +1 -0
  84. package/dist/client/_nuxt/C3FkfJm5.js +1 -0
  85. package/dist/client/_nuxt/C3mMm8J8.js +1 -0
  86. package/dist/client/_nuxt/C3t2pwGQ.js +1 -0
  87. package/dist/client/_nuxt/C5Y8tDhP.js +1 -0
  88. package/dist/client/_nuxt/C5wWYbrZ.js +1 -0
  89. package/dist/client/_nuxt/{sH2JAGjN.js → C6j12Q_x.js} +1 -1
  90. package/dist/client/_nuxt/C7L56vO4.js +1 -0
  91. package/dist/client/_nuxt/C7gG9l05.js +1 -0
  92. package/dist/client/_nuxt/CAQ2eGtk.js +1 -0
  93. package/dist/client/_nuxt/{CSoQzgif.js → CB0Krxn9.js} +1 -1
  94. package/dist/client/_nuxt/{Dwo6uFCY.js → CB2ApiWb.js} +1 -1
  95. package/dist/client/_nuxt/{B6E6ObS_.js → CG55hV0U.js} +2 -2
  96. package/dist/client/_nuxt/{CyEc264g.js → CGVVOGHx.js} +1 -1
  97. package/dist/client/_nuxt/CJaU5se_.js +1 -0
  98. package/dist/client/_nuxt/CKg9tqCS.js +1 -0
  99. package/dist/client/_nuxt/{CmWLV2bY.js → CM8KxXT1.js} +1 -1
  100. package/dist/client/_nuxt/CMt9yHYq.js +1 -0
  101. package/dist/client/_nuxt/COJ4H7py.js +1 -0
  102. package/dist/client/_nuxt/COK4E0Yg.js +1 -0
  103. package/dist/client/_nuxt/COcR7UxN.js +1 -0
  104. package/dist/client/_nuxt/{CbUnruJU.js → COyJrUc7.js} +1 -1
  105. package/dist/client/_nuxt/CQ0soPOq.js +1 -0
  106. package/dist/client/_nuxt/CSHBycmS.js +1 -0
  107. package/dist/client/_nuxt/CSp6iqVD.js +1 -0
  108. package/dist/client/_nuxt/CUnW07Te.js +1 -0
  109. package/dist/client/_nuxt/{CIiI48o2.js → CVw76BM1.js} +1 -1
  110. package/dist/client/_nuxt/CYFUjXW1.js +1 -0
  111. package/dist/client/_nuxt/CZe0XNBd.js +1 -0
  112. package/dist/client/_nuxt/Cc5clBb7.js +1 -0
  113. package/dist/client/_nuxt/CcHjYXgz.js +1 -0
  114. package/dist/client/_nuxt/{Bv-mwDEg.js → CdO5JTpU.js} +1 -1
  115. package/dist/client/_nuxt/{j_FrBdja.js → Cf8iN4DR.js} +1 -1
  116. package/dist/client/_nuxt/{zchoCBdH.js → CfQXZHmo.js} +1 -1
  117. package/dist/client/_nuxt/Ci6OQyBP.js +1 -0
  118. package/dist/client/_nuxt/{RXHOmnpW.js → CkXjmgJE.js} +1 -1
  119. package/dist/client/_nuxt/{yA8e6OR-.js → ClGRhx96.js} +1 -1
  120. package/dist/client/_nuxt/CsSk9TLD.js +1 -0
  121. package/dist/client/_nuxt/{Cqv5JV-q.js → CwjWoCRV.js} +1 -1
  122. package/dist/client/_nuxt/{s1PdnzAn.js → CyIGOvEh.js} +1 -1
  123. package/dist/client/_nuxt/{CodIOJDM.js → Cz8P-rqG.js} +1 -1
  124. package/dist/client/_nuxt/Cza_XSSt.js +1 -0
  125. package/dist/client/_nuxt/CzouJOBO.js +1 -0
  126. package/dist/client/_nuxt/{ZJvK9Z2N.js → D4Tzg5kh.js} +1 -1
  127. package/dist/client/_nuxt/{CQWsIgnU.js → D4h5O-jR.js} +1 -1
  128. package/dist/client/_nuxt/D5pd2Owo.js +1 -0
  129. package/dist/client/_nuxt/D8mZ0lfy.js +1 -0
  130. package/dist/client/_nuxt/D9-PGadD.js +1 -0
  131. package/dist/client/_nuxt/D9R-vmeu.js +1 -0
  132. package/dist/client/_nuxt/{Lr4bgMV6.js → DB6BmnZb.js} +1 -1
  133. package/dist/client/_nuxt/DB_GagMm.js +1 -0
  134. package/dist/client/_nuxt/DCE3LsBG.js +1 -0
  135. package/dist/client/_nuxt/DDtJtuOZ.js +1 -0
  136. package/dist/client/_nuxt/DHo0CJ0O.js +1 -0
  137. package/dist/client/_nuxt/{Dzwn3p-3.js → DJlmqQ1C.js} +1 -1
  138. package/dist/client/_nuxt/DKOGybHv.js +1 -0
  139. package/dist/client/_nuxt/DKXYxT9g.js +1 -0
  140. package/dist/client/_nuxt/DKykz6zU.js +1 -0
  141. package/dist/client/_nuxt/DLVR-baX.js +1 -0
  142. package/dist/client/_nuxt/{CEjiMJLT.js → DNquZEk8.js} +1 -1
  143. package/dist/client/_nuxt/DPvbFsQx.js +1 -0
  144. package/dist/client/_nuxt/{NUI3YrRW.js → DQ1-QYvQ.js} +1 -1
  145. package/dist/client/_nuxt/{NKd-Y1zG.js → DREVFZK8.js} +1 -1
  146. package/dist/client/_nuxt/{IqKf4WGj.js → DRNBmV_Q.js} +1 -1
  147. package/dist/client/_nuxt/DRhBOlRY.js +1 -0
  148. package/dist/client/_nuxt/{DoiKbUTj.js → DWJ3fJO_.js} +1 -1
  149. package/dist/client/_nuxt/{2aygx1xg.js → DWedfzmr.js} +1 -1
  150. package/dist/client/_nuxt/{CmY0Y6Yh.js → DXbdFlpD.js} +1 -1
  151. package/dist/client/_nuxt/DYoNaHQp.js +1 -0
  152. package/dist/client/_nuxt/DYvnoCeB.js +1 -0
  153. package/dist/client/_nuxt/D_z4Izcz.js +1 -0
  154. package/dist/client/_nuxt/{CNRQ974Q.js → Dayu4EKP.js} +1 -1
  155. package/dist/client/_nuxt/Dbxjm_CC.js +1 -0
  156. package/dist/client/_nuxt/{B6NdQBKR.js → Deuh7S70.js} +1 -1
  157. package/dist/client/_nuxt/DfxzS6Rs.js +1 -0
  158. package/dist/client/_nuxt/DhUJRlN_.js +1 -0
  159. package/dist/client/_nuxt/Dhn9LcZ4.js +1 -0
  160. package/dist/client/_nuxt/Dj6nwHGl.js +1 -0
  161. package/dist/client/_nuxt/{ClV7KpCc.js → DjHMNizO.js} +1 -1
  162. package/dist/client/_nuxt/DkBy-JyN.js +1 -0
  163. package/dist/client/_nuxt/DkLiglaE.js +1 -0
  164. package/dist/client/_nuxt/Dmy2k9nq.js +1 -0
  165. package/dist/client/_nuxt/Drsz93k2.js +1 -0
  166. package/dist/client/_nuxt/DsBKuouk.js +1 -0
  167. package/dist/client/_nuxt/{DFW6HATB.js → DsWjAdsX.js} +1 -1
  168. package/dist/client/_nuxt/Dsg_Bt_b.js +1 -0
  169. package/dist/client/_nuxt/DtFQj3wx.js +1 -0
  170. package/dist/client/_nuxt/Du268qiB.js +1 -0
  171. package/dist/client/_nuxt/Du5NY7AG.js +1 -0
  172. package/dist/client/_nuxt/DxSadP1t.js +1 -0
  173. package/dist/client/_nuxt/HNqc6WRo.js +1 -0
  174. package/dist/client/_nuxt/HnGAYVZD.js +1 -0
  175. package/dist/client/_nuxt/HzYwdGDm.js +1 -0
  176. package/dist/client/_nuxt/{Dtn98rcr.js → IuBKFhSY.js} +1 -1
  177. package/dist/client/_nuxt/{DZQMDcrx.js → L9t79GZl.js} +1 -1
  178. package/dist/client/_nuxt/{DlYXzDlu.js → P4WzXJd0.js} +1 -1
  179. package/dist/client/_nuxt/{BGct0Hx7.js → QhoSD0DR.js} +1 -1
  180. package/dist/client/_nuxt/R900dpIa.js +1 -0
  181. package/dist/client/_nuxt/{BSHf-0eb.js → SKMF96pI.js} +1 -1
  182. package/dist/client/_nuxt/SPD3sf1n.js +1 -0
  183. package/dist/client/_nuxt/{D9Bn7OQI.js → T-Tgc4AT.js} +1 -1
  184. package/dist/client/_nuxt/{B8E-_56i.js → TU54ms6u.js} +1 -1
  185. package/dist/client/_nuxt/Tz6hzZYG.js +1 -0
  186. package/dist/client/_nuxt/UIAJJxZW.js +1 -0
  187. package/dist/client/_nuxt/UL5zprDm.js +1 -0
  188. package/dist/client/_nuxt/XBlWyCtg.js +1 -0
  189. package/dist/client/_nuxt/{L9-HYnaW.js → YJb9dmdj.js} +1 -1
  190. package/dist/client/_nuxt/{D2TqM893.js → Ye_uPAM8.js} +1 -1
  191. package/dist/client/_nuxt/{Bnbw1zOw.js → ahYVQIuB.js} +1 -1
  192. package/dist/client/_nuxt/{DJEtsjbi.js → ajMbGru0.js} +1 -1
  193. package/dist/client/_nuxt/atvbtKCR.js +1 -0
  194. package/dist/client/_nuxt/{dZn0vQkf.js → bCA53EVm.js} +1 -1
  195. package/dist/client/_nuxt/bN70gL4F.js +1 -0
  196. package/dist/client/_nuxt/builds/latest.json +1 -1
  197. package/dist/client/_nuxt/builds/meta/1ef0ae85-3c8a-4505-a09a-e29f0083c0f4.json +1 -0
  198. package/dist/client/_nuxt/{CkqQx3Va.js → cPjAOO0u.js} +1 -1
  199. package/dist/client/_nuxt/din0uRiO.js +1 -0
  200. package/dist/client/_nuxt/{FMvz1E70.js → e4jU7D2d.js} +1 -1
  201. package/dist/client/_nuxt/{BINKOAKH.js → eg146-Ew.js} +1 -1
  202. package/dist/client/_nuxt/error-404.CnNYq3i9.css +1 -0
  203. package/dist/client/_nuxt/error-500.BlU6WHQT.css +1 -0
  204. package/dist/client/_nuxt/fje9CFhw.js +1 -0
  205. package/dist/client/_nuxt/ifBTmRxC.js +1 -0
  206. package/dist/client/_nuxt/{DfpIq38s.js → m2LEI-9-.js} +1 -1
  207. package/dist/client/_nuxt/m4gc_qpA.js +1 -0
  208. package/dist/client/_nuxt/m4uW47V2.js +1 -0
  209. package/dist/client/_nuxt/mebxcVVE.js +1 -0
  210. package/dist/client/_nuxt/nyqBNV6O.js +1 -0
  211. package/dist/client/_nuxt/qmhIZ77x.js +1 -0
  212. package/dist/client/_nuxt/{CY2R9RuK.js → qpfuy3xp.js} +1 -1
  213. package/dist/client/_nuxt/sacFqUAJ.js +1 -0
  214. package/dist/client/_nuxt/{Bcw97oti.js → sdHcTMYB.js} +1 -1
  215. package/dist/client/_nuxt/shcSOmrb.js +1 -0
  216. package/dist/client/_nuxt/{CQzXS8_C.js → w-ucz2PV.js} +1 -1
  217. package/dist/client/_nuxt/{BDjtpMT8.js → w8dY5SsB.js} +1 -1
  218. package/dist/client/_nuxt/wI6OXr6j.js +1 -0
  219. package/dist/client/_nuxt/xI-RfyKK.js +1 -0
  220. package/dist/client/_nuxt/{CpWBKVjh.js → xW4inM5L.js} +1 -1
  221. package/dist/client/_nuxt/ySlJ1b_l.js +1 -0
  222. package/dist/client/_nuxt/{hdsyEllQ.js → zocC4JxJ.js} +1 -1
  223. package/dist/client/index.html +220 -216
  224. package/dist/module.d.mts +2 -106
  225. package/dist/module.d.ts +2 -106
  226. package/dist/module.json +1 -1
  227. package/dist/module.mjs +49 -31
  228. package/dist/runtime/app/components/Templates/Community/NuxtSeo.vue +4 -4
  229. package/dist/runtime/app/composables/defineOgImage.js +20 -7
  230. package/dist/runtime/app/utils/plugins.js +5 -1
  231. package/dist/runtime/logger.d.ts +2 -0
  232. package/dist/runtime/logger.js +8 -0
  233. package/dist/runtime/pure.js +15 -4
  234. package/dist/runtime/server/og-image/context.d.ts +1 -1
  235. package/dist/runtime/server/og-image/context.js +28 -22
  236. package/dist/runtime/server/og-image/satori/plugins/imageSrc.js +21 -11
  237. package/dist/runtime/server/og-image/satori/renderer.d.ts +1 -1
  238. package/dist/runtime/server/og-image/satori/renderer.js +10 -3
  239. package/dist/runtime/server/og-image/templates/html.js +3 -3
  240. package/dist/runtime/server/plugins/prerender.js +6 -1
  241. package/dist/runtime/server/routes/debug.json.js +1 -1
  242. package/dist/runtime/shared.js +13 -3
  243. package/dist/runtime/types.d.ts +6 -2
  244. package/package.json +38 -41
  245. package/dist/client/_nuxt/-ALZ4IvE.js +0 -1
  246. package/dist/client/_nuxt/0qbUsQ6_.js +0 -1
  247. package/dist/client/_nuxt/2pWuV6-S.js +0 -1
  248. package/dist/client/_nuxt/5Vw9JATd.js +0 -1
  249. package/dist/client/_nuxt/6RUVFG9U.js +0 -1
  250. package/dist/client/_nuxt/8Uu6eIa-.js +0 -1
  251. package/dist/client/_nuxt/B1Z2YEe0.js +0 -1
  252. package/dist/client/_nuxt/B1rsb5QC.js +0 -1
  253. package/dist/client/_nuxt/B2bjgU-v.js +0 -1
  254. package/dist/client/_nuxt/B2uSYIFn.js +0 -1
  255. package/dist/client/_nuxt/B3Z_eaxm.js +0 -1
  256. package/dist/client/_nuxt/B4_rEpOs.js +0 -1
  257. package/dist/client/_nuxt/B5L7zzq-.js +0 -1
  258. package/dist/client/_nuxt/B74Y8nHz.js +0 -1
  259. package/dist/client/_nuxt/B9Vj0mJK.js +0 -1
  260. package/dist/client/_nuxt/BA1ndEPy.js +0 -1
  261. package/dist/client/_nuxt/BCawSwWi.js +0 -1
  262. package/dist/client/_nuxt/BHpzmqOf.js +0 -1
  263. package/dist/client/_nuxt/BJNXdUBN.js +0 -1
  264. package/dist/client/_nuxt/BKbjiiqg.js +0 -1
  265. package/dist/client/_nuxt/BMwgFBEQ.js +0 -1
  266. package/dist/client/_nuxt/BN40hmum.js +0 -1
  267. package/dist/client/_nuxt/BNxDCkIA.js +0 -1
  268. package/dist/client/_nuxt/BSPpinrx.js +0 -1
  269. package/dist/client/_nuxt/BWkuYGGO.js +0 -1
  270. package/dist/client/_nuxt/BWslPs4p.js +0 -1
  271. package/dist/client/_nuxt/BYqZ7etr.js +0 -1
  272. package/dist/client/_nuxt/BZRbnyjI.js +0 -1
  273. package/dist/client/_nuxt/B_R80ZlN.js +0 -1
  274. package/dist/client/_nuxt/BaLI2h1d.js +0 -1
  275. package/dist/client/_nuxt/BbalPOsb.js +0 -1
  276. package/dist/client/_nuxt/BbccZ3y2.js +0 -1
  277. package/dist/client/_nuxt/Bdprqoiu.js +0 -1
  278. package/dist/client/_nuxt/BgqZeg96.js +0 -1
  279. package/dist/client/_nuxt/BhC5s0V7.js +0 -1
  280. package/dist/client/_nuxt/BhsLqr-4.js +0 -1
  281. package/dist/client/_nuxt/BjXeLqNd.js +0 -1
  282. package/dist/client/_nuxt/Bjs2cL5p.js +0 -1
  283. package/dist/client/_nuxt/BkG9CdHo.js +0 -1
  284. package/dist/client/_nuxt/Bmb0A568.js +0 -1
  285. package/dist/client/_nuxt/BoZcIFWd.js +0 -1
  286. package/dist/client/_nuxt/BqtQrzRp.js +0 -1
  287. package/dist/client/_nuxt/BrbOHqWv.js +0 -1
  288. package/dist/client/_nuxt/Bv_sPlCv.js +0 -1
  289. package/dist/client/_nuxt/BwpQXVS2.js +0 -1
  290. package/dist/client/_nuxt/ByY1Guvr.js +0 -1
  291. package/dist/client/_nuxt/BzAMEn9Z.js +0 -1
  292. package/dist/client/_nuxt/BzwtH5UL.js +0 -1
  293. package/dist/client/_nuxt/C30t_gpS.js +0 -1
  294. package/dist/client/_nuxt/C6J8XiCD.js +0 -1
  295. package/dist/client/_nuxt/CBzZD_Xh.js +0 -1
  296. package/dist/client/_nuxt/CI15r38m.js +0 -1
  297. package/dist/client/_nuxt/CIxipgmy.js +0 -1
  298. package/dist/client/_nuxt/CJxt7p29.js +0 -1
  299. package/dist/client/_nuxt/CK56Z9cH.js +0 -1
  300. package/dist/client/_nuxt/CK7S-5jS.js +0 -1
  301. package/dist/client/_nuxt/CLXkKSjS.js +0 -1
  302. package/dist/client/_nuxt/CLmbwNS9.js +0 -1
  303. package/dist/client/_nuxt/CM4fc1WH.js +0 -1
  304. package/dist/client/_nuxt/CMOi41r9.js +0 -1
  305. package/dist/client/_nuxt/CNXuF1yM.js +0 -1
  306. package/dist/client/_nuxt/CQO4gZEw.js +0 -1
  307. package/dist/client/_nuxt/CVESyXxo.js +0 -1
  308. package/dist/client/_nuxt/CWJejSyX.js +0 -1
  309. package/dist/client/_nuxt/CXmV_HiI.js +0 -1
  310. package/dist/client/_nuxt/CcPoRNJz.js +0 -1
  311. package/dist/client/_nuxt/CcSEeikT.js +0 -1
  312. package/dist/client/_nuxt/CeZwWGti.js +0 -1
  313. package/dist/client/_nuxt/ChDww4um.js +0 -1
  314. package/dist/client/_nuxt/Ci-La1BS.js +0 -1
  315. package/dist/client/_nuxt/Cm25um3E.js +0 -1
  316. package/dist/client/_nuxt/Cmhojp3q.js +0 -1
  317. package/dist/client/_nuxt/CnsmiicP.js +0 -1
  318. package/dist/client/_nuxt/Csvi84BS.js +0 -1
  319. package/dist/client/_nuxt/CuIYtGag.js +0 -1
  320. package/dist/client/_nuxt/Cv3cJnDV.js +0 -1
  321. package/dist/client/_nuxt/Cv7ZOjGq.js +0 -1
  322. package/dist/client/_nuxt/CwIbMU3B.js +0 -1
  323. package/dist/client/_nuxt/Cztwc-HH.js +0 -1
  324. package/dist/client/_nuxt/D0xWnrgR.js +0 -1
  325. package/dist/client/_nuxt/D2O4HAMr.js +0 -1
  326. package/dist/client/_nuxt/D7v6OrNy.js +0 -1
  327. package/dist/client/_nuxt/D8nBeWSR.js +0 -1
  328. package/dist/client/_nuxt/D9W_gRNE.js +0 -1
  329. package/dist/client/_nuxt/DA0ESIWO.js +0 -1
  330. package/dist/client/_nuxt/DCcCncrU.js +0 -1
  331. package/dist/client/_nuxt/DES0gjzB.js +0 -1
  332. package/dist/client/_nuxt/DFIOpqzz.js +0 -1
  333. package/dist/client/_nuxt/DFQ4Xr-4.js +0 -1
  334. package/dist/client/_nuxt/DH4N8IuU.js +0 -1
  335. package/dist/client/_nuxt/DIt9OTko.js +0 -1
  336. package/dist/client/_nuxt/DMFdBl0X.js +0 -1
  337. package/dist/client/_nuxt/DNgb01dh.js +0 -1
  338. package/dist/client/_nuxt/DOAn35dn.js +0 -1
  339. package/dist/client/_nuxt/DPTZissz.js +0 -1
  340. package/dist/client/_nuxt/DQxx3LPD.js +0 -1
  341. package/dist/client/_nuxt/DRhUEtVu.js +0 -1
  342. package/dist/client/_nuxt/DUdzsfxe.js +0 -1
  343. package/dist/client/_nuxt/DVWcdiGS.js +0 -1
  344. package/dist/client/_nuxt/DWMP3yrW.js +0 -1
  345. package/dist/client/_nuxt/DZ4hUExO.js +0 -1
  346. package/dist/client/_nuxt/Db-JQHi3.js +0 -1
  347. package/dist/client/_nuxt/DepYB8Ml.js +0 -1
  348. package/dist/client/_nuxt/DhG9BCpW.js +0 -1
  349. package/dist/client/_nuxt/DhqJCFIX.js +0 -1
  350. package/dist/client/_nuxt/Dk1rBueR.js +0 -1
  351. package/dist/client/_nuxt/DkpUthgY.js +0 -1
  352. package/dist/client/_nuxt/DmF4-xLG.js +0 -1
  353. package/dist/client/_nuxt/DmZ-uG0V.js +0 -1
  354. package/dist/client/_nuxt/Dnfm4U7b.js +0 -1
  355. package/dist/client/_nuxt/DnyWjya5.js +0 -1
  356. package/dist/client/_nuxt/DqpEK-75.js +0 -1
  357. package/dist/client/_nuxt/DsCg8CPl.js +0 -1
  358. package/dist/client/_nuxt/DvA-6Bhw.js +0 -1
  359. package/dist/client/_nuxt/DvQyZZSe.js +0 -1
  360. package/dist/client/_nuxt/DwU8c_yx.js +0 -1
  361. package/dist/client/_nuxt/DzaHHFTY.js +0 -1
  362. package/dist/client/_nuxt/EZUUsui8.js +0 -1
  363. package/dist/client/_nuxt/F89DG-fP.js +0 -1
  364. package/dist/client/_nuxt/HNM5thJl.js +0 -1
  365. package/dist/client/_nuxt/IBB5Tl9j.js +0 -1
  366. package/dist/client/_nuxt/JJNjxVar.js +0 -1
  367. package/dist/client/_nuxt/KUYRHWK4.js +0 -1
  368. package/dist/client/_nuxt/Kxp7UmFj.js +0 -1
  369. package/dist/client/_nuxt/Lp17StYA.js +0 -1
  370. package/dist/client/_nuxt/NgWrSVUg.js +0 -1
  371. package/dist/client/_nuxt/W2lx4xae.js +0 -1
  372. package/dist/client/_nuxt/YurBl9Qv.js +0 -1
  373. package/dist/client/_nuxt/aeT0-ak7.js +0 -1
  374. package/dist/client/_nuxt/bGS5FTDY.js +0 -1
  375. package/dist/client/_nuxt/builds/meta/a089ef48-3edd-438e-9106-89949d355348.json +0 -1
  376. package/dist/client/_nuxt/error-404.LcFwT6vm.css +0 -1
  377. package/dist/client/_nuxt/error-500.DzDak7Sw.css +0 -1
  378. package/dist/client/_nuxt/gOa3Yz9U.js +0 -1
  379. package/dist/client/_nuxt/i22b9gbM.js +0 -1
  380. package/dist/client/_nuxt/mLcCfA0-.js +0 -1
  381. package/dist/client/_nuxt/plSVBvJQ.js +0 -1
  382. package/dist/client/_nuxt/rf8nNrOk.js +0 -1
  383. package/dist/client/_nuxt/spWmiL_5.js +0 -3834
  384. package/dist/client/_nuxt/u4bm_LMz.js +0 -1
  385. package/dist/client/_nuxt/vocl-2a6.js +0 -1
  386. package/dist/client/_nuxt/w1el_4yc.js +0 -1
  387. package/dist/client/_nuxt/xfgw03QH.js +0 -1
  388. package/dist/client/_nuxt/yLioyJ2E.js +0 -1
  389. /package/dist/runtime/assets/{Inter-400.ttf.base64 → Inter-normal-400.ttf.base64} +0 -0
  390. /package/dist/runtime/assets/{Inter-700.ttf.base64 → Inter-normal-700.ttf.base64} +0 -0
package/dist/module.d.mts CHANGED
@@ -3,111 +3,7 @@ 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 { OgImageComponents } from '#og-image/components';
7
- import { NitroOptions } from 'nitropack';
8
-
9
- type IconifyEmojiIconSets = 'twemoji' | 'noto' | 'fluent-emoji' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'streamline-emojis' | 'openmoji';
10
- interface OgImageComponent {
11
- path?: string;
12
- pascalName: string;
13
- kebabName: string;
14
- hash: string;
15
- category: 'app' | 'community' | 'pro';
16
- credits?: string;
17
- }
18
- interface ScreenshotOptions {
19
- colorScheme?: 'dark' | 'light';
20
- selector?: string;
21
- mask?: string;
22
- /**
23
- * The width of the screenshot.
24
- *
25
- * @default 1200
26
- */
27
- width: number;
28
- /**
29
- * The height of the screenshot.
30
- *
31
- * @default 630
32
- */
33
- height: number;
34
- /**
35
- * How long to wait before taking the screenshot. Useful for waiting for animations.
36
- */
37
- delay?: number;
38
- }
39
- interface OgImageOptions<T extends keyof OgImageComponents = 'NuxtSeo'> {
40
- /**
41
- * The width of the screenshot.
42
- *
43
- * @default 1200
44
- */
45
- width?: number;
46
- /**
47
- * The height of the screenshot.
48
- *
49
- * @default 630
50
- */
51
- height?: number;
52
- /**
53
- * The alt text for the image.
54
- */
55
- alt?: string;
56
- /**
57
- * Use a prebuilt image instead of generating one.
58
- *
59
- * Should be an absolute URL.
60
- */
61
- url?: string;
62
- /**
63
- * The name of the component to render.
64
- */
65
- component?: T | string;
66
- /**
67
- * Props to pass to the component.
68
- */
69
- props?: OgImageComponents[T] | Record<string, any>;
70
- renderer?: 'chromium' | 'satori';
71
- extension?: 'png' | 'jpeg' | 'jpg';
72
- emojis?: IconifyEmojiIconSets;
73
- /**
74
- * Provide a static HTML template to render the OG Image instead of a component.
75
- */
76
- html?: string;
77
- resvg?: ResvgRenderOptions;
78
- satori?: SatoriOptions;
79
- screenshot?: Partial<ScreenshotOptions>;
80
- sharp?: SharpOptions;
81
- fonts?: InputFontConfig[];
82
- cacheMaxAgeSeconds?: number;
83
- /**
84
- * @internal
85
- */
86
- _query?: Record<string, any>;
87
- }
88
- interface FontConfig {
89
- name: string;
90
- style?: string;
91
- weight?: string | number;
92
- path?: string;
93
- key?: string;
94
- absolutePath?: boolean;
95
- }
96
- type InputFontConfig = (`${string}:${number}` | string | FontConfig);
97
- interface RuntimeCompatibilitySchema {
98
- chromium: 'chrome-launcher' | 'on-demand' | 'playwright' | false;
99
- ['css-inline']: 'node' | 'wasm' | 'wasm-fs' | false;
100
- resvg: 'node' | 'wasm' | 'wasm-fs' | false;
101
- satori: 'node' | 'wasm' | 'wasm-fs' | false;
102
- sharp: 'node' | false;
103
- wasm?: NitroOptions['wasm'];
104
- }
105
- type CompatibilityFlags = Partial<Omit<RuntimeCompatibilitySchema, 'wasm'>>;
106
- interface CompatibilityFlagEnvOverrides {
107
- dev?: CompatibilityFlags;
108
- runtime?: CompatibilityFlags;
109
- prerender?: CompatibilityFlags;
110
- }
6
+ import { OgImageOptions, InputFontConfig, CompatibilityFlagEnvOverrides, OgImageComponent } from '../dist/runtime/types.js';
111
7
 
112
8
  interface ModuleOptions {
113
9
  /**
@@ -121,7 +17,7 @@ interface ModuleOptions {
121
17
  *
122
18
  * You can use this to change the default template, image sizing and more.
123
19
  *
124
- * @default { component: 'OgImageTemplateFallback', width: 1200, height: 630, cache: true, cacheTtl: 24 * 60 * 60 * 1000 }
20
+ * @default { component: 'NuxtSeo', width: 1200, height: 630, cache: true, cacheTtl: 24 * 60 * 60 * 1000 }
125
21
  */
126
22
  defaults: OgImageOptions;
127
23
  /**
package/dist/module.d.ts CHANGED
@@ -3,111 +3,7 @@ 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 { OgImageComponents } from '#og-image/components';
7
- import { NitroOptions } from 'nitropack';
8
-
9
- type IconifyEmojiIconSets = 'twemoji' | 'noto' | 'fluent-emoji' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'streamline-emojis' | 'openmoji';
10
- interface OgImageComponent {
11
- path?: string;
12
- pascalName: string;
13
- kebabName: string;
14
- hash: string;
15
- category: 'app' | 'community' | 'pro';
16
- credits?: string;
17
- }
18
- interface ScreenshotOptions {
19
- colorScheme?: 'dark' | 'light';
20
- selector?: string;
21
- mask?: string;
22
- /**
23
- * The width of the screenshot.
24
- *
25
- * @default 1200
26
- */
27
- width: number;
28
- /**
29
- * The height of the screenshot.
30
- *
31
- * @default 630
32
- */
33
- height: number;
34
- /**
35
- * How long to wait before taking the screenshot. Useful for waiting for animations.
36
- */
37
- delay?: number;
38
- }
39
- interface OgImageOptions<T extends keyof OgImageComponents = 'NuxtSeo'> {
40
- /**
41
- * The width of the screenshot.
42
- *
43
- * @default 1200
44
- */
45
- width?: number;
46
- /**
47
- * The height of the screenshot.
48
- *
49
- * @default 630
50
- */
51
- height?: number;
52
- /**
53
- * The alt text for the image.
54
- */
55
- alt?: string;
56
- /**
57
- * Use a prebuilt image instead of generating one.
58
- *
59
- * Should be an absolute URL.
60
- */
61
- url?: string;
62
- /**
63
- * The name of the component to render.
64
- */
65
- component?: T | string;
66
- /**
67
- * Props to pass to the component.
68
- */
69
- props?: OgImageComponents[T] | Record<string, any>;
70
- renderer?: 'chromium' | 'satori';
71
- extension?: 'png' | 'jpeg' | 'jpg';
72
- emojis?: IconifyEmojiIconSets;
73
- /**
74
- * Provide a static HTML template to render the OG Image instead of a component.
75
- */
76
- html?: string;
77
- resvg?: ResvgRenderOptions;
78
- satori?: SatoriOptions;
79
- screenshot?: Partial<ScreenshotOptions>;
80
- sharp?: SharpOptions;
81
- fonts?: InputFontConfig[];
82
- cacheMaxAgeSeconds?: number;
83
- /**
84
- * @internal
85
- */
86
- _query?: Record<string, any>;
87
- }
88
- interface FontConfig {
89
- name: string;
90
- style?: string;
91
- weight?: string | number;
92
- path?: string;
93
- key?: string;
94
- absolutePath?: boolean;
95
- }
96
- type InputFontConfig = (`${string}:${number}` | string | FontConfig);
97
- interface RuntimeCompatibilitySchema {
98
- chromium: 'chrome-launcher' | 'on-demand' | 'playwright' | false;
99
- ['css-inline']: 'node' | 'wasm' | 'wasm-fs' | false;
100
- resvg: 'node' | 'wasm' | 'wasm-fs' | false;
101
- satori: 'node' | 'wasm' | 'wasm-fs' | false;
102
- sharp: 'node' | false;
103
- wasm?: NitroOptions['wasm'];
104
- }
105
- type CompatibilityFlags = Partial<Omit<RuntimeCompatibilitySchema, 'wasm'>>;
106
- interface CompatibilityFlagEnvOverrides {
107
- dev?: CompatibilityFlags;
108
- runtime?: CompatibilityFlags;
109
- prerender?: CompatibilityFlags;
110
- }
6
+ import { OgImageOptions, InputFontConfig, CompatibilityFlagEnvOverrides, OgImageComponent } from '../dist/runtime/types.js';
111
7
 
112
8
  interface ModuleOptions {
113
9
  /**
@@ -121,7 +17,7 @@ interface ModuleOptions {
121
17
  *
122
18
  * You can use this to change the default template, image sizing and more.
123
19
  *
124
- * @default { component: 'OgImageTemplateFallback', width: 1200, height: 630, cache: true, cacheTtl: 24 * 60 * 60 * 1000 }
20
+ * @default { component: 'NuxtSeo', width: 1200, height: 630, cache: true, cacheTtl: 24 * 60 * 60 * 1000 }
125
21
  */
126
22
  defaults: OgImageOptions;
127
23
  /**
package/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "bridge": false
6
6
  },
7
7
  "configKey": "ogImage",
8
- "version": "4.0.0",
8
+ "version": "4.0.2",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "0.8.4",
11
11
  "unbuild": "2.0.0"
package/dist/module.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as fs from 'node:fs';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { readFile, writeFile } from 'node:fs/promises';
4
- import { useNuxt, tryResolveModule, addTemplate, resolvePath, loadNuxtModuleInstance, createResolver, defineNuxtModule, useLogger, addImports, addBuildPlugin, hasNuxtModule, addServerPlugin, addServerHandler, addComponentsDir, addComponent, addPlugin } from '@nuxt/kit';
4
+ import { useNuxt, tryResolveModule, addTemplate, resolvePath, loadNuxtModuleInstance, createResolver, defineNuxtModule, addImports, addBuildPlugin, hasNuxtModule, addServerPlugin, addServerHandler, addComponentsDir, addComponent, addPlugin } from '@nuxt/kit';
5
5
  import { defu } from 'defu';
6
6
  import { installNuxtSiteConfig } from 'nuxt-site-config/kit';
7
7
  import { hash } from 'ohash';
@@ -19,6 +19,7 @@ import { pathToFileURL } from 'node:url';
19
19
  import MagicString from 'magic-string';
20
20
  import { stripLiteral } from 'strip-literal';
21
21
  import { createUnplugin } from 'unplugin';
22
+ import { logger } from '../dist/runtime/logger.js';
22
23
  import { Launcher } from 'chrome-launcher';
23
24
  import { $fetch } from 'ofetch';
24
25
 
@@ -205,6 +206,7 @@ async function setupBuildHandler(config, resolve, nuxt = useNuxt()) {
205
206
  nitroConfig.alias.bufferutil = "unenv/runtime/mock/proxy-cjs";
206
207
  nitroConfig.alias["utf-8-validate"] = "unenv/runtime/mock/proxy-cjs";
207
208
  nitroConfig.alias.queue = "unenv/runtime/mock/proxy-cjs";
209
+ nitroConfig.alias["chromium-bidi"] = "unenv/runtime/mock/proxy-cjs";
208
210
  });
209
211
  nuxt.hooks.hook("nitro:init", async (nitro) => {
210
212
  const target = resolveNitroPreset(nitro.options);
@@ -454,17 +456,27 @@ function isNuxtGenerate(nuxt = useNuxt()) {
454
456
  function normaliseFontInput(fonts) {
455
457
  return fonts.map((f) => {
456
458
  if (typeof f === "string") {
457
- const [name, weight] = f.split(":");
459
+ const vals = f.split(":");
460
+ const includesStyle = vals.length === 3;
461
+ let name, weight, style;
462
+ if (includesStyle) {
463
+ name = vals[0];
464
+ style = vals[1];
465
+ weight = vals[2];
466
+ } else {
467
+ name = vals[0];
468
+ weight = vals[1];
469
+ }
458
470
  return {
459
471
  cacheKey: f,
460
472
  name,
461
473
  weight: weight || 400,
462
- style: "normal",
474
+ style: style || "normal",
463
475
  path: void 0
464
476
  };
465
477
  }
466
478
  return {
467
- cacheKey: f.key || `${f.name}:${f.weight}`,
479
+ cacheKey: f.key || `${f.name}:${f.style}:${f.weight}`,
468
480
  style: "normal",
469
481
  weight: 400,
470
482
  ...f
@@ -487,12 +499,12 @@ async function checkPlaywrightDependency() {
487
499
  return !!await tryResolveModule("playwright");
488
500
  }
489
501
  async function downloadFont(font, storage, mirror) {
490
- const { name, weight } = font;
491
- const key = `${name}-${weight}.ttf.base64`;
502
+ const { name, weight, style } = font;
503
+ const key = `${name}-${style}-${weight}.ttf.base64`;
492
504
  if (await storage.hasItem(key))
493
505
  return true;
494
506
  const host = typeof mirror === "undefined" ? "fonts.googleapis.com" : mirror === true ? "fonts.font.im" : mirror;
495
- const css = await $fetch(`https://${host}/css2?family=${name}:wght@${weight}`, {
507
+ const css = await $fetch(`https://${host}/css2?family=${name}:${style === "ital" ? `ital,wght@1,${weight}` : `wght@${weight}`}`, {
496
508
  timeout: 10 * 1e3,
497
509
  // 10 second timeout
498
510
  headers: {
@@ -544,13 +556,12 @@ const module = defineNuxtModule({
544
556
  },
545
557
  async setup(config, nuxt) {
546
558
  const { resolve } = createResolver(import.meta.url);
547
- const { name, version } = await readPackageJSON(resolve("../package.json"));
548
- const logger = useLogger(name);
559
+ const { version } = await readPackageJSON(resolve("../package.json"));
549
560
  logger.level = config.debug || nuxt.options.debug ? 4 : 3;
550
561
  if (config.enabled === false) {
551
562
  logger.debug("The module is disabled, skipping setup.");
552
- ["defineOgImage", "defineOgImageComponent", "defineOgImageScreenshot"].forEach((name2) => {
553
- addImports({ name: name2, from: resolve(`./runtime/app/composables/mock`) });
563
+ ["defineOgImage", "defineOgImageComponent", "defineOgImageScreenshot"].forEach((name) => {
564
+ addImports({ name, from: resolve(`./runtime/app/composables/mock`) });
554
565
  });
555
566
  return;
556
567
  }
@@ -560,6 +571,7 @@ const module = defineNuxtModule({
560
571
  }
561
572
  nuxt.options.alias["#og-image"] = resolve("./runtime");
562
573
  nuxt.options.alias["#og-image-cache"] = resolve("./runtime/server/og-image/cache/lru");
574
+ nuxt.options.alias["#nuxt-og-image-utils"] = resolve("./runtime/shared");
563
575
  const preset = resolveNitroPreset(nuxt.options.nitro);
564
576
  const targetCompatibility = getPresetNitroPresetCompatibility(preset);
565
577
  if (config.zeroRuntime) {
@@ -643,8 +655,8 @@ const module = defineNuxtModule({
643
655
  }
644
656
  if (!config.fonts.length) {
645
657
  config.fonts = [
646
- { name: "Inter", weight: 400, path: resolve("./runtime/assets/Inter-400.ttf.base64"), absolutePath: true },
647
- { name: "Inter", weight: 700, path: resolve("./runtime/assets/Inter-700.ttf.base64"), absolutePath: true }
658
+ { name: "Inter", weight: 400, path: resolve("./runtime/assets/Inter-normal-400.ttf.base64"), absolutePath: true },
659
+ { name: "Inter", weight: 700, path: resolve("./runtime/assets/Inter-normal-700.ttf.base64"), absolutePath: true }
648
660
  ];
649
661
  }
650
662
  let publicDirAbs = nuxt.options.dir.public;
@@ -658,32 +670,34 @@ const module = defineNuxtModule({
658
670
  })
659
671
  });
660
672
  config.fonts = (await Promise.all(normaliseFontInput(config.fonts).map(async (f) => {
673
+ const fontKey = `${f.name}:${f.style}:${f.weight}`;
674
+ const fontFileBase = fontKey.replaceAll(":", "-");
661
675
  if (!f.key && !f.path) {
662
676
  if (preset === "stackblitz") {
663
- logger.warn(`The ${f.name}:${f.weight} font was skipped because remote fonts are not available in StackBlitz, please use a local font.`);
677
+ logger.warn(`The ${fontKey} font was skipped because remote fonts are not available in StackBlitz, please use a local font.`);
664
678
  return false;
665
679
  }
666
680
  if (await downloadFont(f, fontStorage, config.googleFontMirror)) {
667
- f.key = `nuxt-og-image:fonts:${f.name}-${f.weight}.ttf.base64`;
681
+ f.key = `nuxt-og-image:fonts:${fontFileBase}.ttf.base64`;
668
682
  } else {
669
- logger.warn(`Failed to download font ${f.name}:${f.weight}. You may be offline or behind a firewall blocking Google. Consider setting \`googleFontMirror: true\`.`);
683
+ logger.warn(`Failed to download font ${fontKey}. You may be offline or behind a firewall blocking Google. Consider setting \`googleFontMirror: true\`.`);
670
684
  return false;
671
685
  }
672
686
  } else if (f.path) {
673
687
  const extension = basename(f.path.replace(".base64", "")).split(".").pop();
674
688
  if (!["woff", "ttf", "otf"].includes(extension)) {
675
- logger.warn(`The ${f.name}:${f.weight} font was skipped because the file extension ${extension} is not supported. Only woff, ttf and otf are supported.`);
689
+ logger.warn(`The ${fontKey} font was skipped because the file extension ${extension} is not supported. Only woff, ttf and otf are supported.`);
676
690
  return false;
677
691
  }
678
692
  if (!f.absolutePath)
679
693
  f.path = resolve(publicDirAbs, withoutLeadingSlash(f.path));
680
694
  if (!existsSync(f.path)) {
681
- logger.warn(`The ${f.name}:${f.weight} font was skipped because the file does not exist at path ${f.path}.`);
695
+ logger.warn(`The ${fontKey} font was skipped because the file does not exist at path ${f.path}.`);
682
696
  return false;
683
697
  }
684
698
  const fontData = await readFile(f.path, f.path.endsWith(".base64") ? "utf-8" : "base64");
685
- f.key = `nuxt-og-image:fonts:${f.name}-${f.weight}.${extension}.base64`;
686
- await fontStorage.setItem(`${f.name}-${f.weight}.${extension}.base64`, fontData);
699
+ f.key = `nuxt-og-image:fonts:${fontFileBase}.${extension}.base64`;
700
+ await fontStorage.setItem(`${fontFileBase}.${extension}.base64`, fontData);
687
701
  delete f.path;
688
702
  delete f.absolutePath;
689
703
  }
@@ -723,13 +737,17 @@ const module = defineNuxtModule({
723
737
  route: "/__og-image__/static/**",
724
738
  handler: resolve(`${basePath}/image`)
725
739
  });
726
- nuxt.options.optimization.treeShake.composables.client["nuxt-og-image"] = [];
727
- ["defineOgImage", "defineOgImageComponent", "defineOgImageScreenshot"].forEach((name2) => {
740
+ if (!nuxt.options.dev) {
741
+ nuxt.options.optimization.treeShake.composables.client["nuxt-og-image"] = [];
742
+ }
743
+ ["defineOgImage", "defineOgImageComponent", "defineOgImageScreenshot"].forEach((name) => {
728
744
  addImports({
729
- name: name2,
730
- from: resolve(`./runtime/app/composables/${name2}`)
745
+ name,
746
+ from: resolve(`./runtime/app/composables/${name}`)
731
747
  });
732
- nuxt.options.optimization.treeShake.composables.client["nuxt-og-image"].push(name2);
748
+ if (!nuxt.options.dev) {
749
+ nuxt.options.optimization.treeShake.composables.client["nuxt-og-image"].push(name);
750
+ }
733
751
  });
734
752
  if (!config.zeroRuntime || nuxt.options.dev) {
735
753
  await addComponentsDir({
@@ -742,10 +760,10 @@ const module = defineNuxtModule({
742
760
  // new
743
761
  "OgImage",
744
762
  "OgImageScreenshot"
745
- ].forEach((name2) => {
763
+ ].forEach((name) => {
746
764
  addComponent({
747
- name: name2,
748
- filePath: resolve(`./runtime/app/components/OgImage/${name2}`),
765
+ name,
766
+ filePath: resolve(`./runtime/app/components/OgImage/${name}`),
749
767
  ...config.componentOptions
750
768
  });
751
769
  });
@@ -809,10 +827,10 @@ const module = defineNuxtModule({
809
827
  extendTypes("nuxt-og-image", ({ typesPath }) => {
810
828
  const componentImports = ogImageComponentCtx.components.map((component) => {
811
829
  const relativeComponentPath = relative$1(resolve(nuxt.options.rootDir, nuxt.options.buildDir, "module"), component.path);
812
- const name2 = config.componentDirs.sort((a, b) => b.length - a.length).reduce((name3, dir) => {
813
- return name3.replace(new RegExp(`^${dir}`), "");
830
+ const name = config.componentDirs.sort((a, b) => b.length - a.length).reduce((name2, dir) => {
831
+ return name2.replace(new RegExp(`^${dir}`), "");
814
832
  }, component.pascalName);
815
- return ` '${name2}': typeof import('${relativeComponentPath}')['default']`;
833
+ return ` '${name}': typeof import('${relativeComponentPath}')['default']`;
816
834
  }).join("\n");
817
835
  return `
818
836
  declare module 'nitropack' {
@@ -77,10 +77,10 @@ const siteLogo = computed(() => {
77
77
  const IconComponent = runtimeConfig.hasNuxtIcon
78
78
  ? resolveComponent('Icon')
79
79
  : defineComponent({
80
- render() {
81
- return h('div', 'missing @nuxt/icon')
82
- },
83
- })
80
+ render() {
81
+ return h('div', 'missing @nuxt/icon')
82
+ },
83
+ })
84
84
  if (typeof props.icon === 'string' && !runtimeConfig.hasNuxtIcon && process.dev) {
85
85
  console.warn('Please install `@nuxt/icon` to use icons with the fallback OG Image component.')
86
86
  // eslint-disable-next-line no-console
@@ -1,16 +1,28 @@
1
- import { useNuxtApp, useRequestEvent, useRoute } from "#imports";
2
1
  import { defu } from "defu";
3
2
  import { appendHeader } from "h3";
3
+ import { createError, useNuxtApp, useRequestEvent, useRoute, useState } from "nuxt/app";
4
+ import { ref } from "vue";
4
5
  import { createNitroRouteRuleMatcher } from "../../server/util/kit.js";
5
6
  import { getOgImagePath, separateProps, useOgImageRuntimeConfig } from "../../shared.js";
6
7
  import { createOgImageMeta, normaliseOptions } from "../utils.js";
7
8
  export function defineOgImage(_options = {}) {
8
- if (!import.meta.server)
9
- return;
10
9
  const nuxtApp = useNuxtApp();
11
- const ogImageInstances = nuxtApp.ssrContext._ogImageInstances || [];
12
10
  const route = useRoute();
13
11
  const basePath = route.path || "/";
12
+ if (nuxtApp.payload.path === basePath) {
13
+ const state = import.meta.dev ? useState(`og-image:ssr-exists:${basePath}`, () => false) : ref(false);
14
+ if (import.meta.dev && !import.meta.server) {
15
+ if (!state.value) {
16
+ throw createError({ message: "You are using a defineOgImage() function in a client-only context. You must call this function within your root component setup, see https://github.com/nuxt-modules/og-image/pull/293." });
17
+ }
18
+ return;
19
+ }
20
+ state.value = true;
21
+ }
22
+ if (!import.meta.server) {
23
+ return;
24
+ }
25
+ const ogImageInstances = nuxtApp.ssrContext._ogImageInstances || [];
14
26
  const routeRuleMatcher = createNitroRouteRuleMatcher();
15
27
  const routeRules = routeRuleMatcher(basePath).ogImage;
16
28
  if (!_options || nuxtApp.ssrContext?.event.context._nitro?.routeRules?.ogImage === false || typeof routeRules !== "undefined" && routeRules === false) {
@@ -32,9 +44,10 @@ export function defineOgImage(_options = {}) {
32
44
  if (resolvedOptions.url) {
33
45
  createOgImageMeta(null, options, resolvedOptions, nuxtApp.ssrContext);
34
46
  } else {
35
- const path = getOgImagePath(basePath, resolvedOptions);
36
- if (import.meta.prerender)
37
- appendHeader(useRequestEvent(), "x-nitro-prerender", path);
47
+ const path = getOgImagePath(basePath, defu(resolvedOptions, { _query: options._query }));
48
+ if (import.meta.prerender) {
49
+ appendHeader(useRequestEvent(nuxtApp), "x-nitro-prerender", path);
50
+ }
38
51
  createOgImageMeta(path, options, resolvedOptions, nuxtApp.ssrContext);
39
52
  }
40
53
  }
@@ -36,7 +36,11 @@ export function ogImageCanonicalUrls(nuxtApp) {
36
36
  ctx2.tags = ctx2.tags.filter(Boolean);
37
37
  for (const tag of ctx2.tags) {
38
38
  if (tag.tag === "meta" && (tag.props.property === "og:image" || ["twitter:image:src", "twitter:image"].includes(tag.props.name))) {
39
- if (!tag.props.content.startsWith("https")) {
39
+ if (!tag.props.content) {
40
+ tag.props = {};
41
+ continue;
42
+ }
43
+ if (!tag.props.content?.startsWith("https")) {
40
44
  await nuxtApp.runWithContext(() => {
41
45
  tag.props.content = toValue(withSiteUrl(tag.props.content, {
42
46
  withBase: true
@@ -0,0 +1,2 @@
1
+ export declare const logger: import("consola").ConsolaInstance;
2
+ export declare const gray: (s: string) => string;
@@ -0,0 +1,8 @@
1
+ import { createConsola } from "consola";
2
+ import { colorize } from "consola/utils";
3
+ export const logger = createConsola({
4
+ defaults: {
5
+ tag: "@nuxtjs/og-image"
6
+ }
7
+ });
8
+ export const gray = (s) => colorize("gray", s);
@@ -9,8 +9,9 @@ function detectBase64MimeType(data) {
9
9
  "AAABAA": "image/x-icon"
10
10
  };
11
11
  for (const s in signatures) {
12
- if (data.indexOf(s) === 0)
12
+ if (data.startsWith(s)) {
13
13
  return signatures[s];
14
+ }
14
15
  }
15
16
  return "image/svg+xml";
16
17
  }
@@ -64,17 +65,27 @@ export function separateProps(options, ignoreKeys = []) {
64
65
  export function normaliseFontInput(fonts) {
65
66
  return fonts.map((f) => {
66
67
  if (typeof f === "string") {
67
- const [name, weight] = f.split(":");
68
+ const vals = f.split(":");
69
+ const includesStyle = vals.length === 3;
70
+ let name, weight, style;
71
+ if (includesStyle) {
72
+ name = vals[0];
73
+ style = vals[1];
74
+ weight = vals[2];
75
+ } else {
76
+ name = vals[0];
77
+ weight = vals[1];
78
+ }
68
79
  return {
69
80
  cacheKey: f,
70
81
  name,
71
82
  weight: weight || 400,
72
- style: "normal",
83
+ style: style || "normal",
73
84
  path: void 0
74
85
  };
75
86
  }
76
87
  return {
77
- cacheKey: f.key || `${f.name}:${f.weight}`,
88
+ cacheKey: f.key || `${f.name}:${f.style}:${f.weight}`,
78
89
  style: "normal",
79
90
  weight: 400,
80
91
  ...f
@@ -1,5 +1,5 @@
1
1
  import type { H3Error, H3Event } from 'h3';
2
2
  import type { OgImageOptions, OgImageRenderEventContext } from '../../types.js';
3
- export declare function resolvePathCacheKey(e: H3Event, path?: string): string;
3
+ export declare function resolvePathCacheKey(e: H3Event, path: string): string;
4
4
  export declare function resolveContext(e: H3Event): Promise<H3Error | OgImageRenderEventContext>;
5
5
  export declare function extractAndNormaliseOgImageOptions(html: string): OgImageOptions | false;