nuxt-og-image 3.0.0-rc.52 → 3.0.0-rc.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +1 -9
  2. package/dist/client/200.html +117 -93
  3. package/dist/client/404.html +117 -93
  4. package/dist/client/_nuxt/{a72dLM4M.js → 8m94Rtva.js} +1 -1
  5. package/dist/client/_nuxt/B3g-KkBK.js +1 -0
  6. package/dist/client/_nuxt/B6E6ObS_.js +8 -0
  7. package/dist/client/_nuxt/{B6nY7VDA.js → B6bHXiXE.js} +1 -1
  8. package/dist/client/_nuxt/B7rNE5kf.js +1 -0
  9. package/dist/client/_nuxt/BEjL32p1.js +5754 -0
  10. package/dist/client/_nuxt/BJn7Ek5W.js +1 -0
  11. package/dist/client/_nuxt/BVGdgKAv.js +1 -0
  12. package/dist/client/_nuxt/{wORFcijT.js → BXR915QZ.js} +1 -1
  13. package/dist/client/_nuxt/{DCj4DH6i.js → BYdKNJ10.js} +1 -1
  14. package/dist/client/_nuxt/BZfs-ost.js +1 -0
  15. package/dist/client/_nuxt/{DCdPDLy4.js → BacI6-DX.js} +1 -1
  16. package/dist/client/_nuxt/{DCk2z-Tu.js → BdfWgkoX.js} +1 -1
  17. package/dist/client/_nuxt/Bfj2ThZ4.js +3 -0
  18. package/dist/client/_nuxt/{D6NljDpC.js → BigF1UXR.js} +1 -1
  19. package/dist/client/_nuxt/Bj0fF4lQ.js +1 -0
  20. package/dist/client/_nuxt/BmSZh3NL.js +1 -0
  21. package/dist/client/_nuxt/{A1WiD9SJ.js → Br6ll-O0.js} +1 -1
  22. package/dist/client/_nuxt/BscxmKrE.js +8 -0
  23. package/dist/client/_nuxt/BvCdDh2R.js +1 -0
  24. package/dist/client/_nuxt/BwXNTs7T.js +1 -0
  25. package/dist/client/_nuxt/{DggdVF2v.js → Bxkoe-BC.js} +1 -1
  26. package/dist/client/_nuxt/C3qJFuQy.js +3 -0
  27. package/dist/client/_nuxt/C3qUB5O8.js +301 -0
  28. package/dist/client/_nuxt/C6XIsc4F.js +1 -0
  29. package/dist/client/_nuxt/CA9nliXM.js +1 -0
  30. package/dist/client/_nuxt/{BsfQk1vf.js → CEfge3mM.js} +1 -1
  31. package/dist/client/_nuxt/CGmujMTu.js +1 -0
  32. package/dist/client/_nuxt/{CQTpvb7m.js → CHCTrc3a.js} +1 -1
  33. package/dist/client/_nuxt/{B9E_xdxs.js → CNkYXcD4.js} +1 -1
  34. package/dist/client/_nuxt/CO5hpdkB.js +1 -0
  35. package/dist/client/_nuxt/{DsudziMp.js → COIrKlfF.js} +1 -1
  36. package/dist/client/_nuxt/{DZ3fVoEH.js → CSPeAESR.js} +1 -1
  37. package/dist/client/_nuxt/C_ZPRiAj.js +26 -0
  38. package/dist/client/_nuxt/{DCAtC51B.js → CarfVElc.js} +1 -1
  39. package/dist/client/_nuxt/{BgBwMnrY.js → CcYwH0AH.js} +1 -1
  40. package/dist/client/_nuxt/Cgl53LJQ.js +1 -0
  41. package/dist/client/_nuxt/{RgJsN3zu.js → ChMCFiS0.js} +1 -1
  42. package/dist/client/_nuxt/CiRxTSAc.js +1 -0
  43. package/dist/client/_nuxt/Cp2HGa90.js +353 -0
  44. package/dist/client/_nuxt/CpAANOdC.js +1 -0
  45. package/dist/client/_nuxt/{DfUNg_8t.js → CqYeW6XZ.js} +1 -1
  46. package/dist/client/_nuxt/{CL7Ixq1B.js → CrgTADc5.js} +1 -1
  47. package/dist/client/_nuxt/CuJfdYLG.js +1 -0
  48. package/dist/client/_nuxt/D71BffLY.js +1 -0
  49. package/dist/client/_nuxt/DAP_O-zg.js +1 -0
  50. package/dist/client/_nuxt/DAfrLhwG.js +1 -0
  51. package/dist/client/_nuxt/{7fd6vGzb.js → DBeuZS66.js} +1 -1
  52. package/dist/client/_nuxt/{CRWwmX0L.js → DCjyzNN-.js} +1 -1
  53. package/dist/client/_nuxt/{Bd7iooY8.js → DGDuLtS6.js} +1 -1
  54. package/dist/client/_nuxt/{DIr-ordK.js → DGEpfOTx.js} +1 -1
  55. package/dist/client/_nuxt/{j8KhMG0x.js → DGxQkqYo.js} +1 -1
  56. package/dist/client/_nuxt/DKb4lQY2.js +1 -0
  57. package/dist/client/_nuxt/DOHBU7tp.js +1 -0
  58. package/dist/client/_nuxt/{CUVblut_.js → DR5YgmI2.js} +1 -1
  59. package/dist/client/_nuxt/DS9ZWoKD.js +1 -0
  60. package/dist/client/_nuxt/{D-pQtGOP.js → DVLwECkk.js} +1 -1
  61. package/dist/client/_nuxt/{gCeFpf9t.js → DZD3AlMl.js} +1 -1
  62. package/dist/client/_nuxt/DZLoTQm4.js +1 -0
  63. package/dist/client/_nuxt/{ZQC2c-5V.js → D_T9yQUo.js} +3 -3
  64. package/dist/client/_nuxt/Dd6f7Z5P.js +1 -0
  65. package/dist/client/_nuxt/Dit6kIrv.js +11 -0
  66. package/dist/client/_nuxt/{DXpYegZJ.js → Djqq6n-7.js} +1 -1
  67. package/dist/client/_nuxt/Dkb1Nx48.js +1 -0
  68. package/dist/client/_nuxt/{DywwDckn.js → Du6_OKDb.js} +1 -1
  69. package/dist/client/_nuxt/FJDVp-XM.js +1 -0
  70. package/dist/client/_nuxt/{IHMnEr_d.js → G-Jz5hiA.js} +1 -1
  71. package/dist/client/_nuxt/HFCcX1lU.js +131 -0
  72. package/dist/client/_nuxt/HrnDn_2Q.js +1 -0
  73. package/dist/client/_nuxt/IconCSS.MLh-peQH.css +1 -0
  74. package/dist/client/_nuxt/{CPHkTjfH.js → JgH_6NEN.js} +1 -1
  75. package/dist/client/_nuxt/KPqz0Sb3.js +1 -0
  76. package/dist/client/_nuxt/Ksn5IXup.js +1 -0
  77. package/dist/client/_nuxt/{wPLeKH6q.js → Lpdzc9s2.js} +1 -1
  78. package/dist/client/_nuxt/MS3qTAOR.js +1 -0
  79. package/dist/client/_nuxt/{BILqrcpa.js → YdT6Gj0u.js} +1 -1
  80. package/dist/client/_nuxt/alpzPJ78.js +1 -0
  81. package/dist/client/_nuxt/builds/latest.json +1 -1
  82. package/dist/client/_nuxt/builds/meta/ce5d759a-31b3-43b6-b457-16195d8e8276.json +1 -0
  83. package/dist/client/_nuxt/{Bdb36Id5.js → dIHJ9UdL.js} +1 -1
  84. package/dist/client/_nuxt/entry.DVnILh1U.css +1 -0
  85. package/dist/client/_nuxt/error-404.DEDgGDo3.css +1 -0
  86. package/dist/client/_nuxt/error-500.D8jWTpMJ.css +1 -0
  87. package/dist/client/_nuxt/{DwCYcAX8.js → kb-FbsIp.js} +1 -1
  88. package/dist/client/_nuxt/o8H-iTt6.js +6 -0
  89. package/dist/client/_nuxt/{doGI2cFk.js → wKgfcFVx.js} +1 -1
  90. package/dist/client/_nuxt/xtV5iK4E.js +1 -0
  91. package/dist/client/_nuxt/zhgf4ixb.js +40 -0
  92. package/dist/client/index.html +117 -93
  93. package/dist/module.d.mts +2 -106
  94. package/dist/module.d.ts +2 -106
  95. package/dist/module.json +6 -2
  96. package/dist/module.mjs +12 -6
  97. package/dist/runtime/nitro/og-image/bindings/chromium/{on-demand.mjs → on-demand.js} +1 -2
  98. package/dist/runtime/nitro/og-image/bindings/css-inline/{wasm-fs.mjs → wasm-fs.js} +1 -1
  99. package/dist/runtime/nitro/og-image/bindings/resvg/{wasm-fs.mjs → wasm-fs.js} +1 -1
  100. package/dist/runtime/nitro/og-image/bindings/satori/{wasm-fs.mjs → wasm-fs.js} +1 -1
  101. package/dist/runtime/nitro/og-image/cache.d.ts +1 -1
  102. package/dist/runtime/nitro/og-image/chromium/renderer.d.ts +1 -1
  103. package/dist/runtime/nitro/og-image/chromium/{renderer.mjs → renderer.js} +1 -1
  104. package/dist/runtime/nitro/og-image/chromium/screenshot.d.ts +1 -1
  105. package/dist/runtime/nitro/og-image/chromium/{screenshot.mjs → screenshot.js} +1 -1
  106. package/dist/runtime/nitro/og-image/context.d.ts +1 -1
  107. package/dist/runtime/nitro/og-image/{context.mjs → context.js} +6 -5
  108. package/dist/runtime/nitro/og-image/satori/font.d.ts +2 -2
  109. package/dist/runtime/nitro/og-image/satori/{font.mjs → font.js} +11 -5
  110. package/dist/runtime/nitro/og-image/satori/instances.d.ts +4 -2
  111. package/dist/runtime/nitro/og-image/satori/plugins/{classes.mjs → classes.js} +3 -3
  112. package/dist/runtime/nitro/og-image/satori/plugins/{emojis.mjs → emojis.js} +2 -2
  113. package/dist/runtime/nitro/og-image/satori/plugins/{encoding.mjs → encoding.js} +4 -4
  114. package/dist/runtime/nitro/og-image/satori/plugins/{flex.mjs → flex.js} +2 -2
  115. package/dist/runtime/nitro/og-image/satori/plugins/imageSrc.js +85 -0
  116. package/dist/runtime/nitro/og-image/satori/plugins/{unocss.mjs → unocss.js} +1 -1
  117. package/dist/runtime/nitro/og-image/satori/renderer.d.ts +1 -1
  118. package/dist/runtime/nitro/og-image/satori/{renderer.mjs → renderer.js} +4 -4
  119. package/dist/runtime/nitro/og-image/satori/transforms/emojis.d.ts +2 -2
  120. package/dist/runtime/nitro/og-image/satori/transforms/inlineCss.d.ts +1 -1
  121. package/dist/runtime/nitro/og-image/satori/transforms/{inlineCss.mjs → inlineCss.js} +2 -2
  122. package/dist/runtime/nitro/og-image/satori/utils.d.ts +2 -2
  123. package/dist/runtime/nitro/og-image/satori/{utils.mjs → utils.js} +9 -5
  124. package/dist/runtime/nitro/og-image/satori/vnodes.d.ts +1 -1
  125. package/dist/runtime/nitro/og-image/satori/{vnodes.mjs → vnodes.js} +16 -14
  126. package/dist/runtime/nitro/og-image/templates/html.d.ts +1 -1
  127. package/dist/runtime/nitro/og-image/templates/{html.mjs → html.js} +3 -3
  128. package/dist/runtime/nitro/plugins/nuxt-content.d.ts +1 -1
  129. package/dist/runtime/nitro/plugins/{nuxt-content.mjs → nuxt-content.js} +1 -1
  130. package/dist/runtime/nitro/plugins/prerender.d.ts +1 -1
  131. package/dist/runtime/nitro/plugins/{prerender.mjs → prerender.js} +4 -4
  132. package/dist/runtime/nitro/routes/{debug.json.mjs → debug.json.js} +1 -1
  133. package/dist/runtime/nitro/routes/{font.mjs → font.js} +1 -1
  134. package/dist/runtime/nitro/routes/{image.mjs → image.js} +4 -4
  135. package/dist/runtime/nitro/util/cache.d.ts +0 -10
  136. package/dist/runtime/nitro/util/{cache.mjs → cache.js} +2 -1
  137. package/dist/runtime/nitro/util/{encoding.mjs → encoding.js} +1 -1
  138. package/dist/runtime/nuxt/components/OgImage/OgImage.d.ts +1 -1
  139. package/dist/runtime/nuxt/components/OgImage/OgImageScreenshot.d.ts +1 -1
  140. package/dist/runtime/nuxt/components/Templates/Community/NuxtSeo.vue +1 -1
  141. package/dist/runtime/nuxt/composables/defineOgImage.d.ts +1 -1
  142. package/dist/runtime/nuxt/composables/{defineOgImage.mjs → defineOgImage.js} +3 -3
  143. package/dist/runtime/nuxt/composables/defineOgImageComponent.d.ts +1 -1
  144. package/dist/runtime/nuxt/composables/{defineOgImageComponent.mjs → defineOgImageComponent.js} +1 -1
  145. package/dist/runtime/nuxt/composables/defineOgImageScreenshot.d.ts +2 -2
  146. package/dist/runtime/nuxt/plugins/og-image-canonical-urls.server.d.ts +1 -1
  147. package/dist/runtime/nuxt/plugins/{og-image-canonical-urls.server.mjs → og-image-canonical-urls.server.js} +1 -1
  148. package/dist/runtime/nuxt/plugins/route-rule-og-image.server.d.ts +1 -1
  149. package/dist/runtime/nuxt/plugins/{route-rule-og-image.server.mjs → route-rule-og-image.server.js} +2 -2
  150. package/dist/runtime/nuxt/utils.d.ts +1 -1
  151. package/dist/runtime/nuxt/{utils.mjs → utils.js} +1 -1
  152. package/dist/runtime/pure.d.ts +2 -2
  153. package/dist/runtime/{pure.mjs → pure.js} +17 -7
  154. package/dist/runtime/shared.d.ts +2 -2
  155. package/dist/runtime/{shared.mjs → shared.js} +1 -1
  156. package/dist/runtime/types.d.ts +0 -161
  157. package/dist/types.d.mts +2 -9
  158. package/dist/types.d.ts +2 -9
  159. package/package.json +47 -49
  160. package/dist/client/_nuxt/BBv1LFm6.js +0 -6
  161. package/dist/client/_nuxt/BG_OyJVq.js +0 -1
  162. package/dist/client/_nuxt/BIMuYTWL.js +0 -3
  163. package/dist/client/_nuxt/BSyl5yf0.js +0 -1
  164. package/dist/client/_nuxt/BUNvBuCY.js +0 -135
  165. package/dist/client/_nuxt/Bsp1M94H.js +0 -1
  166. package/dist/client/_nuxt/BswfO-CF.js +0 -1
  167. package/dist/client/_nuxt/Bz4xi2rU.js +0 -1
  168. package/dist/client/_nuxt/C3YqBJkQ.js +0 -1
  169. package/dist/client/_nuxt/CGQbO34C.js +0 -1
  170. package/dist/client/_nuxt/CrjQeCwm.js +0 -1
  171. package/dist/client/_nuxt/D4LhxNOI.js +0 -1
  172. package/dist/client/_nuxt/D4k753MY.js +0 -1
  173. package/dist/client/_nuxt/DFF-wSSt.js +0 -8
  174. package/dist/client/_nuxt/DnhXxWz-.js +0 -1
  175. package/dist/client/_nuxt/Dszwcx0o.js +0 -1
  176. package/dist/client/_nuxt/Dz2Ca8U2.js +0 -1
  177. package/dist/client/_nuxt/DzPyIVdT.js +0 -9
  178. package/dist/client/_nuxt/IconCSS.DI_jUTCX.css +0 -1
  179. package/dist/client/_nuxt/TQ9oWRfF.js +0 -1
  180. package/dist/client/_nuxt/WoBtJUue.js +0 -1
  181. package/dist/client/_nuxt/bmJ2objS.js +0 -1
  182. package/dist/client/_nuxt/builds/meta/a4ad9cab-b4b9-4011-ba26-b8768422faa5.json +0 -1
  183. package/dist/client/_nuxt/entry.CyZsr2dM.css +0 -1
  184. package/dist/client/_nuxt/error-404.BRldFSII.css +0 -1
  185. package/dist/client/_nuxt/error-500.D8yw_IbC.css +0 -1
  186. package/dist/runtime/nitro/og-image/satori/plugins/imageSrc.mjs +0 -82
  187. /package/dist/runtime/nitro/og-image/bindings/chromium/{chrome-launcher.mjs → chrome-launcher.js} +0 -0
  188. /package/dist/runtime/nitro/og-image/bindings/chromium/{playwright.mjs → playwright.js} +0 -0
  189. /package/dist/runtime/nitro/og-image/bindings/css-inline/{node.mjs → node.js} +0 -0
  190. /package/dist/runtime/nitro/og-image/bindings/css-inline/{wasm.mjs → wasm.js} +0 -0
  191. /package/dist/runtime/nitro/og-image/bindings/resvg/{node.mjs → node.js} +0 -0
  192. /package/dist/runtime/nitro/og-image/bindings/resvg/{wasm.mjs → wasm.js} +0 -0
  193. /package/dist/runtime/nitro/og-image/bindings/satori/{node.mjs → node.js} +0 -0
  194. /package/dist/runtime/nitro/og-image/bindings/satori/{wasm.mjs → wasm.js} +0 -0
  195. /package/dist/runtime/nitro/og-image/bindings/sharp/{node.mjs → node.js} +0 -0
  196. /package/dist/runtime/nitro/og-image/{cache.mjs → cache.js} +0 -0
  197. /package/dist/runtime/nitro/og-image/{instances.mjs → instances.js} +0 -0
  198. /package/dist/runtime/nitro/og-image/satori/{instances.mjs → instances.js} +0 -0
  199. /package/dist/runtime/nitro/og-image/satori/transforms/{emojis.mjs → emojis.js} +0 -0
  200. /package/dist/runtime/nitro/util/{kit.mjs → kit.js} +0 -0
  201. /package/dist/runtime/nitro/util/{wasm.mjs → wasm.js} +0 -0
  202. /package/dist/runtime/nuxt/components/OgImage/{OgImage.mjs → OgImage.js} +0 -0
  203. /package/dist/runtime/nuxt/components/OgImage/{OgImageScreenshot.mjs → OgImageScreenshot.js} +0 -0
  204. /package/dist/runtime/nuxt/composables/{defineOgImageScreenshot.mjs → defineOgImageScreenshot.js} +0 -0
  205. /package/dist/runtime/nuxt/composables/{mock.mjs → mock.js} +0 -0
  206. /package/dist/runtime/{types.mjs → types.js} +0 -0
@@ -1,10 +0,0 @@
1
- import { type H3Error } from 'h3';
2
- import type { OgImageRenderEventContext } from '../../types';
3
- export declare function useOgImageBufferCache(ctx: OgImageRenderEventContext, options: {
4
- baseCacheKey: string | false;
5
- cacheMaxAgeSeconds?: number;
6
- }): Promise<void | H3Error | {
7
- cachedItem: false | BufferSource;
8
- enabled: boolean;
9
- update: (image: BufferSource) => Promise<void>;
10
- }>;
@@ -34,8 +34,9 @@ export async function useOgImageBufferCache(ctx, options) {
34
34
  modifiedTime: new Date(headers["last-modified"]),
35
35
  etag: headers.etag,
36
36
  maxAge
37
- }))
37
+ })) {
38
38
  return;
39
+ }
39
40
  setHeaders(ctx.e, headers);
40
41
  } else {
41
42
  await cache.removeItem(key).catch(() => {
@@ -2,7 +2,7 @@ export function htmlDecodeQuotes(html) {
2
2
  return html.replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&#x27;/g, "'");
3
3
  }
4
4
  export function decodeHtml(html) {
5
- return html.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/&cent;/g, "\xA2").replace(/&pound;/g, "\xA3").replace(/&yen;/g, "\xA5").replace(/&euro;/g, "\u20AC").replace(/&copy;/g, "\xA9").replace(/&reg;/g, "\xAE").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&#x27;/g, "'").replace(/&#x2F;/g, "/").replace(/&#([0-9]+);/g, (full, int) => {
5
+ return html.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/&cent;/g, "\xA2").replace(/&pound;/g, "\xA3").replace(/&yen;/g, "\xA5").replace(/&euro;/g, "\u20AC").replace(/&copy;/g, "\xA9").replace(/&reg;/g, "\xAE").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&#x27;/g, "'").replace(/&#x2F;/g, "/").replace(/&#(\d+);/g, (full, int) => {
6
6
  return String.fromCharCode(Number.parseInt(int));
7
7
  });
8
8
  }
@@ -1,4 +1,4 @@
1
- import type { OgImageOptions } from '../../../types';
1
+ import type { OgImageOptions } from '../../../types.js';
2
2
  declare const _default: import("vue").DefineComponent<OgImageOptions<"NuxtSeo">, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<OgImageOptions<"NuxtSeo">>, {
3
3
  props?: any;
4
4
  }, {}>;
@@ -1,4 +1,4 @@
1
- import type { OgImagePageScreenshotOptions } from '../../../types';
1
+ import type { OgImagePageScreenshotOptions } from '../../../types.js';
2
2
  declare const _default: import("vue").DefineComponent<OgImagePageScreenshotOptions, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<OgImagePageScreenshotOptions>, {
3
3
  props?: any;
4
4
  }, {}>;
@@ -21,7 +21,7 @@ const props = withDefaults(defineProps<{
21
21
  title: 'title',
22
22
  })
23
23
 
24
- const HexRegex = /^#([0-9a-f]{3}){1,2}$/i
24
+ const HexRegex = /^#(?:[0-9a-f]{3}){1,2}$/i
25
25
 
26
26
  const runtimeConfig = useOgImageRuntimeConfig()
27
27
 
@@ -1,2 +1,2 @@
1
- import type { DefineOgImageInput } from '../../types';
1
+ import type { DefineOgImageInput } from '../../types.js';
2
2
  export declare function defineOgImage(_options?: DefineOgImageInput): void;
@@ -1,8 +1,8 @@
1
1
  import { defu } from "defu";
2
2
  import { appendHeader } from "h3";
3
- import { getOgImagePath, separateProps, useOgImageRuntimeConfig } from "../../shared.mjs";
4
- import { createOgImageMeta, normaliseOptions } from "../utils.mjs";
5
- import { createNitroRouteRuleMatcher } from "../../nitro/util/kit.mjs";
3
+ import { getOgImagePath, separateProps, useOgImageRuntimeConfig } from "../../shared.js";
4
+ import { createOgImageMeta, normaliseOptions } from "../utils.js";
5
+ import { createNitroRouteRuleMatcher } from "../../nitro/util/kit.js";
6
6
  import { useNuxtApp, useRequestEvent, useRoute } from "#imports";
7
7
  export function defineOgImage(_options = {}) {
8
8
  if (!import.meta.server)
@@ -1,3 +1,3 @@
1
- import type { ExtractComponentProps, OgImageOptions } from '../../types';
1
+ import type { ExtractComponentProps, OgImageOptions } from '../../types.js';
2
2
  import type { OgImageComponents } from '#nuxt-og-image/components';
3
3
  export declare function defineOgImageComponent<T extends keyof OgImageComponents>(component: T, props?: Partial<ExtractComponentProps<OgImageComponents[T]>>, options?: OgImageOptions): void;
@@ -1,4 +1,4 @@
1
- import { defineOgImage } from "./defineOgImage.mjs";
1
+ import { defineOgImage } from "./defineOgImage.js";
2
2
  export function defineOgImageComponent(component, props = {}, options = {}) {
3
3
  return defineOgImage({
4
4
  ...options,
@@ -1,2 +1,2 @@
1
- import type { OgImagePageScreenshotOptions } from '../../types';
2
- export declare function defineOgImageScreenshot(options?: OgImagePageScreenshotOptions): any;
1
+ import type { OgImagePageScreenshotOptions } from '../../types.js';
2
+ export declare function defineOgImageScreenshot(options?: OgImagePageScreenshotOptions): void;
@@ -1,2 +1,2 @@
1
- declare const _default: any;
1
+ declare const _default: import("nuxt/app").Plugin<Record<string, unknown>> & import("nuxt/app").ObjectPlugin<Record<string, unknown>>;
2
2
  export default _default;
@@ -1,7 +1,7 @@
1
1
  import { parseURL } from "ufo";
2
2
  import { toValue } from "vue";
3
3
  import { defu } from "defu";
4
- import { isInternalRoute, separateProps } from "../../pure.mjs";
4
+ import { isInternalRoute, separateProps } from "../../pure.js";
5
5
  import { defineNuxtPlugin, useRequestEvent, withSiteUrl } from "#imports";
6
6
  export default defineNuxtPlugin({
7
7
  setup(nuxtApp) {
@@ -1,2 +1,2 @@
1
- declare const _default: any;
1
+ declare const _default: import("nuxt/app").Plugin<Record<string, unknown>> & import("nuxt/app").ObjectPlugin<Record<string, unknown>>;
2
2
  export default _default;
@@ -1,8 +1,8 @@
1
1
  import { defu } from "defu";
2
2
  import { parseURL, withoutBase } from "ufo";
3
3
  import { createRouter as createRadixRouter, toRouteMatcher } from "radix3";
4
- import { getOgImagePath, isInternalRoute, useOgImageRuntimeConfig } from "../../shared.mjs";
5
- import { createOgImageMeta, normaliseOptions } from "../utils.mjs";
4
+ import { getOgImagePath, isInternalRoute, useOgImageRuntimeConfig } from "../../shared.js";
5
+ import { createOgImageMeta, normaliseOptions } from "../utils.js";
6
6
  import { defineNuxtPlugin, useRequestEvent } from "#imports";
7
7
  export default defineNuxtPlugin((nuxtApp) => {
8
8
  nuxtApp.hooks.hook("app:rendered", async (ctx) => {
@@ -1,4 +1,4 @@
1
1
  import type { NuxtSSRContext } from 'nuxt/app';
2
- import type { DefineOgImageInput, OgImageOptions, OgImagePrebuilt } from '../types';
2
+ import type { DefineOgImageInput, OgImageOptions, OgImagePrebuilt } from '../types.js';
3
3
  export declare function createOgImageMeta(src: string | null, input: OgImageOptions | OgImagePrebuilt, resolvedOptions: OgImageOptions, ssrContext: NuxtSSRContext): void;
4
4
  export declare function normaliseOptions(_options: DefineOgImageInput): OgImageOptions | OgImagePrebuilt;
@@ -1,6 +1,6 @@
1
1
  import { defu } from "defu";
2
2
  import { withQuery } from "ufo";
3
- import { getExtension, separateProps } from "../shared.mjs";
3
+ import { getExtension, separateProps } from "../shared.js";
4
4
  import { unref, useServerHead } from "#imports";
5
5
  import { componentNames } from "#build/nuxt-og-image/components.mjs";
6
6
  export function createOgImageMeta(src, input, resolvedOptions, ssrContext) {
@@ -1,5 +1,5 @@
1
- import type { InputFontConfig, OgImageOptions, ResolvedFontConfig } from './types';
2
- export declare function toBase64Image(fileName: string, data: string | ArrayBuffer): string;
1
+ import type { InputFontConfig, OgImageOptions, ResolvedFontConfig } from './types.js';
2
+ export declare function toBase64Image(data: string | ArrayBuffer): string;
3
3
  export declare function isInternalRoute(path: string): boolean;
4
4
  export declare function separateProps(options: OgImageOptions | undefined, ignoreKeys?: string[]): {
5
5
  props: Record<string, any>;
@@ -1,12 +1,22 @@
1
1
  import { defu } from "defu";
2
- export function toBase64Image(fileName, data) {
2
+ function detectBase64MimeType(data) {
3
+ const signatures = {
4
+ "R0lGODdh": "image/gif",
5
+ "R0lGODlh": "image/gif",
6
+ "iVBORw0KGgo": "image/png",
7
+ "/9j/": "image/jpeg",
8
+ "UklGR": "image/webp",
9
+ "AAABAA": "image/x-icon"
10
+ };
11
+ for (const s in signatures) {
12
+ if (data.indexOf(s) === 0)
13
+ return signatures[s];
14
+ }
15
+ return "image/svg+xml";
16
+ }
17
+ export function toBase64Image(data) {
3
18
  const base64 = typeof data === "string" ? data : Buffer.from(data).toString("base64");
4
- let type = "image/jpeg";
5
- const ext = fileName.split(".").pop();
6
- if (ext === "svg")
7
- type = "image/svg+xml";
8
- else if (ext === "png")
9
- type = "image/png";
19
+ const type = detectBase64MimeType(base64);
10
20
  return `data:${type};base64,${base64}`;
11
21
  }
12
22
  export function isInternalRoute(path) {
@@ -1,4 +1,4 @@
1
- import type { OgImageOptions, OgImageRuntimeConfig } from './types';
2
- export * from './pure';
1
+ import type { OgImageOptions, OgImageRuntimeConfig } from './types.js';
2
+ export * from './pure.js';
3
3
  export declare function getOgImagePath(pagePath: string, _options?: Partial<OgImageOptions>): string;
4
4
  export declare function useOgImageRuntimeConfig(): OgImageRuntimeConfig;
@@ -1,7 +1,7 @@
1
1
  import { joinURL } from "ufo";
2
2
  import { defu } from "defu";
3
3
  import { useRuntimeConfig } from "#imports";
4
- export * from "./pure.mjs";
4
+ export * from "./pure.js";
5
5
  export function getOgImagePath(pagePath, _options) {
6
6
  const baseURL = useRuntimeConfig().app.baseURL;
7
7
  const options = defu(_options, useOgImageRuntimeConfig().defaults);
@@ -1,161 +0,0 @@
1
- import type { html } from 'satori-html';
2
- import type { H3Error, H3Event } from 'h3';
3
- import type { ResvgRenderOptions } from '@resvg/resvg-js';
4
- import type { SatoriOptions } from 'satori';
5
- import type { AllowedComponentProps, Component, ComponentCustomProps, VNodeProps } from '@vue/runtime-core';
6
- import type { SharpOptions } from 'sharp';
7
- import type { NitroApp, NitroOptions } from 'nitropack';
8
- import type { OgImageComponents } from '#nuxt-og-image/components';
9
- export interface OgImageRenderEventContext {
10
- e: H3Event;
11
- extension: 'png' | 'jpeg' | 'jpg' | 'svg' | 'html' | 'json';
12
- key: string;
13
- basePath: string;
14
- renderer: Renderer;
15
- options: OgImageOptions;
16
- isDebugJsonPayload: boolean;
17
- _nitro: NitroApp;
18
- }
19
- export type IconifyEmojiIconSets = 'twemoji' | 'noto' | 'fluent-emoji' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'streamline-emojis' | 'openmoji';
20
- export interface OgImageRuntimeConfig {
21
- version: string;
22
- satoriOptions: SatoriOptions;
23
- resvgOptions: ResvgRenderOptions;
24
- sharpOptions: SharpOptions;
25
- defaults: OgImageOptions;
26
- debug: boolean;
27
- baseCacheKey: string;
28
- fonts: FontConfig[];
29
- hasNuxtIcon: boolean;
30
- colorPreference: 'light' | 'dark';
31
- isNuxtContentDocumentDriven: boolean;
32
- }
33
- export interface OgImageComponent {
34
- path?: string;
35
- pascalName: string;
36
- kebabName: string;
37
- hash: string;
38
- category: 'app' | 'community' | 'pro';
39
- credits?: string;
40
- }
41
- export interface ScreenshotOptions {
42
- colorScheme?: 'dark' | 'light';
43
- selector?: string;
44
- mask?: string;
45
- /**
46
- * The width of the screenshot.
47
- *
48
- * @default 1200
49
- */
50
- width: number;
51
- /**
52
- * The height of the screenshot.
53
- *
54
- * @default 630
55
- */
56
- height: number;
57
- /**
58
- * How long to wait before taking the screenshot. Useful for waiting for animations.
59
- */
60
- delay?: number;
61
- }
62
- export type OgImagePrebuilt = {
63
- url: string;
64
- } & Pick<OgImageOptions, 'width' | 'height' | 'alt' | '_query'>;
65
- export type DefineOgImageInput = OgImageOptions | OgImagePrebuilt | false;
66
- export interface OgImageOptions<T extends keyof OgImageComponents = 'NuxtSeo'> {
67
- /**
68
- * The width of the screenshot.
69
- *
70
- * @default 1200
71
- */
72
- width?: number;
73
- /**
74
- * The height of the screenshot.
75
- *
76
- * @default 630
77
- */
78
- height?: number;
79
- /**
80
- * The alt text for the image.
81
- */
82
- alt?: string;
83
- /**
84
- * Use a prebuilt image instead of generating one.
85
- *
86
- * Should be an absolute URL.
87
- */
88
- url?: string;
89
- /**
90
- * The name of the component to render.
91
- */
92
- component?: T | string;
93
- /**
94
- * Props to pass to the component.
95
- */
96
- props?: OgImageComponents[T] | Record<string, any>;
97
- renderer?: 'chromium' | 'satori';
98
- extension?: 'png' | 'jpeg' | 'jpg';
99
- emojis?: IconifyEmojiIconSets;
100
- /**
101
- * Provide a static HTML template to render the OG Image instead of a component.
102
- */
103
- html?: string;
104
- resvg?: ResvgRenderOptions;
105
- satori?: SatoriOptions;
106
- screenshot?: Partial<ScreenshotOptions>;
107
- sharp?: SharpOptions;
108
- fonts?: InputFontConfig[];
109
- cacheMaxAgeSeconds?: number;
110
- /**
111
- * @internal
112
- */
113
- _query?: Record<string, any>;
114
- }
115
- export interface FontConfig {
116
- name: string;
117
- style?: string;
118
- weight?: string | number;
119
- path?: string;
120
- key?: string;
121
- absolutePath?: boolean;
122
- }
123
- export interface ResolvedFontConfig extends FontConfig {
124
- cacheKey: string;
125
- data?: BufferSource;
126
- }
127
- export type InputFontConfig = (`${string}:${number}` | string | FontConfig);
128
- export interface RuntimeCompatibilitySchema {
129
- chromium: 'chrome-launcher' | 'on-demand' | 'playwright' | false;
130
- ['css-inline']: 'node' | 'wasm' | 'wasm-fs' | false;
131
- resvg: 'node' | 'wasm' | 'wasm-fs' | false;
132
- satori: 'node' | 'wasm' | 'wasm-fs' | false;
133
- sharp: 'node' | false;
134
- wasm?: NitroOptions['wasm'];
135
- }
136
- export type CompatibilityFlags = Partial<Omit<RuntimeCompatibilitySchema, 'wasm'>>;
137
- export interface CompatibilityFlagEnvOverrides {
138
- dev?: CompatibilityFlags;
139
- runtime?: CompatibilityFlags;
140
- prerender?: CompatibilityFlags;
141
- }
142
- export type RendererOptions = Omit<OgImageOptions, 'extension'> & {
143
- extension: Omit<OgImageOptions['extension'], 'html'>;
144
- };
145
- export interface Renderer {
146
- name: 'chromium' | 'satori';
147
- supportedFormats: Partial<RendererOptions['extension']>[];
148
- createImage: (e: OgImageRenderEventContext) => Promise<H3Error | BufferSource | void>;
149
- debug: (e: OgImageRenderEventContext) => Promise<Record<string, any>>;
150
- }
151
- export type ExtractComponentProps<T extends Component> = T extends new (...args: any) => any ? Omit<InstanceType<T>['$props'], keyof ComponentCustomProps | keyof VNodeProps | keyof AllowedComponentProps> : never;
152
- export type OgImagePageScreenshotOptions = Omit<OgImageOptions, 'html' | 'renderer' | 'component' | 'satori' | 'resvg' | 'sharp'>;
153
- export type VNode = ReturnType<typeof html>;
154
- export interface SatoriTransformer {
155
- filter: (node: VNode) => boolean;
156
- transform: (node: VNode, e: OgImageRenderEventContext) => Promise<void>;
157
- }
158
- export interface SocialPreviewMetaData {
159
- twitter?: Record<string, string>;
160
- og?: Record<string, string>;
161
- }
package/dist/types.d.mts CHANGED
@@ -1,18 +1,11 @@
1
-
2
- import type { ModuleOptions, ModuleHooks } from './module.js'
3
-
1
+ import type { ModuleHooks } from './module.js'
4
2
 
5
3
  declare module '@nuxt/schema' {
6
- interface NuxtConfig { ['ogImage']?: Partial<ModuleOptions> }
7
- interface NuxtOptions { ['ogImage']?: ModuleOptions }
8
4
  interface NuxtHooks extends ModuleHooks {}
9
5
  }
10
6
 
11
7
  declare module 'nuxt/schema' {
12
- interface NuxtConfig { ['ogImage']?: Partial<ModuleOptions> }
13
- interface NuxtOptions { ['ogImage']?: ModuleOptions }
14
8
  interface NuxtHooks extends ModuleHooks {}
15
9
  }
16
10
 
17
-
18
- export type { ModuleHooks, ModuleOptions, default } from './module.js'
11
+ export { type ModuleHooks, type ModuleOptions, default } from './module.js'
package/dist/types.d.ts CHANGED
@@ -1,18 +1,11 @@
1
-
2
- import type { ModuleOptions, ModuleHooks } from './module'
3
-
1
+ import type { ModuleHooks } from './module'
4
2
 
5
3
  declare module '@nuxt/schema' {
6
- interface NuxtConfig { ['ogImage']?: Partial<ModuleOptions> }
7
- interface NuxtOptions { ['ogImage']?: ModuleOptions }
8
4
  interface NuxtHooks extends ModuleHooks {}
9
5
  }
10
6
 
11
7
  declare module 'nuxt/schema' {
12
- interface NuxtConfig { ['ogImage']?: Partial<ModuleOptions> }
13
- interface NuxtOptions { ['ogImage']?: ModuleOptions }
14
8
  interface NuxtHooks extends ModuleHooks {}
15
9
  }
16
10
 
17
-
18
- export type { ModuleHooks, ModuleOptions, default } from './module'
11
+ export { type ModuleHooks, type ModuleOptions, default } from './module'
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-og-image",
3
3
  "type": "module",
4
- "version": "3.0.0-rc.52",
5
- "packageManager": "pnpm@8.15.6",
4
+ "version": "3.0.0-rc.54",
6
5
  "description": "Enlightened OG Image generation for Nuxt.",
7
6
  "author": {
8
7
  "website": "https://harlanzw.com",
@@ -21,34 +20,34 @@
21
20
  },
22
21
  "exports": {
23
22
  ".": {
24
- "types": "./dist/types.d.ts",
23
+ "types": "./dist/module.d.ts",
25
24
  "import": "./dist/module.mjs",
26
25
  "require": "./dist/module.cjs"
27
26
  }
28
27
  },
29
28
  "main": "./dist/module.cjs",
30
- "types": "./dist/types.d.ts",
29
+ "types": "./dist/module.d.ts",
31
30
  "files": [
32
31
  "dist",
33
32
  "virtual.d.ts"
34
33
  ],
35
34
  "dependencies": {
36
- "@css-inline/css-inline": "0.14.0",
37
- "@css-inline/css-inline-wasm": "0.14.0",
38
- "@nuxt/devtools-kit": "^1.1.5",
39
- "@nuxt/kit": "^3.11.2",
35
+ "@css-inline/css-inline": "0.14.1",
36
+ "@css-inline/css-inline-wasm": "0.14.1",
37
+ "@nuxt/devtools-kit": "^1.3.3",
38
+ "@nuxt/kit": "^3.12.2",
40
39
  "@resvg/resvg-js": "^2.6.2",
41
40
  "@resvg/resvg-wasm": "^2.6.2",
42
- "@unocss/core": "0.59.0",
43
- "@unocss/preset-wind": "0.59.0",
44
- "@vueuse/core": "^10.9.0",
45
- "chrome-launcher": "^1.1.1",
41
+ "@unocss/core": "0.61.0",
42
+ "@unocss/preset-wind": "0.61.0",
43
+ "@vueuse/core": "^10.11.0",
44
+ "chrome-launcher": "^1.1.2",
46
45
  "defu": "^6.1.4",
47
- "execa": "^8.0.1",
46
+ "execa": "^9.2.0",
48
47
  "flatted": "^3.3.1",
49
48
  "floating-vue": "5.2.2",
50
49
  "image-size": "^1.1.1",
51
- "json-editor-vue": "^0.13.0",
50
+ "json-editor-vue": "^0.15.1",
52
51
  "nuxt-icon": "^0.6.10",
53
52
  "nuxt-site-config": "^2.2.12",
54
53
  "nuxt-site-config-kit": "^2.2.12",
@@ -56,56 +55,55 @@
56
55
  "ofetch": "^1.3.4",
57
56
  "ohash": "^1.1.3",
58
57
  "pathe": "^1.1.2",
59
- "pkg-types": "^1.0.3",
60
- "playwright-core": "^1.43.0",
58
+ "pkg-types": "^1.1.1",
59
+ "playwright-core": "^1.44.1",
61
60
  "radix3": "^1.1.2",
62
61
  "satori": "0.10.13",
63
62
  "satori-html": "^0.3.2",
64
- "shiki": "^1.2.4",
63
+ "shiki": "^1.7.0",
65
64
  "sirv": "^2.0.4",
66
65
  "splitpanes": "^3.1.5",
67
66
  "std-env": "^3.7.0",
68
- "terminate": "^2.6.1",
69
67
  "ufo": "^1.5.3",
70
68
  "unwasm": "^0.3.9",
71
- "vanilla-jsoneditor": "^0.23.1",
69
+ "vanilla-jsoneditor": "^0.23.7",
72
70
  "yoga-wasm-web": "^0.3.3"
73
71
  },
74
72
  "devDependencies": {
75
- "@antfu/eslint-config": "^2.12.2",
76
- "@headlessui/vue": "^1.7.19",
77
- "@iconify-json/carbon": "^1.1.31",
78
- "@iconify-json/logos": "^1.1.42",
73
+ "@antfu/eslint-config": "^2.21.1",
74
+ "@headlessui/vue": "^1.7.22",
75
+ "@iconify-json/carbon": "^1.1.35",
76
+ "@iconify-json/logos": "^1.1.43",
79
77
  "@iconify-json/noto": "^1.1.18",
80
- "@iconify-json/ri": "^1.1.20",
81
- "@iconify-json/tabler": "^1.1.109",
82
- "@img/sharp-linux-x64": "0.33.3",
78
+ "@iconify-json/ri": "^1.1.21",
79
+ "@iconify-json/tabler": "^1.1.114",
80
+ "@img/sharp-linux-x64": "0.33.4",
83
81
  "@nuxt/content": "^2.12.1",
84
- "@nuxt/devtools": "1.1.5",
85
- "@nuxt/devtools-ui-kit": "^1.1.5",
86
- "@nuxt/module-builder": "^0.5.5",
87
- "@nuxt/test-utils": "3.12.0",
88
- "@nuxt/ui": "^2.15.1",
89
- "@nuxtjs/color-mode": "^3.3.3",
82
+ "@nuxt/devtools": "1.3.3",
83
+ "@nuxt/devtools-ui-kit": "^1.3.3",
84
+ "@nuxt/module-builder": "^0.8.0",
85
+ "@nuxt/test-utils": "3.13.1",
86
+ "@nuxt/ui": "^2.17.0",
87
+ "@nuxtjs/color-mode": "^3.4.1",
90
88
  "@nuxtjs/eslint-config-typescript": "^12.1.0",
91
- "@nuxtjs/i18n": "^8.3.0",
92
- "@nuxtjs/tailwindcss": "^6.11.4",
93
- "@unocss/nuxt": "0.59.0",
94
- "@unocss/preset-icons": "0.59.0",
95
- "@unocss/preset-uno": "0.59.0",
96
- "@unocss/runtime": "0.59.0",
97
- "@vueuse/nuxt": "^10.9.0",
98
- "bumpp": "^9.4.0",
99
- "eslint": "9.0.0",
89
+ "@nuxtjs/i18n": "^8.3.1",
90
+ "@nuxtjs/tailwindcss": "^6.12.0",
91
+ "@unocss/nuxt": "0.61.0",
92
+ "@unocss/preset-icons": "0.61.0",
93
+ "@unocss/preset-uno": "0.61.0",
94
+ "@unocss/runtime": "0.61.0",
95
+ "@vueuse/nuxt": "^10.11.0",
96
+ "bumpp": "^9.4.1",
97
+ "eslint": "9.5.0",
100
98
  "jest-image-snapshot": "^6.4.0",
101
- "nuxt": "^3.11.2",
99
+ "nuxt": "^3.12.2",
102
100
  "nuxt-icon": "0.6.10",
103
- "playwright": "^1.43.0",
104
- "sass": "^1.74.1",
105
- "sharp": "^0.33.3",
106
- "typescript": "^5.4.4",
107
- "unocss": "0.59.0",
108
- "vitest": "^1.4.0"
101
+ "playwright": "^1.44.1",
102
+ "sass": "^1.77.6",
103
+ "sharp": "^0.33.4",
104
+ "typescript": "^5.4.5",
105
+ "unocss": "0.61.0",
106
+ "vitest": "^1.6.0"
109
107
  },
110
108
  "build": {
111
109
  "externals": [
@@ -129,6 +127,6 @@
129
127
  "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare .playground && nuxi prepare client",
130
128
  "release": "pnpm build && bumpp && pnpm -r publish --no-git-checks",
131
129
  "typecheck": "tsc --noEmit",
132
- "test": "vitest"
130
+ "test": "vitest integration/endpoints"
133
131
  }
134
132
  }
@@ -1,6 +0,0 @@
1
- import t from"./CbViG2Xw.js";import n from"./DCk2z-Tu.js";import a from"./DhFF74a2.js";import i from"./DSrLtGYv.js";import s from"./CMDmr8et.js";import u from"./CbYhyuC0.js";import m from"./BeX7Iu5M.js";import r from"./DywwDckn.js";import e from"./Dch3xQiY.js";import o from"./DC8MraHL.js";import c from"./CsyrCbsw.js";import l from"./BlxWTfDV.js";import d from"./CupVZNk8.js";import g from"./DYI1rfmx.js";import p from"./Bh8mriwU.js";import b from"./C5gCGmDW.js";import v from"./BT9ZzGyQ.js";import f from"./BN4LRXf6.js";import h from"./BR6CMsBL.js";import"./Bg0wAK5a.js";const y=Object.freeze({fileTypes:[],injectTo:["text.html.markdown"],injectionSelector:"L:text.html.markdown",name:"markdown-vue",patterns:[{include:"#vue-code-block"}],repository:{"vue-code-block":{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vue)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{include:"source.vue"}]}},scopeName:"markdown.vue.codeblock"});var C=[y];const $=Object.freeze({fileTypes:[],injectTo:["source.vue","text.html.markdown","text.html.derivative","text.pug"],injectionSelector:"L:meta.tag -meta.attribute -meta.ng-binding -entity.name.tag.pug -attribute_value -source.tsx -source.js.jsx, L:meta.element -meta.attribute",name:"vue-directives",patterns:[{include:"source.vue#vue-directives"}],scopeName:"vue.directives"});var j=[$];const x=Object.freeze({fileTypes:[],injectTo:["source.vue","text.html.markdown","text.html.derivative","text.pug"],injectionSelector:"L:text.pug -comment -string.comment, L:text.html.derivative -comment.block, L:text.html.markdown -comment.block",name:"vue-interpolations",patterns:[{include:"source.vue#vue-interpolations"}],scopeName:"vue.interpolations"});var k=[x];const z=Object.freeze({fileTypes:[],injectTo:["source.vue"],injectionSelector:"L:source.css -comment, L:source.postcss -comment, L:source.sass -comment, L:source.stylus -comment",name:"vue-sfc-style-variable-injection",patterns:[{include:"#vue-sfc-style-variable-injection"}],repository:{"vue-sfc-style-variable-injection":{begin:"\\b(v-bind)\\s*\\(",beginCaptures:{1:{name:"entity.name.function"}},end:"\\)",name:"vue.sfc.style.variable.injection.v-bind",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"source.ts.embedded.html.vue",patterns:[{include:"source.js"}]},{include:"source.js"}]}},scopeName:"vue.sfc.style.variable.injection",embeddedLangs:["javascript"]});var A=[...e,z];const Z=Object.freeze({displayName:"Vue",name:"vue",patterns:[{include:"text.html.basic#comment"},{include:"#self-closing-tag"},{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},patterns:[{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)md\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.markdown",patterns:[{include:"text.html.markdown"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)html\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)pug\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.pug",patterns:[{include:"text.pug"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)stylus\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.stylus",patterns:[{include:"source.stylus"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)postcss\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.postcss",patterns:[{include:"source.postcss"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)sass\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.sass",patterns:[{include:"source.sass"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)css\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)scss\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.scss",patterns:[{include:"source.css.scss"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)less\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.less",patterns:[{include:"source.css.less"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)js\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)ts\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.ts",patterns:[{include:"source.ts"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsx\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js.jsx",patterns:[{include:"source.js.jsx"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)tsx\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.tsx",patterns:[{include:"source.tsx"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json",patterns:[{include:"source.json"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsonc\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json.comments",patterns:[{include:"source.json.comments"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json5\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json5",patterns:[{include:"source.json5"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)yaml\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.yaml",patterns:[{include:"source.yaml"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)toml\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.toml",patterns:[{include:"source.toml"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)(gql|graphql)\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.graphql",patterns:[{include:"source.graphql"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)vue\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.vue",patterns:[{include:"source.vue"}]}]},{begin:"(template)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/template\\b)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:"(script)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/script\\b)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"(style)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/style\\b)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text"}]}]}],repository:{"html-stuff":{patterns:[{include:"#template-tag"},{include:"text.html.derivative"},{include:"text.html.basic"}]},"self-closing-tag":{begin:"(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"self-closing-tag",patterns:[{include:"#tag-stuff"}]},"tag-stuff":{begin:"\\G",end:"(?=/>)|(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.tag-stuff",patterns:[{include:"#vue-directives"},{include:"text.html.basic#attribute"}]},"template-tag":{patterns:[{include:"#template-tag-1"},{include:"#template-tag-2"}]},"template-tag-1":{begin:"(<)(template)\\b(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"},3:{name:"punctuation.definition.tag.end.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#html-stuff"}]}]},"template-tag-2":{begin:"(<)(template)\\b",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#tag-stuff"},{include:"#html-stuff"}]}]},"vue-directives":{patterns:[{include:"#vue-directives-control"},{include:"#vue-directives-style-attr"},{include:"#vue-directives-original"},{include:"#vue-directives-generic-attr"}]},"vue-directives-control":{begin:"(v-for)|(v-if|v-else-if|v-else)",captures:{1:{name:"keyword.control.loop.vue"},2:{name:"keyword.control.conditional.vue"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.directive.control.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-expression":{patterns:[{begin:"(=)\\s*('|\"|`)",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"},2:{name:"punctuation.definition.string.begin.html.vue"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},patterns:[{begin:"(?<=('|\"|`))",end:"(?=\\1)",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]},{begin:"(=)\\s*(?=[^'\"`])",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"}},end:"(?=(\\s|>|\\/>))",patterns:[{begin:"(?=[^'\"`])",end:"(?=(\\s|>|\\/>))",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]}]},"vue-directives-generic-attr":{begin:"\\b(generic)\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"}},end:`(?<='|")`,name:"meta.attribute.generic.vue",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.html.vue"}},comment:"https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020",end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"meta.type.parameters.vue",patterns:[{include:"source.ts#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]}]},"vue-directives-original":{begin:"(?:\\b(v-)|([:\\.])|(@)|(#))(\\[?)([\\w\\-]*)(\\]?)(?:\\.([\\w\\-]*))*",beginCaptures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.attribute-shorthand.bind.html.vue"},3:{name:"punctuation.attribute-shorthand.event.html.vue"},4:{name:"punctuation.attribute-shorthand.slot.html.vue"},5:{name:"punctuation.separator.key-value.html.vue"},6:{name:"entity.other.attribute-name.html.vue"},7:{name:"punctuation.separator.key-value.html.vue"},8:{name:"entity.other.attribute-name.html.vue"},9:{name:"punctuation.separator.key-value.html.vue"}},end:"(?=\\s*+[^=\\s])",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"meta.attribute.directive.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-style-attr":{begin:"\\b(style)\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"}},end:`(?<='|")`,name:"meta.attribute.style.vue",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.html.vue"}},comment:"Copy from source.css#rule-list-innards",end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"source.css.embedded.html.vue",patterns:[{include:"source.css#comment-block"},{include:"source.css#escapes"},{include:"source.css#font-features"},{match:`(?x) (?<![\\w-])
2
- --
3
- (?:[-a-zA-Z_] | [^\\x00-\\x7F])
4
- (?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]
5
- |\\\\(?:[0-9a-fA-F]{1,6}|.)
6
- )*`,name:"variable.css"},{begin:"(?<![-a-zA-Z])(?=[-a-zA-Z])",end:"$|(?![-a-zA-Z])",name:"meta.property-name.css",patterns:[{include:"source.css#property-names"}]},{begin:"(:)\\s*",beginCaptures:{1:{name:"punctuation.separator.key-value.css"}},comment:"Modify end to fix #199. TODO: handle ' character.",contentName:"meta.property-value.css",end:`\\s*(;)|\\s*(?='|")`,endCaptures:{1:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"source.css#comment-block"},{include:"source.css#property-values"}]},{match:";",name:"punctuation.terminator.rule.css"}]}]},"vue-interpolations":{patterns:[{begin:"(\\{\\{)",beginCaptures:{1:{name:"punctuation.definition.interpolation.begin.html.vue"}},end:"(\\}\\})",endCaptures:{1:{name:"punctuation.definition.interpolation.end.html.vue"}},name:"expression.embedded.vue",patterns:[{begin:"\\G",end:"(?=\\}\\})",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]}]}},scopeName:"source.vue",embeddedLangs:["html","markdown","pug","stylus","sass","css","scss","less","javascript","typescript","jsx","tsx","json","jsonc","json5","yaml","toml","graphql","html-derivative","markdown-vue","vue-directives","vue-interpolations","vue-sfc-style-variable-injection"]});var Q=[...t,...n,...a,...i,...s,...u,...m,...r,...e,...o,...c,...l,...d,...g,...p,...b,...v,...f,...h,...C,...j,...k,...A,Z];export{Q as default};