nuxt-og-image 1.0.0 → 1.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/README.md +9 -11
- package/dist/client/200.html +2 -2
- package/dist/client/404.html +2 -2
- package/dist/client/_nuxt/{Icon.65a4f5bf.js → Icon.8cbc5847.js} +1 -1
- package/dist/client/_nuxt/{entry.9b6fba4b.js → entry.df5ad46e.js} +2 -2
- package/dist/client/_nuxt/{error-404.67bc6c65.js → error-404.8c9bfe7d.js} +1 -1
- package/dist/client/_nuxt/{error-500.e3a6cf7c.js → error-500.cb171c6a.js} +1 -1
- package/dist/client/_nuxt/{error-component.6baa49ee.js → error-component.c6b1c57b.js} +2 -2
- package/dist/client/index.html +2 -2
- package/dist/module.json +2 -2
- package/dist/module.mjs +52 -27
- package/dist/runtime/nitro/providers/satori/index.mjs +2 -4
- package/dist/runtime/nitro/resvg/node.d.ts +3 -0
- package/dist/runtime/nitro/resvg/node.mjs +6 -0
- package/dist/runtime/nitro/resvg/wasm.d.ts +2 -0
- package/dist/runtime/nitro/resvg/wasm.mjs +31 -0
- package/package.json +8 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as n,v as a,o as r,l,x as e,t as s,y as d,z as c,A as p,B as f,C as x,D as h}from"./entry.
|
|
1
|
+
import{s as n,v as a,o as r,l,x as e,t as s,y as d,z as c,A as p,B as f,C as x,D as h}from"./entry.df5ad46e.js";const m=t=>(x("data-v-18337f8d"),t=t(),h(),t),u={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},g=m(()=>e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),_={class:"max-w-520px text-center z-20"},b=["textContent"],y=["textContent"],w={class:"w-full flex items-center justify-center"},S={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const o=t;return a({title:`${o.statusCode} - ${o.statusMessage} | ${o.appName}`,script:[],style:[{children:'*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}a{color:inherit;text-decoration:inherit}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;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";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}'}]}),(k,v)=>{const i=p;return r(),l("div",u,[g,e("div",_,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:s(t.statusCode)},null,8,b),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:s(t.description)},null,8,y),e("div",w,[d(i,{to:"/",class:"gradient-border text-md sm:text-xl py-2 px-4 sm:py-3 sm:px-6 cursor-pointer"},{default:c(()=>[f(s(t.backHome),1)]),_:1})])])])}}},z=n(S,[["__scopeId","data-v-18337f8d"]]);export{z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as i,v as a,o as r,l as n,x as e,t as s,C as l,D as d}from"./entry.
|
|
1
|
+
import{s as i,v as a,o as r,l as n,x as e,t as s,C as l,D as d}from"./entry.df5ad46e.js";const c=t=>(l("data-v-428e244b"),t=t(),d(),t),p={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},h=c(()=>e("div",{class:"fixed -bottom-1/2 left-0 right-0 h-1/2 spotlight"},null,-1)),f={class:"max-w-520px text-center"},g=["textContent"],m=["textContent"],x={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const o=t;return a({title:`${o.statusCode} - ${o.statusMessage} | ${o.appName}`,script:[],style:[{children:'*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;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";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}'}]}),(b,u)=>(r(),n("div",p,[h,e("div",f,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:s(t.statusCode)},null,8,g),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:s(t.description)},null,8,m)])]))}},w=i(x,[["__scopeId","data-v-428e244b"]]);export{w as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{d as n,_ as o,o as _,c as f,n as g,g as E,u as r}from"./entry.
|
|
1
|
+
import{d as n,_ as o,o as _,c as f,n as g,g as E,u as r}from"./entry.df5ad46e.js";const k={__name:"nuxt-error-page",props:{error:Object},setup(t){(t.error.stack||"").split(`
|
|
2
2
|
`).splice(1).map(e=>({text:e.replace("webpack:/","").replace(".vue",".js").trim(),internal:e.includes("node_modules")&&!e.includes(".cache")||e.includes("internal")||e.includes("new Promise")})).map(e=>`<span class="stack${e.internal?" internal":""}">${e.text}</span>`).join(`
|
|
3
|
-
`);const s=Number(t.error.statusCode||500),a=s===404,c=t.error.statusMessage??(a?"Page Not Found":"Internal Server Error"),u=t.error.message||t.error.toString(),i=void 0,d=n(()=>o(()=>import("./error-404.
|
|
3
|
+
`);const s=Number(t.error.statusCode||500),a=s===404,c=t.error.statusMessage??(a?"Page Not Found":"Internal Server Error"),u=t.error.message||t.error.toString(),i=void 0,d=n(()=>o(()=>import("./error-404.8c9bfe7d.js"),["./error-404.8c9bfe7d.js","./entry.df5ad46e.js","./entry.dc5450bf.css","./error-404.68aa58b4.css"],import.meta.url).then(e=>e.default||e)),l=n(()=>o(()=>import("./error-500.cb171c6a.js"),["./error-500.cb171c6a.js","./entry.df5ad46e.js","./entry.dc5450bf.css","./error-500.dc5710d1.css"],import.meta.url).then(e=>e.default||e)),m=a?d:l;return(e,p)=>(_(),f(r(m),g(E({statusCode:r(s),statusMessage:r(c),description:r(u),stack:r(i)})),null,16))}},v=k;export{v as default};
|
package/dist/client/index.html
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html >
|
|
3
3
|
<head><meta charset="utf-8">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_og_image__/client/_nuxt/entry.
|
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_og_image__/client/_nuxt/entry.df5ad46e.js"><link rel="preload" as="style" href="/__nuxt_og_image__/client/_nuxt/entry.dc5450bf.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_og_image__/client/_nuxt/error-component.c6b1c57b.js"><link rel="stylesheet" href="/__nuxt_og_image__/client/_nuxt/entry.dc5450bf.css"><script>"use strict";const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"system";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
|
|
5
5
|
</script></head>
|
|
6
|
-
<body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{},app:{baseURL:"\u002F__nuxt_og_image__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_og_image__/client/_nuxt/entry.
|
|
6
|
+
<body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{},app:{baseURL:"\u002F__nuxt_og_image__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_og_image__/client/_nuxt/entry.df5ad46e.js" crossorigin></script></body>
|
|
7
7
|
</html>
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { existsSync } from 'fs';
|
|
3
|
-
import { useNuxt, addTemplate, defineNuxtModule, createResolver,
|
|
3
|
+
import { useNuxt, addTemplate, defineNuxtModule, createResolver, addServerHandler, addImports, addComponent } from '@nuxt/kit';
|
|
4
4
|
import { execa } from 'execa';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import defu from 'defu';
|
|
@@ -10,6 +10,7 @@ import { resolve, relative } from 'pathe';
|
|
|
10
10
|
import { tinyws } from 'tinyws';
|
|
11
11
|
import sirv from 'sirv';
|
|
12
12
|
import { copy } from 'fs-extra';
|
|
13
|
+
import { provider } from 'std-env';
|
|
13
14
|
import { createBirpcGroup } from 'birpc';
|
|
14
15
|
import { stringify, parse } from 'flatted';
|
|
15
16
|
|
|
@@ -58,24 +59,6 @@ async function screenshot(browser, url, options) {
|
|
|
58
59
|
return await page.screenshot();
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
function exposeConfig(alias, filename, config) {
|
|
62
|
-
const exports = Object.entries(config).map(([k, v]) => `export const ${k} = ${JSON.stringify(v)}`).join("\n");
|
|
63
|
-
useNuxt().options.alias[alias] = addTemplate({
|
|
64
|
-
filename,
|
|
65
|
-
getContents: () => exports
|
|
66
|
-
}).dst;
|
|
67
|
-
useNuxt().hooks.hook("nitro:config", (nitroConfig) => {
|
|
68
|
-
nitroConfig.virtual[alias] = exports;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
function extractOgImageOptions(html) {
|
|
72
|
-
const options = html.match(/<script id="nuxt-og-image-options" type="application\/json">(.+?)<\/script>/)?.[1];
|
|
73
|
-
return options ? JSON.parse(options) : false;
|
|
74
|
-
}
|
|
75
|
-
function stripOgImageOptions(html) {
|
|
76
|
-
return html.replace(/<script id="nuxt-og-image-options" type="application\/json">(.*?)<\/script>/, "");
|
|
77
|
-
}
|
|
78
|
-
|
|
79
62
|
function setupPlaygroundRPC(nuxt, config) {
|
|
80
63
|
const serverFunctions = {
|
|
81
64
|
getConfig() {
|
|
@@ -158,6 +141,48 @@ function getBodyJson(req) {
|
|
|
158
141
|
});
|
|
159
142
|
}
|
|
160
143
|
|
|
144
|
+
function exposeModuleConfig(moduleName, config) {
|
|
145
|
+
const nuxt = useNuxt();
|
|
146
|
+
const jsExports = Object.entries(config).map(([k, v]) => `export const ${k} = ${JSON.stringify(v)}`).join("\n");
|
|
147
|
+
const alias = `#${moduleName}/config`;
|
|
148
|
+
nuxt.options.alias[alias] = addTemplate({
|
|
149
|
+
filename: `modules/config/${moduleName}.mjs`,
|
|
150
|
+
getContents: () => jsExports
|
|
151
|
+
}).dst;
|
|
152
|
+
nuxt.hooks.hook("nitro:config", (nitroConfig) => {
|
|
153
|
+
nitroConfig.virtual[alias] = jsExports;
|
|
154
|
+
});
|
|
155
|
+
const typeDefName = `modules/config/${moduleName}.d.ts`;
|
|
156
|
+
const tsExports = Object.keys(config).map((k) => {
|
|
157
|
+
if (nuxt.options.dev)
|
|
158
|
+
return ` export const ${k}: ${JSON.stringify(config[k])} | ModuleOptions['${k}']`;
|
|
159
|
+
return ` export const ${k}: ModuleOptions['${k}']`;
|
|
160
|
+
}).join("\n");
|
|
161
|
+
addTemplate({
|
|
162
|
+
filename: typeDefName,
|
|
163
|
+
getContents: () => {
|
|
164
|
+
return `// generated by ${moduleName}
|
|
165
|
+
import type { ModuleOptions } from '${moduleName}'
|
|
166
|
+
declare module '${alias}' {
|
|
167
|
+
${tsExports}
|
|
168
|
+
}
|
|
169
|
+
`;
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
nuxt.hooks.hook("prepare:types", ({ references }) => {
|
|
173
|
+
references.push({ path: resolve(nuxt.options.buildDir, typeDefName) });
|
|
174
|
+
});
|
|
175
|
+
return alias;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function extractOgImageOptions(html) {
|
|
179
|
+
const options = html.match(/<script id="nuxt-og-image-options" type="application\/json">(.+?)<\/script>/)?.[1];
|
|
180
|
+
return options ? JSON.parse(options) : false;
|
|
181
|
+
}
|
|
182
|
+
function stripOgImageOptions(html) {
|
|
183
|
+
return html.replace(/<script id="nuxt-og-image-options" type="application\/json">(.*?)<\/script>/, "");
|
|
184
|
+
}
|
|
185
|
+
|
|
161
186
|
const PATH = "/__nuxt_og_image__";
|
|
162
187
|
const PATH_ENTRY = `${PATH}/entry`;
|
|
163
188
|
const PATH_PLAYGROUND = `${PATH}/client`;
|
|
@@ -165,7 +190,7 @@ const module = defineNuxtModule({
|
|
|
165
190
|
meta: {
|
|
166
191
|
name: "nuxt-og-image",
|
|
167
192
|
compatibility: {
|
|
168
|
-
nuxt: "^3.
|
|
193
|
+
nuxt: "^3.1.0",
|
|
169
194
|
bridge: false
|
|
170
195
|
},
|
|
171
196
|
configKey: "ogImage"
|
|
@@ -195,11 +220,7 @@ const module = defineNuxtModule({
|
|
|
195
220
|
return resolve(`../dist/${p}`);
|
|
196
221
|
};
|
|
197
222
|
nuxt.options.experimental.componentIslands = true;
|
|
198
|
-
const isEdge = (process.env.NITRO_PRESET || "").includes("edge");
|
|
199
|
-
const hasIslandSupport = getNuxtVersion(nuxt) !== "3.0.0";
|
|
200
|
-
const logger = useLogger("nuxt-og-image");
|
|
201
|
-
if (!hasIslandSupport)
|
|
202
|
-
logger.warn("You are using Nuxt 3.0.0 with `nuxt-og-image`, which only supports screenshots.\nPlease upgrade to Nuxt 3.0.1 or the edge channel: https://nuxt.com/docs/guide/going-further/edge-channel.");
|
|
223
|
+
const isEdge = provider === "stackblitz" || (process.env.NITRO_PRESET || "").includes("edge");
|
|
203
224
|
addTemplate({
|
|
204
225
|
filename: "nuxt-og-image.d.ts",
|
|
205
226
|
getContents: () => {
|
|
@@ -265,7 +286,7 @@ export {}
|
|
|
265
286
|
nuxt.options.build.transpile.push(runtimeDir);
|
|
266
287
|
const fontDir = resolve(nuxt.options.buildDir, "nuxt-og-image");
|
|
267
288
|
const publicDirs = [`${nuxt.options.rootDir}/public`, fontDir];
|
|
268
|
-
|
|
289
|
+
exposeModuleConfig("nuxt-og-image", { ...config, publicDirs });
|
|
269
290
|
nuxt.hooks.hook("build:before", async () => {
|
|
270
291
|
await copy(resolve("./runtime/public"), resolve(nuxt.options.buildDir, "nuxt-og-image"));
|
|
271
292
|
});
|
|
@@ -275,7 +296,11 @@ export {}
|
|
|
275
296
|
});
|
|
276
297
|
nitroConfig.publicAssets = nitroConfig.publicAssets || [];
|
|
277
298
|
nitroConfig.publicAssets.push({ dir: fontDir, maxAge: 31536e3 });
|
|
278
|
-
|
|
299
|
+
if (isEdge && config.experimentalNitroBrowser)
|
|
300
|
+
nitroConfig.virtual["#nuxt-og-image/browser"] = `export { createBrowser } from '${runtimeDir}/nitro/browsers/${isEdge ? "lambda" : "default"}'`;
|
|
301
|
+
else
|
|
302
|
+
nitroConfig.virtual["#nuxt-og-image/browser"] = `export { createBrowser } from '${runtimeDir}/nitro/browsers/default'`;
|
|
303
|
+
nitroConfig.virtual["#nuxt-og-image/resvg"] = `import resvg from '${runtimeDir}/nitro/resvg/${isEdge ? "wasm" : "node"}'; export { resvg }`;
|
|
279
304
|
nitroConfig.virtual["#nuxt-og-image/provider"] = `
|
|
280
305
|
import satori from '${runtimeDir}/nitro/providers/satori'
|
|
281
306
|
import browser from '${runtimeDir}/nitro/providers/browser'
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { html as convertHtmlToSatori } from "satori-html";
|
|
2
2
|
import satori from "satori";
|
|
3
3
|
import { parseURL } from "ufo";
|
|
4
|
-
import { Resvg } from "@resvg/resvg-js";
|
|
5
4
|
import twemoji from "twemoji";
|
|
6
5
|
import { loadFont, walkSatoriTree } from "./utils.mjs";
|
|
7
6
|
import imageSrc from "./plugins/imageSrc.mjs";
|
|
@@ -9,13 +8,12 @@ import twClasses from "./plugins/twClasses.mjs";
|
|
|
9
8
|
import flex from "./plugins/flex.mjs";
|
|
10
9
|
import emojis from "./plugins/emojis.mjs";
|
|
11
10
|
import { fonts, satoriOptions } from "#nuxt-og-image/config";
|
|
11
|
+
import { resvg } from "#nuxt-og-image/resvg";
|
|
12
12
|
export default {
|
|
13
13
|
name: "satori",
|
|
14
14
|
createPng: async function createPng(baseUrl, options) {
|
|
15
15
|
const svg = await this.createSvg(baseUrl, options);
|
|
16
|
-
|
|
17
|
-
const pngData = resvg.render();
|
|
18
|
-
return pngData.asPng();
|
|
16
|
+
return resvg(svg, options);
|
|
19
17
|
},
|
|
20
18
|
createVNode: async function createVNode(baseUrl, options) {
|
|
21
19
|
const url = parseURL(baseUrl);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Resvg, initWasm } from "@resvg/resvg-wasm";
|
|
2
|
+
import { resolvePath } from "mlly";
|
|
3
|
+
import { dirname, join } from "pathe";
|
|
4
|
+
import { $fetch } from "ofetch";
|
|
5
|
+
let wasm = null;
|
|
6
|
+
async function useResvgWasm() {
|
|
7
|
+
if (wasm)
|
|
8
|
+
return wasm;
|
|
9
|
+
try {
|
|
10
|
+
const path = join(
|
|
11
|
+
dirname(await resolvePath("@resvg/resvg-wasm")),
|
|
12
|
+
"index_bg.wasm"
|
|
13
|
+
);
|
|
14
|
+
const fs = await import("node:fs/promises");
|
|
15
|
+
wasm = await fs.readFile(path);
|
|
16
|
+
} catch (e) {
|
|
17
|
+
wasm = await $fetch("https://unpkg.com/@resvg/resvg-wasm/index_bg.wasm", {
|
|
18
|
+
responseType: "arrayBuffer"
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return wasm;
|
|
22
|
+
}
|
|
23
|
+
export default async function(svg, options) {
|
|
24
|
+
const resvgWasm = await useResvgWasm();
|
|
25
|
+
if (!resvgWasm)
|
|
26
|
+
return false;
|
|
27
|
+
await initWasm(resvgWasm);
|
|
28
|
+
const resvg = new Resvg(svg, options);
|
|
29
|
+
const pngData = resvg.render();
|
|
30
|
+
return pngData.asPng();
|
|
31
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-og-image",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"packageManager": "pnpm@7.8.0",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://github.com/sponsors/harlan-zw",
|
|
@@ -26,13 +26,14 @@
|
|
|
26
26
|
"dist"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@nuxt/kit": "3.
|
|
29
|
+
"@nuxt/kit": "3.1.0",
|
|
30
30
|
"@resvg/resvg-js": "^2.2.0",
|
|
31
|
+
"@resvg/resvg-wasm": "^2.2.0",
|
|
31
32
|
"@types/fs-extra": "^11.0.1",
|
|
32
33
|
"birpc": "^0.2.3",
|
|
33
34
|
"chalk": "^5.2.0",
|
|
34
35
|
"chrome-launcher": "^0.15.1",
|
|
35
|
-
"defu": "^6.1.
|
|
36
|
+
"defu": "^6.1.2",
|
|
36
37
|
"execa": "^6.1.0",
|
|
37
38
|
"fast-glob": "^3.2.12",
|
|
38
39
|
"flatted": "^3.2.7",
|
|
@@ -45,22 +46,22 @@
|
|
|
45
46
|
"satori": "^0.1.1",
|
|
46
47
|
"satori-html": "^0.3.2",
|
|
47
48
|
"sirv": "^2.0.2",
|
|
49
|
+
"std-env": "^3.3.1",
|
|
48
50
|
"tinyws": "^0.1.0",
|
|
49
51
|
"twemoji": "^14.0.2",
|
|
50
52
|
"ufo": "^1.0.1"
|
|
51
53
|
},
|
|
52
54
|
"devDependencies": {
|
|
53
55
|
"@antfu/eslint-config": "^0.34.1",
|
|
54
|
-
"@nuxt/kit": "3.0.0",
|
|
55
56
|
"@nuxt/module-builder": "^0.2.1",
|
|
56
|
-
"@nuxt/test-utils": "3.
|
|
57
|
+
"@nuxt/test-utils": "3.1.0",
|
|
57
58
|
"@nuxtjs/eslint-config-typescript": "^12.0.0",
|
|
58
59
|
"@types/ws": "^8.5.4",
|
|
59
60
|
"bumpp": "^8.2.1",
|
|
60
61
|
"eslint": "8.32.0",
|
|
61
62
|
"nuxt": "npm:nuxt3@latest",
|
|
62
|
-
"puppeteer": "^19.
|
|
63
|
-
"vitest": "^0.
|
|
63
|
+
"puppeteer": "^19.6.0",
|
|
64
|
+
"vitest": "^0.28.1"
|
|
64
65
|
},
|
|
65
66
|
"scripts": {
|
|
66
67
|
"build": "pnpm dev:prepare && pnpm build:module && pnpm build:client",
|