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.
- package/dist/client/200.html +220 -216
- package/dist/client/404.html +220 -216
- package/dist/client/_nuxt/3kbuJQcV.js +1 -0
- package/dist/client/_nuxt/3xVqZejG.js +1 -0
- package/dist/client/_nuxt/{CrOfvjVs.js → 5LuOXUq_.js} +1 -1
- package/dist/client/_nuxt/727ZlQH0.js +1 -0
- package/dist/client/_nuxt/7O62HKoU.js +1 -0
- package/dist/client/_nuxt/9C6ErRqt.js +1 -0
- package/dist/client/_nuxt/B-DoSBHF.js +1 -0
- package/dist/client/_nuxt/B-k3dvlD.js +1 -0
- package/dist/client/_nuxt/B0XVJmRM.js +1 -0
- package/dist/client/_nuxt/B14Poo8t.js +1 -0
- package/dist/client/_nuxt/B1SYOhNW.js +1 -0
- package/dist/client/_nuxt/B1bQXN8T.js +1 -0
- package/dist/client/_nuxt/B3ZDOciz.js +1 -0
- package/dist/client/_nuxt/B430Bg39.js +1 -0
- package/dist/client/_nuxt/B48N-Iqd.js +1 -0
- package/dist/client/_nuxt/B5auBHZD.js +1 -0
- package/dist/client/_nuxt/B5lbUyaz.js +1 -0
- package/dist/client/_nuxt/B6W0miNI.js +1 -0
- package/dist/client/_nuxt/B7mTdjB0.js +1 -0
- package/dist/client/_nuxt/B9wLZaAG.js +1 -0
- package/dist/client/_nuxt/BAng5TT0.js +1 -0
- package/dist/client/_nuxt/{BzaEo2Du.js → BC5c_5Pe.js} +1 -1
- package/dist/client/_nuxt/BE9QQhgF.js +1 -0
- package/dist/client/_nuxt/BEhvmC7f.js +1 -0
- package/dist/client/_nuxt/{CbgzOxfU.js → BEqZJfBF.js} +1 -1
- package/dist/client/_nuxt/{C8pgRvQH.js → BFOHcciG.js} +1 -1
- package/dist/client/_nuxt/BHOwM8T6.js +1 -0
- package/dist/client/_nuxt/BIEUsx6d.js +1 -0
- package/dist/client/_nuxt/BILxekzW.js +1 -0
- package/dist/client/_nuxt/BJ4Li9vH.js +1 -0
- package/dist/client/_nuxt/BJGe-b2p.js +1 -0
- package/dist/client/_nuxt/BLDCaNbg.js +1 -0
- package/dist/client/_nuxt/BLhTXw86.js +1 -0
- package/dist/client/_nuxt/{C0hdQUNN.js → BMR_PYu6.js} +1 -1
- package/dist/client/_nuxt/{dwbxrGt_.js → BMYPR7BL.js} +1 -1
- package/dist/client/_nuxt/BMj5Y0dO.js +1 -0
- package/dist/client/_nuxt/{BTbGKmhu.js → BNHBcdi1.js} +1 -1
- package/dist/client/_nuxt/BNioltXt.js +1 -0
- package/dist/client/_nuxt/BPT9niGB.js +1 -0
- package/dist/client/_nuxt/BPhBrDlE.js +1 -0
- package/dist/client/_nuxt/{DWmkr0yC.js → BQoSv7ci.js} +1 -1
- package/dist/client/_nuxt/BQwtg7Y-.js +1 -0
- package/dist/client/_nuxt/BUEGK8hf.js +1 -0
- package/dist/client/_nuxt/BVUVsWT6.js +1 -0
- package/dist/client/_nuxt/BVr_1_27.js +1 -0
- package/dist/client/_nuxt/{D44NvAEk.js → BVz_zdnA.js} +1 -1
- package/dist/client/_nuxt/{CMz7PuSU.js → BX77sIaO.js} +1 -1
- package/dist/client/_nuxt/BXW1EomU.js +1 -0
- package/dist/client/_nuxt/BY-TUvya.js +1 -0
- package/dist/client/_nuxt/B_49xXYf.js +1 -0
- package/dist/client/_nuxt/BbSNqyBO.js +1 -0
- package/dist/client/_nuxt/BdxkyMLR.js +1 -0
- package/dist/client/_nuxt/Be6lgOlo.js +1 -0
- package/dist/client/_nuxt/BeQkCIfX.js +1 -0
- package/dist/client/_nuxt/BfCpw3nA.js +1 -0
- package/dist/client/_nuxt/{CpRrwcwt.js → BfivnA6A.js} +1 -1
- package/dist/client/_nuxt/Bg-kzb6g.js +1 -0
- package/dist/client/_nuxt/BgYniUM_.js +1 -0
- package/dist/client/_nuxt/{i5HCB2tm.js → BiFfXF7O.js} +1 -1
- package/dist/client/_nuxt/Bid6LQhH.js +1 -0
- package/dist/client/_nuxt/BjQB5zDj.js +1 -0
- package/dist/client/_nuxt/{D-RymO5g.js → BknIz3MU.js} +1 -1
- package/dist/client/_nuxt/{eACALr6E.js → Bl1h29GH.js} +1 -1
- package/dist/client/_nuxt/{CKfqYE_r.js → BlxRB_8X.js} +1 -1
- package/dist/client/_nuxt/BoXegm-a.js +1 -0
- package/dist/client/_nuxt/BpWG_bgh.js +1 -0
- package/dist/client/_nuxt/BsOYHjMa.js +1 -0
- package/dist/client/_nuxt/Bu5BbsvL.js +1 -0
- package/dist/client/_nuxt/Bu73EIfS.js +1 -0
- package/dist/client/_nuxt/{DNDvMORL.js → Bvotw-X0.js} +1 -1
- package/dist/client/_nuxt/Bw0wYZmb.js +1 -0
- package/dist/client/_nuxt/{DDUKAZWS.js → BwXTMy5W.js} +1 -1
- package/dist/client/_nuxt/C-_Zqo7-.js +3834 -0
- package/dist/client/_nuxt/C-nORZOA.js +1 -0
- package/dist/client/_nuxt/C-wny61x.js +1 -0
- package/dist/client/_nuxt/C0nbwVuJ.js +1 -0
- package/dist/client/_nuxt/C1XDQQGZ.js +1 -0
- package/dist/client/_nuxt/C1tVc3UG.js +1 -0
- package/dist/client/_nuxt/{DymQr0nX.js → C1w2a3ep.js} +1 -1
- package/dist/client/_nuxt/C30yJ1fx.js +1 -0
- package/dist/client/_nuxt/C39BiMTA.js +1 -0
- package/dist/client/_nuxt/C3FkfJm5.js +1 -0
- package/dist/client/_nuxt/C3mMm8J8.js +1 -0
- package/dist/client/_nuxt/C3t2pwGQ.js +1 -0
- package/dist/client/_nuxt/C5Y8tDhP.js +1 -0
- package/dist/client/_nuxt/C5wWYbrZ.js +1 -0
- package/dist/client/_nuxt/{sH2JAGjN.js → C6j12Q_x.js} +1 -1
- package/dist/client/_nuxt/C7L56vO4.js +1 -0
- package/dist/client/_nuxt/C7gG9l05.js +1 -0
- package/dist/client/_nuxt/CAQ2eGtk.js +1 -0
- package/dist/client/_nuxt/{CSoQzgif.js → CB0Krxn9.js} +1 -1
- package/dist/client/_nuxt/{Dwo6uFCY.js → CB2ApiWb.js} +1 -1
- package/dist/client/_nuxt/{B6E6ObS_.js → CG55hV0U.js} +2 -2
- package/dist/client/_nuxt/{CyEc264g.js → CGVVOGHx.js} +1 -1
- package/dist/client/_nuxt/CJaU5se_.js +1 -0
- package/dist/client/_nuxt/CKg9tqCS.js +1 -0
- package/dist/client/_nuxt/{CmWLV2bY.js → CM8KxXT1.js} +1 -1
- package/dist/client/_nuxt/CMt9yHYq.js +1 -0
- package/dist/client/_nuxt/COJ4H7py.js +1 -0
- package/dist/client/_nuxt/COK4E0Yg.js +1 -0
- package/dist/client/_nuxt/COcR7UxN.js +1 -0
- package/dist/client/_nuxt/{CbUnruJU.js → COyJrUc7.js} +1 -1
- package/dist/client/_nuxt/CQ0soPOq.js +1 -0
- package/dist/client/_nuxt/CSHBycmS.js +1 -0
- package/dist/client/_nuxt/CSp6iqVD.js +1 -0
- package/dist/client/_nuxt/CUnW07Te.js +1 -0
- package/dist/client/_nuxt/{CIiI48o2.js → CVw76BM1.js} +1 -1
- package/dist/client/_nuxt/CYFUjXW1.js +1 -0
- package/dist/client/_nuxt/CZe0XNBd.js +1 -0
- package/dist/client/_nuxt/Cc5clBb7.js +1 -0
- package/dist/client/_nuxt/CcHjYXgz.js +1 -0
- package/dist/client/_nuxt/{Bv-mwDEg.js → CdO5JTpU.js} +1 -1
- package/dist/client/_nuxt/{j_FrBdja.js → Cf8iN4DR.js} +1 -1
- package/dist/client/_nuxt/{zchoCBdH.js → CfQXZHmo.js} +1 -1
- package/dist/client/_nuxt/Ci6OQyBP.js +1 -0
- package/dist/client/_nuxt/{RXHOmnpW.js → CkXjmgJE.js} +1 -1
- package/dist/client/_nuxt/{yA8e6OR-.js → ClGRhx96.js} +1 -1
- package/dist/client/_nuxt/CsSk9TLD.js +1 -0
- package/dist/client/_nuxt/{Cqv5JV-q.js → CwjWoCRV.js} +1 -1
- package/dist/client/_nuxt/{s1PdnzAn.js → CyIGOvEh.js} +1 -1
- package/dist/client/_nuxt/{CodIOJDM.js → Cz8P-rqG.js} +1 -1
- package/dist/client/_nuxt/Cza_XSSt.js +1 -0
- package/dist/client/_nuxt/CzouJOBO.js +1 -0
- package/dist/client/_nuxt/{ZJvK9Z2N.js → D4Tzg5kh.js} +1 -1
- package/dist/client/_nuxt/{CQWsIgnU.js → D4h5O-jR.js} +1 -1
- package/dist/client/_nuxt/D5pd2Owo.js +1 -0
- package/dist/client/_nuxt/D8mZ0lfy.js +1 -0
- package/dist/client/_nuxt/D9-PGadD.js +1 -0
- package/dist/client/_nuxt/D9R-vmeu.js +1 -0
- package/dist/client/_nuxt/{Lr4bgMV6.js → DB6BmnZb.js} +1 -1
- package/dist/client/_nuxt/DB_GagMm.js +1 -0
- package/dist/client/_nuxt/DCE3LsBG.js +1 -0
- package/dist/client/_nuxt/DDtJtuOZ.js +1 -0
- package/dist/client/_nuxt/DHo0CJ0O.js +1 -0
- package/dist/client/_nuxt/{Dzwn3p-3.js → DJlmqQ1C.js} +1 -1
- package/dist/client/_nuxt/DKOGybHv.js +1 -0
- package/dist/client/_nuxt/DKXYxT9g.js +1 -0
- package/dist/client/_nuxt/DKykz6zU.js +1 -0
- package/dist/client/_nuxt/DLVR-baX.js +1 -0
- package/dist/client/_nuxt/{CEjiMJLT.js → DNquZEk8.js} +1 -1
- package/dist/client/_nuxt/DPvbFsQx.js +1 -0
- package/dist/client/_nuxt/{NUI3YrRW.js → DQ1-QYvQ.js} +1 -1
- package/dist/client/_nuxt/{NKd-Y1zG.js → DREVFZK8.js} +1 -1
- package/dist/client/_nuxt/{IqKf4WGj.js → DRNBmV_Q.js} +1 -1
- package/dist/client/_nuxt/DRhBOlRY.js +1 -0
- package/dist/client/_nuxt/{DoiKbUTj.js → DWJ3fJO_.js} +1 -1
- package/dist/client/_nuxt/{2aygx1xg.js → DWedfzmr.js} +1 -1
- package/dist/client/_nuxt/{CmY0Y6Yh.js → DXbdFlpD.js} +1 -1
- package/dist/client/_nuxt/DYoNaHQp.js +1 -0
- package/dist/client/_nuxt/DYvnoCeB.js +1 -0
- package/dist/client/_nuxt/D_z4Izcz.js +1 -0
- package/dist/client/_nuxt/{CNRQ974Q.js → Dayu4EKP.js} +1 -1
- package/dist/client/_nuxt/Dbxjm_CC.js +1 -0
- package/dist/client/_nuxt/{B6NdQBKR.js → Deuh7S70.js} +1 -1
- package/dist/client/_nuxt/DfxzS6Rs.js +1 -0
- package/dist/client/_nuxt/DhUJRlN_.js +1 -0
- package/dist/client/_nuxt/Dhn9LcZ4.js +1 -0
- package/dist/client/_nuxt/Dj6nwHGl.js +1 -0
- package/dist/client/_nuxt/{ClV7KpCc.js → DjHMNizO.js} +1 -1
- package/dist/client/_nuxt/DkBy-JyN.js +1 -0
- package/dist/client/_nuxt/DkLiglaE.js +1 -0
- package/dist/client/_nuxt/Dmy2k9nq.js +1 -0
- package/dist/client/_nuxt/Drsz93k2.js +1 -0
- package/dist/client/_nuxt/DsBKuouk.js +1 -0
- package/dist/client/_nuxt/{DFW6HATB.js → DsWjAdsX.js} +1 -1
- package/dist/client/_nuxt/Dsg_Bt_b.js +1 -0
- package/dist/client/_nuxt/DtFQj3wx.js +1 -0
- package/dist/client/_nuxt/Du268qiB.js +1 -0
- package/dist/client/_nuxt/Du5NY7AG.js +1 -0
- package/dist/client/_nuxt/DxSadP1t.js +1 -0
- package/dist/client/_nuxt/HNqc6WRo.js +1 -0
- package/dist/client/_nuxt/HnGAYVZD.js +1 -0
- package/dist/client/_nuxt/HzYwdGDm.js +1 -0
- package/dist/client/_nuxt/{Dtn98rcr.js → IuBKFhSY.js} +1 -1
- package/dist/client/_nuxt/{DZQMDcrx.js → L9t79GZl.js} +1 -1
- package/dist/client/_nuxt/{DlYXzDlu.js → P4WzXJd0.js} +1 -1
- package/dist/client/_nuxt/{BGct0Hx7.js → QhoSD0DR.js} +1 -1
- package/dist/client/_nuxt/R900dpIa.js +1 -0
- package/dist/client/_nuxt/{BSHf-0eb.js → SKMF96pI.js} +1 -1
- package/dist/client/_nuxt/SPD3sf1n.js +1 -0
- package/dist/client/_nuxt/{D9Bn7OQI.js → T-Tgc4AT.js} +1 -1
- package/dist/client/_nuxt/{B8E-_56i.js → TU54ms6u.js} +1 -1
- package/dist/client/_nuxt/Tz6hzZYG.js +1 -0
- package/dist/client/_nuxt/UIAJJxZW.js +1 -0
- package/dist/client/_nuxt/UL5zprDm.js +1 -0
- package/dist/client/_nuxt/XBlWyCtg.js +1 -0
- package/dist/client/_nuxt/{L9-HYnaW.js → YJb9dmdj.js} +1 -1
- package/dist/client/_nuxt/{D2TqM893.js → Ye_uPAM8.js} +1 -1
- package/dist/client/_nuxt/{Bnbw1zOw.js → ahYVQIuB.js} +1 -1
- package/dist/client/_nuxt/{DJEtsjbi.js → ajMbGru0.js} +1 -1
- package/dist/client/_nuxt/atvbtKCR.js +1 -0
- package/dist/client/_nuxt/{dZn0vQkf.js → bCA53EVm.js} +1 -1
- package/dist/client/_nuxt/bN70gL4F.js +1 -0
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/1ef0ae85-3c8a-4505-a09a-e29f0083c0f4.json +1 -0
- package/dist/client/_nuxt/{CkqQx3Va.js → cPjAOO0u.js} +1 -1
- package/dist/client/_nuxt/din0uRiO.js +1 -0
- package/dist/client/_nuxt/{FMvz1E70.js → e4jU7D2d.js} +1 -1
- package/dist/client/_nuxt/{BINKOAKH.js → eg146-Ew.js} +1 -1
- package/dist/client/_nuxt/error-404.CnNYq3i9.css +1 -0
- package/dist/client/_nuxt/error-500.BlU6WHQT.css +1 -0
- package/dist/client/_nuxt/fje9CFhw.js +1 -0
- package/dist/client/_nuxt/ifBTmRxC.js +1 -0
- package/dist/client/_nuxt/{DfpIq38s.js → m2LEI-9-.js} +1 -1
- package/dist/client/_nuxt/m4gc_qpA.js +1 -0
- package/dist/client/_nuxt/m4uW47V2.js +1 -0
- package/dist/client/_nuxt/mebxcVVE.js +1 -0
- package/dist/client/_nuxt/nyqBNV6O.js +1 -0
- package/dist/client/_nuxt/qmhIZ77x.js +1 -0
- package/dist/client/_nuxt/{CY2R9RuK.js → qpfuy3xp.js} +1 -1
- package/dist/client/_nuxt/sacFqUAJ.js +1 -0
- package/dist/client/_nuxt/{Bcw97oti.js → sdHcTMYB.js} +1 -1
- package/dist/client/_nuxt/shcSOmrb.js +1 -0
- package/dist/client/_nuxt/{CQzXS8_C.js → w-ucz2PV.js} +1 -1
- package/dist/client/_nuxt/{BDjtpMT8.js → w8dY5SsB.js} +1 -1
- package/dist/client/_nuxt/wI6OXr6j.js +1 -0
- package/dist/client/_nuxt/xI-RfyKK.js +1 -0
- package/dist/client/_nuxt/{CpWBKVjh.js → xW4inM5L.js} +1 -1
- package/dist/client/_nuxt/ySlJ1b_l.js +1 -0
- package/dist/client/_nuxt/{hdsyEllQ.js → zocC4JxJ.js} +1 -1
- package/dist/client/index.html +220 -216
- package/dist/module.d.mts +2 -106
- package/dist/module.d.ts +2 -106
- package/dist/module.json +1 -1
- package/dist/module.mjs +49 -31
- package/dist/runtime/app/components/Templates/Community/NuxtSeo.vue +4 -4
- package/dist/runtime/app/composables/defineOgImage.js +20 -7
- package/dist/runtime/app/utils/plugins.js +5 -1
- package/dist/runtime/logger.d.ts +2 -0
- package/dist/runtime/logger.js +8 -0
- package/dist/runtime/pure.js +15 -4
- package/dist/runtime/server/og-image/context.d.ts +1 -1
- package/dist/runtime/server/og-image/context.js +28 -22
- package/dist/runtime/server/og-image/satori/plugins/imageSrc.js +21 -11
- package/dist/runtime/server/og-image/satori/renderer.d.ts +1 -1
- package/dist/runtime/server/og-image/satori/renderer.js +10 -3
- package/dist/runtime/server/og-image/templates/html.js +3 -3
- package/dist/runtime/server/plugins/prerender.js +6 -1
- package/dist/runtime/server/routes/debug.json.js +1 -1
- package/dist/runtime/shared.js +13 -3
- package/dist/runtime/types.d.ts +6 -2
- package/package.json +38 -41
- package/dist/client/_nuxt/-ALZ4IvE.js +0 -1
- package/dist/client/_nuxt/0qbUsQ6_.js +0 -1
- package/dist/client/_nuxt/2pWuV6-S.js +0 -1
- package/dist/client/_nuxt/5Vw9JATd.js +0 -1
- package/dist/client/_nuxt/6RUVFG9U.js +0 -1
- package/dist/client/_nuxt/8Uu6eIa-.js +0 -1
- package/dist/client/_nuxt/B1Z2YEe0.js +0 -1
- package/dist/client/_nuxt/B1rsb5QC.js +0 -1
- package/dist/client/_nuxt/B2bjgU-v.js +0 -1
- package/dist/client/_nuxt/B2uSYIFn.js +0 -1
- package/dist/client/_nuxt/B3Z_eaxm.js +0 -1
- package/dist/client/_nuxt/B4_rEpOs.js +0 -1
- package/dist/client/_nuxt/B5L7zzq-.js +0 -1
- package/dist/client/_nuxt/B74Y8nHz.js +0 -1
- package/dist/client/_nuxt/B9Vj0mJK.js +0 -1
- package/dist/client/_nuxt/BA1ndEPy.js +0 -1
- package/dist/client/_nuxt/BCawSwWi.js +0 -1
- package/dist/client/_nuxt/BHpzmqOf.js +0 -1
- package/dist/client/_nuxt/BJNXdUBN.js +0 -1
- package/dist/client/_nuxt/BKbjiiqg.js +0 -1
- package/dist/client/_nuxt/BMwgFBEQ.js +0 -1
- package/dist/client/_nuxt/BN40hmum.js +0 -1
- package/dist/client/_nuxt/BNxDCkIA.js +0 -1
- package/dist/client/_nuxt/BSPpinrx.js +0 -1
- package/dist/client/_nuxt/BWkuYGGO.js +0 -1
- package/dist/client/_nuxt/BWslPs4p.js +0 -1
- package/dist/client/_nuxt/BYqZ7etr.js +0 -1
- package/dist/client/_nuxt/BZRbnyjI.js +0 -1
- package/dist/client/_nuxt/B_R80ZlN.js +0 -1
- package/dist/client/_nuxt/BaLI2h1d.js +0 -1
- package/dist/client/_nuxt/BbalPOsb.js +0 -1
- package/dist/client/_nuxt/BbccZ3y2.js +0 -1
- package/dist/client/_nuxt/Bdprqoiu.js +0 -1
- package/dist/client/_nuxt/BgqZeg96.js +0 -1
- package/dist/client/_nuxt/BhC5s0V7.js +0 -1
- package/dist/client/_nuxt/BhsLqr-4.js +0 -1
- package/dist/client/_nuxt/BjXeLqNd.js +0 -1
- package/dist/client/_nuxt/Bjs2cL5p.js +0 -1
- package/dist/client/_nuxt/BkG9CdHo.js +0 -1
- package/dist/client/_nuxt/Bmb0A568.js +0 -1
- package/dist/client/_nuxt/BoZcIFWd.js +0 -1
- package/dist/client/_nuxt/BqtQrzRp.js +0 -1
- package/dist/client/_nuxt/BrbOHqWv.js +0 -1
- package/dist/client/_nuxt/Bv_sPlCv.js +0 -1
- package/dist/client/_nuxt/BwpQXVS2.js +0 -1
- package/dist/client/_nuxt/ByY1Guvr.js +0 -1
- package/dist/client/_nuxt/BzAMEn9Z.js +0 -1
- package/dist/client/_nuxt/BzwtH5UL.js +0 -1
- package/dist/client/_nuxt/C30t_gpS.js +0 -1
- package/dist/client/_nuxt/C6J8XiCD.js +0 -1
- package/dist/client/_nuxt/CBzZD_Xh.js +0 -1
- package/dist/client/_nuxt/CI15r38m.js +0 -1
- package/dist/client/_nuxt/CIxipgmy.js +0 -1
- package/dist/client/_nuxt/CJxt7p29.js +0 -1
- package/dist/client/_nuxt/CK56Z9cH.js +0 -1
- package/dist/client/_nuxt/CK7S-5jS.js +0 -1
- package/dist/client/_nuxt/CLXkKSjS.js +0 -1
- package/dist/client/_nuxt/CLmbwNS9.js +0 -1
- package/dist/client/_nuxt/CM4fc1WH.js +0 -1
- package/dist/client/_nuxt/CMOi41r9.js +0 -1
- package/dist/client/_nuxt/CNXuF1yM.js +0 -1
- package/dist/client/_nuxt/CQO4gZEw.js +0 -1
- package/dist/client/_nuxt/CVESyXxo.js +0 -1
- package/dist/client/_nuxt/CWJejSyX.js +0 -1
- package/dist/client/_nuxt/CXmV_HiI.js +0 -1
- package/dist/client/_nuxt/CcPoRNJz.js +0 -1
- package/dist/client/_nuxt/CcSEeikT.js +0 -1
- package/dist/client/_nuxt/CeZwWGti.js +0 -1
- package/dist/client/_nuxt/ChDww4um.js +0 -1
- package/dist/client/_nuxt/Ci-La1BS.js +0 -1
- package/dist/client/_nuxt/Cm25um3E.js +0 -1
- package/dist/client/_nuxt/Cmhojp3q.js +0 -1
- package/dist/client/_nuxt/CnsmiicP.js +0 -1
- package/dist/client/_nuxt/Csvi84BS.js +0 -1
- package/dist/client/_nuxt/CuIYtGag.js +0 -1
- package/dist/client/_nuxt/Cv3cJnDV.js +0 -1
- package/dist/client/_nuxt/Cv7ZOjGq.js +0 -1
- package/dist/client/_nuxt/CwIbMU3B.js +0 -1
- package/dist/client/_nuxt/Cztwc-HH.js +0 -1
- package/dist/client/_nuxt/D0xWnrgR.js +0 -1
- package/dist/client/_nuxt/D2O4HAMr.js +0 -1
- package/dist/client/_nuxt/D7v6OrNy.js +0 -1
- package/dist/client/_nuxt/D8nBeWSR.js +0 -1
- package/dist/client/_nuxt/D9W_gRNE.js +0 -1
- package/dist/client/_nuxt/DA0ESIWO.js +0 -1
- package/dist/client/_nuxt/DCcCncrU.js +0 -1
- package/dist/client/_nuxt/DES0gjzB.js +0 -1
- package/dist/client/_nuxt/DFIOpqzz.js +0 -1
- package/dist/client/_nuxt/DFQ4Xr-4.js +0 -1
- package/dist/client/_nuxt/DH4N8IuU.js +0 -1
- package/dist/client/_nuxt/DIt9OTko.js +0 -1
- package/dist/client/_nuxt/DMFdBl0X.js +0 -1
- package/dist/client/_nuxt/DNgb01dh.js +0 -1
- package/dist/client/_nuxt/DOAn35dn.js +0 -1
- package/dist/client/_nuxt/DPTZissz.js +0 -1
- package/dist/client/_nuxt/DQxx3LPD.js +0 -1
- package/dist/client/_nuxt/DRhUEtVu.js +0 -1
- package/dist/client/_nuxt/DUdzsfxe.js +0 -1
- package/dist/client/_nuxt/DVWcdiGS.js +0 -1
- package/dist/client/_nuxt/DWMP3yrW.js +0 -1
- package/dist/client/_nuxt/DZ4hUExO.js +0 -1
- package/dist/client/_nuxt/Db-JQHi3.js +0 -1
- package/dist/client/_nuxt/DepYB8Ml.js +0 -1
- package/dist/client/_nuxt/DhG9BCpW.js +0 -1
- package/dist/client/_nuxt/DhqJCFIX.js +0 -1
- package/dist/client/_nuxt/Dk1rBueR.js +0 -1
- package/dist/client/_nuxt/DkpUthgY.js +0 -1
- package/dist/client/_nuxt/DmF4-xLG.js +0 -1
- package/dist/client/_nuxt/DmZ-uG0V.js +0 -1
- package/dist/client/_nuxt/Dnfm4U7b.js +0 -1
- package/dist/client/_nuxt/DnyWjya5.js +0 -1
- package/dist/client/_nuxt/DqpEK-75.js +0 -1
- package/dist/client/_nuxt/DsCg8CPl.js +0 -1
- package/dist/client/_nuxt/DvA-6Bhw.js +0 -1
- package/dist/client/_nuxt/DvQyZZSe.js +0 -1
- package/dist/client/_nuxt/DwU8c_yx.js +0 -1
- package/dist/client/_nuxt/DzaHHFTY.js +0 -1
- package/dist/client/_nuxt/EZUUsui8.js +0 -1
- package/dist/client/_nuxt/F89DG-fP.js +0 -1
- package/dist/client/_nuxt/HNM5thJl.js +0 -1
- package/dist/client/_nuxt/IBB5Tl9j.js +0 -1
- package/dist/client/_nuxt/JJNjxVar.js +0 -1
- package/dist/client/_nuxt/KUYRHWK4.js +0 -1
- package/dist/client/_nuxt/Kxp7UmFj.js +0 -1
- package/dist/client/_nuxt/Lp17StYA.js +0 -1
- package/dist/client/_nuxt/NgWrSVUg.js +0 -1
- package/dist/client/_nuxt/W2lx4xae.js +0 -1
- package/dist/client/_nuxt/YurBl9Qv.js +0 -1
- package/dist/client/_nuxt/aeT0-ak7.js +0 -1
- package/dist/client/_nuxt/bGS5FTDY.js +0 -1
- package/dist/client/_nuxt/builds/meta/a089ef48-3edd-438e-9106-89949d355348.json +0 -1
- package/dist/client/_nuxt/error-404.LcFwT6vm.css +0 -1
- package/dist/client/_nuxt/error-500.DzDak7Sw.css +0 -1
- package/dist/client/_nuxt/gOa3Yz9U.js +0 -1
- package/dist/client/_nuxt/i22b9gbM.js +0 -1
- package/dist/client/_nuxt/mLcCfA0-.js +0 -1
- package/dist/client/_nuxt/plSVBvJQ.js +0 -1
- package/dist/client/_nuxt/rf8nNrOk.js +0 -1
- package/dist/client/_nuxt/spWmiL_5.js +0 -3834
- package/dist/client/_nuxt/u4bm_LMz.js +0 -1
- package/dist/client/_nuxt/vocl-2a6.js +0 -1
- package/dist/client/_nuxt/w1el_4yc.js +0 -1
- package/dist/client/_nuxt/xfgw03QH.js +0 -1
- package/dist/client/_nuxt/yLioyJ2E.js +0 -1
- /package/dist/runtime/assets/{Inter-400.ttf.base64 → Inter-normal-400.ttf.base64} +0 -0
- /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 {
|
|
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: '
|
|
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 {
|
|
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: '
|
|
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
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,
|
|
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
|
|
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 {
|
|
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((
|
|
553
|
-
addImports({ name
|
|
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 ${
|
|
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:${
|
|
681
|
+
f.key = `nuxt-og-image:fonts:${fontFileBase}.ttf.base64`;
|
|
668
682
|
} else {
|
|
669
|
-
logger.warn(`Failed to download font ${
|
|
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 ${
|
|
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 ${
|
|
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:${
|
|
686
|
-
await fontStorage.setItem(`${
|
|
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.
|
|
727
|
-
|
|
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
|
|
730
|
-
from: resolve(`./runtime/app/composables/${
|
|
745
|
+
name,
|
|
746
|
+
from: resolve(`./runtime/app/composables/${name}`)
|
|
731
747
|
});
|
|
732
|
-
nuxt.options.
|
|
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((
|
|
763
|
+
].forEach((name) => {
|
|
746
764
|
addComponent({
|
|
747
|
-
name
|
|
748
|
-
filePath: resolve(`./runtime/app/components/OgImage/${
|
|
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
|
|
813
|
-
return
|
|
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 ` '${
|
|
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
|
-
|
|
81
|
-
|
|
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
|
|
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
|
package/dist/runtime/pure.js
CHANGED
|
@@ -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.
|
|
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
|
|
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
|
|
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;
|