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.
@@ -1 +1 @@
1
- {"id":"03f87ee4-d949-4449-809e-3cf9919c9be8","timestamp":1740816812278}
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}}
@@ -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/Da4II6Ro.js">
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.Cg-uDbSf.css">
11
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/-KRqNZ6N.js">
12
- <link rel="prefetch" as="style" crossorigin href="/__nuxt-og-image/_nuxt/error-500.CWOGVHgV.css">
13
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-og-image/_nuxt/CCJtj6wL.js">
14
- <script type="module" src="/__nuxt-og-image/_nuxt/Da4II6Ro.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},1740816822146,false]</script>
15
- <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-og-image",buildId:"03f87ee4-d949-4449-809e-3cf9919c9be8",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
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
@@ -5,7 +5,7 @@
5
5
  "bridge": false
6
6
  },
7
7
  "configKey": "ogImage",
8
- "version": "4.1.4",
8
+ "version": "4.1.6",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "0.8.4",
11
11
  "unbuild": "2.0.0"
@@ -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.context.siteConfig.get();
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 >= 400) {
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
- return [res._data || await res.text(), null];
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. Check you have used defined an og image for this page.`
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.1.5",
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.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.1",
68
+ "nuxt-site-config": "^3.1.3",
69
69
  "nypm": "^0.6.0",
70
70
  "ofetch": "^1.4.1",
71
- "ohash": "^2.0.7",
71
+ "ohash": "^2.0.11",
72
72
  "pathe": "^2.0.3",
73
- "pkg-types": "^2.0.0",
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.0",
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.3.0",
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.1",
98
- "@nuxt/devtools-ui-kit": "2.1.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.0",
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.7.0",
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",