nuxt-og-image 4.1.5 → 4.2.0
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 +7 -7
- package/dist/client/404.html +7 -7
- package/dist/client/_nuxt/{-KRqNZ6N.js → B1rU9qc9.js} +1 -1
- package/dist/client/_nuxt/{CCJtj6wL.js → CR6b29do.js} +1 -1
- package/dist/client/_nuxt/DB-eawxJ.js +3978 -0
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/f64bec49-7895-4c1f-a389-207010cde98d.json +1 -0
- package/dist/client/_nuxt/error-404.E0OmbL_g.css +1 -0
- package/dist/client/_nuxt/error-500.CzRA7ALL.css +1 -0
- package/dist/client/index.html +7 -7
- package/dist/module.json +1 -1
- package/dist/runtime/server/og-image/context.js +14 -6
- package/package.json +11 -11
- package/dist/client/_nuxt/Da4II6Ro.js +0 -3977
- package/dist/client/_nuxt/builds/meta/03f87ee4-d949-4449-809e-3cf9919c9be8.json +0 -1
- package/dist/client/_nuxt/error-404.Cg-uDbSf.css +0 -1
- package/dist/client/_nuxt/error-500.CWOGVHgV.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"f64bec49-7895-4c1f-a389-207010cde98d","timestamp":1741171906781}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"f64bec49-7895-4c1f-a389-207010cde98d","timestamp":1741171906781,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-ae1408d5]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-ae1408d5]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-ae1408d5]{background-color:#ffffff4d}.gradient-border[data-v-ae1408d5]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-ae1408d5]{background-color:#1414144d}.gradient-border[data-v-ae1408d5]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-ae1408d5]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-ae1408d5]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-ae1408d5]{position:fixed}.left-0[data-v-ae1408d5]{left:0}.right-0[data-v-ae1408d5]{right:0}.z-10[data-v-ae1408d5]{z-index:10}.z-20[data-v-ae1408d5]{z-index:20}.grid[data-v-ae1408d5]{display:grid}.mb-16[data-v-ae1408d5]{margin-bottom:4rem}.mb-8[data-v-ae1408d5]{margin-bottom:2rem}.max-w-520px[data-v-ae1408d5]{max-width:520px}.min-h-screen[data-v-ae1408d5]{min-height:100vh}.w-full[data-v-ae1408d5]{width:100%}.flex[data-v-ae1408d5]{display:flex}.cursor-pointer[data-v-ae1408d5]{cursor:pointer}.place-content-center[data-v-ae1408d5]{place-content:center}.items-center[data-v-ae1408d5]{align-items:center}.justify-center[data-v-ae1408d5]{justify-content:center}.overflow-hidden[data-v-ae1408d5]{overflow:hidden}.bg-white[data-v-ae1408d5]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-ae1408d5]{padding-left:1rem;padding-right:1rem}.px-8[data-v-ae1408d5]{padding-left:2rem;padding-right:2rem}.py-2[data-v-ae1408d5]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-ae1408d5]{text-align:center}.text-8xl[data-v-ae1408d5]{font-size:6rem;line-height:1}.text-xl[data-v-ae1408d5]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-ae1408d5]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-ae1408d5]{font-weight:300}.font-medium[data-v-ae1408d5]{font-weight:500}.leading-tight[data-v-ae1408d5]{line-height:1.25}.font-sans[data-v-ae1408d5]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-ae1408d5]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-ae1408d5]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-ae1408d5]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-ae1408d5]{padding-left:0;padding-right:0}.sm\:px-6[data-v-ae1408d5]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-ae1408d5]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-ae1408d5]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-ae1408d5]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-d4af572a]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-d4af572a]{position:fixed}.-bottom-1\/2[data-v-d4af572a]{bottom:-50%}.left-0[data-v-d4af572a]{left:0}.right-0[data-v-d4af572a]{right:0}.grid[data-v-d4af572a]{display:grid}.mb-16[data-v-d4af572a]{margin-bottom:4rem}.mb-8[data-v-d4af572a]{margin-bottom:2rem}.h-1\/2[data-v-d4af572a]{height:50%}.max-w-520px[data-v-d4af572a]{max-width:520px}.min-h-screen[data-v-d4af572a]{min-height:100vh}.place-content-center[data-v-d4af572a]{place-content:center}.overflow-hidden[data-v-d4af572a]{overflow:hidden}.bg-white[data-v-d4af572a]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-d4af572a]{padding-left:2rem;padding-right:2rem}.text-center[data-v-d4af572a]{text-align:center}.text-8xl[data-v-d4af572a]{font-size:6rem;line-height:1}.text-xl[data-v-d4af572a]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-d4af572a]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-d4af572a]{font-weight:300}.font-medium[data-v-d4af572a]{font-weight:500}.leading-tight[data-v-d4af572a]{line-height:1.25}.font-sans[data-v-d4af572a]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-d4af572a]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-d4af572a]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-d4af572a]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-d4af572a]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-d4af572a]{font-size:2.25rem;line-height:2.5rem}}
|
package/dist/client/index.html
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
|
|
2
2
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
3
3
|
<link rel="stylesheet" href="/__nuxt-og-image/_nuxt/entry.BZSHFM_J.css" crossorigin>
|
|
4
|
-
<link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/
|
|
4
|
+
<link rel="modulepreload" as="script" crossorigin href="/__nuxt-og-image/_nuxt/DB-eawxJ.js">
|
|
5
5
|
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/CVO1_9PV.js">
|
|
6
6
|
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/D0r3Knsf.js">
|
|
7
7
|
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/DGRTSKzu.js">
|
|
8
8
|
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/DTAJTTim.js">
|
|
9
9
|
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/B6E6ObS_.js">
|
|
10
|
-
<link rel="prefetch" as="style" crossorigin href="/__nuxt-og-image/_nuxt/error-404.
|
|
11
|
-
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt
|
|
12
|
-
<link rel="prefetch" as="style" crossorigin href="/__nuxt-og-image/_nuxt/error-500.
|
|
13
|
-
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/
|
|
14
|
-
<script type="module" src="/__nuxt-og-image/_nuxt/
|
|
15
|
-
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-og-image",buildId:"
|
|
10
|
+
<link rel="prefetch" as="style" crossorigin href="/__nuxt-og-image/_nuxt/error-404.E0OmbL_g.css">
|
|
11
|
+
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/B1rU9qc9.js">
|
|
12
|
+
<link rel="prefetch" as="style" crossorigin href="/__nuxt-og-image/_nuxt/error-500.CzRA7ALL.css">
|
|
13
|
+
<link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/CR6b29do.js">
|
|
14
|
+
<script type="module" src="/__nuxt-og-image/_nuxt/DB-eawxJ.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1741171916542,false]</script>
|
|
15
|
+
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-og-image",buildId:"f64bec49-7895-4c1f-a389-207010cde98d",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/module.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { htmlPayloadCache, prerenderOptionsCache } from "#og-image-cache";
|
|
2
2
|
import { theme } from "#og-image-virtual/unocss-config.mjs";
|
|
3
|
+
import { useSiteConfig } from "#site-config/server/composables/useSiteConfig";
|
|
3
4
|
import { createSitePathResolver } from "#site-config/server/composables/utils";
|
|
4
5
|
import { createGenerator } from "@unocss/core";
|
|
5
6
|
import presetWind from "@unocss/preset-wind3";
|
|
@@ -17,13 +18,15 @@ import { logger } from "../util/logger.js";
|
|
|
17
18
|
import { normaliseOptions } from "../util/options.js";
|
|
18
19
|
import { useChromiumRenderer, useSatoriRenderer } from "./instances.js";
|
|
19
20
|
export function resolvePathCacheKey(e, path) {
|
|
20
|
-
const siteConfig = e
|
|
21
|
+
const siteConfig = useSiteConfig(e, {
|
|
22
|
+
resolveRefs: true
|
|
23
|
+
});
|
|
21
24
|
const basePath = withoutTrailingSlash(withoutLeadingSlash(normalizeKey(path)));
|
|
22
25
|
return [
|
|
23
26
|
!basePath || basePath === "/" ? "index" : basePath,
|
|
24
27
|
hash([
|
|
25
28
|
basePath,
|
|
26
|
-
siteConfig.url,
|
|
29
|
+
import.meta.prerender ? "" : siteConfig.url,
|
|
27
30
|
hash(getQuery(e))
|
|
28
31
|
])
|
|
29
32
|
].join(":");
|
|
@@ -136,7 +139,7 @@ export function extractAndNormaliseOgImageOptions(html) {
|
|
|
136
139
|
try {
|
|
137
140
|
const payload2 = parse(_payload);
|
|
138
141
|
Object.entries(payload2).forEach(([key, value]) => {
|
|
139
|
-
if (!value)
|
|
142
|
+
if (!value && value !== 0)
|
|
140
143
|
delete payload2[key];
|
|
141
144
|
});
|
|
142
145
|
options = payload2;
|
|
@@ -188,7 +191,7 @@ async function doFetchWithErrorHandling(fetch, path) {
|
|
|
188
191
|
return await doFetchWithErrorHandling(fetch, res.headers.get("location") || "");
|
|
189
192
|
}
|
|
190
193
|
errorDescription = `${res.status} redirected to ${res.headers.get("location") || "unknown"}`;
|
|
191
|
-
} else if (res.status >=
|
|
194
|
+
} else if (res.status >= 500) {
|
|
192
195
|
errorDescription = `${res.status} error: ${res.statusText}`;
|
|
193
196
|
}
|
|
194
197
|
if (errorDescription) {
|
|
@@ -197,7 +200,12 @@ async function doFetchWithErrorHandling(fetch, path) {
|
|
|
197
200
|
statusMessage: `[Nuxt OG Image] Failed to parse \`${path}\` for og-image extraction. ${errorDescription}`
|
|
198
201
|
})];
|
|
199
202
|
}
|
|
200
|
-
|
|
203
|
+
if (res._data) {
|
|
204
|
+
return [res._data, null];
|
|
205
|
+
} else if (res.text) {
|
|
206
|
+
return [await res.text(), null];
|
|
207
|
+
}
|
|
208
|
+
return ["", null];
|
|
201
209
|
}
|
|
202
210
|
async function fetchPathHtmlAndExtractOptions(e, path, key) {
|
|
203
211
|
const cachedHtmlPayload = await htmlPayloadCache.getItem(key);
|
|
@@ -229,7 +237,7 @@ async function fetchPathHtmlAndExtractOptions(e, path, key) {
|
|
|
229
237
|
if (!_payload) {
|
|
230
238
|
return createError({
|
|
231
239
|
statusCode: 500,
|
|
232
|
-
statusMessage: `[Nuxt OG Image] HTML response from ${path} is missing the #nuxt-og-image-options script tag.
|
|
240
|
+
statusMessage: `[Nuxt OG Image] HTML response from ${path} is missing the #nuxt-og-image-options script tag. Make sure you have defined an og image for this page.`
|
|
233
241
|
});
|
|
234
242
|
}
|
|
235
243
|
const payload = extractAndNormaliseOgImageOptions(html);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-og-image",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.2.0",
|
|
5
5
|
"description": "Enlightened OG Image generation for Nuxt.",
|
|
6
6
|
"author": {
|
|
7
7
|
"website": "https://harlanzw.com",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"unstorage": "^1.0.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@nuxt/devtools-kit": "2.1.
|
|
55
|
+
"@nuxt/devtools-kit": "2.1.3",
|
|
56
56
|
"@nuxt/kit": "^3.15.4",
|
|
57
57
|
"@resvg/resvg-js": "^2.6.2",
|
|
58
58
|
"@resvg/resvg-wasm": "^2.6.2",
|
|
@@ -65,18 +65,18 @@
|
|
|
65
65
|
"execa": "^9.5.2",
|
|
66
66
|
"image-size": "^2.0.0",
|
|
67
67
|
"magic-string": "^0.30.17",
|
|
68
|
-
"nuxt-site-config": "^3.1.
|
|
68
|
+
"nuxt-site-config": "^3.1.3",
|
|
69
69
|
"nypm": "^0.6.0",
|
|
70
70
|
"ofetch": "^1.4.1",
|
|
71
|
-
"ohash": "^2.0.
|
|
71
|
+
"ohash": "^2.0.11",
|
|
72
72
|
"pathe": "^2.0.3",
|
|
73
|
-
"pkg-types": "^2.
|
|
73
|
+
"pkg-types": "^2.1.0",
|
|
74
74
|
"playwright-core": "^1.50.1",
|
|
75
75
|
"radix3": "^1.1.2",
|
|
76
76
|
"satori": "^0.12.1",
|
|
77
77
|
"satori-html": "^0.3.2",
|
|
78
78
|
"sirv": "^3.0.1",
|
|
79
|
-
"std-env": "^3.8.
|
|
79
|
+
"std-env": "^3.8.1",
|
|
80
80
|
"strip-literal": "^3.0.0",
|
|
81
81
|
"ufo": "^1.5.4",
|
|
82
82
|
"unplugin": "^2.2.0",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"yoga-wasm-web": "^0.3.3"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
|
-
"@antfu/eslint-config": "^4.
|
|
87
|
+
"@antfu/eslint-config": "^4.5.1",
|
|
88
88
|
"@css-inline/css-inline": "^0.14.3",
|
|
89
89
|
"@headlessui/vue": "^1.7.23",
|
|
90
90
|
"@iconify-json/carbon": "^1.2.8",
|
|
@@ -94,12 +94,12 @@
|
|
|
94
94
|
"@iconify-json/tabler": "^1.2.16",
|
|
95
95
|
"@img/sharp-linux-x64": "0.33.5",
|
|
96
96
|
"@nuxt/content": "^3.2.2",
|
|
97
|
-
"@nuxt/devtools": "2.1.
|
|
98
|
-
"@nuxt/devtools-ui-kit": "2.1.
|
|
97
|
+
"@nuxt/devtools": "2.1.3",
|
|
98
|
+
"@nuxt/devtools-ui-kit": "2.1.3",
|
|
99
99
|
"@nuxt/icon": "^1.10.3",
|
|
100
100
|
"@nuxt/image": "^1.9.0",
|
|
101
101
|
"@nuxt/module-builder": "^0.8.4",
|
|
102
|
-
"@nuxt/test-utils": "3.17.
|
|
102
|
+
"@nuxt/test-utils": "3.17.1",
|
|
103
103
|
"@nuxt/ui": "^2.21.0",
|
|
104
104
|
"@nuxtjs/color-mode": "^3.5.2",
|
|
105
105
|
"@nuxtjs/eslint-config-typescript": "^12.1.0",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"@unocss/nuxt": "^66.0.0",
|
|
109
109
|
"@unocss/preset-icons": "^66.0.0",
|
|
110
110
|
"@unocss/runtime": "^66.0.0",
|
|
111
|
-
"@vueuse/nuxt": "^12.
|
|
111
|
+
"@vueuse/nuxt": "^12.8.0",
|
|
112
112
|
"bumpp": "^10.0.3",
|
|
113
113
|
"eslint": "9.21.0",
|
|
114
114
|
"jest-image-snapshot": "^6.4.0",
|