@nuxtjs/mdc 0.17.2 → 0.17.4

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 CHANGED
@@ -1,4 +1,4 @@
1
- ![Nuxt MDC](https://github.com/nuxt-modules/mdc/assets/904724/ce6aa142-0820-4bcc-988c-a926cf03f0a5)
1
+ ![Nuxt MDC](https://github.com/nuxt-content/mdc/assets/904724/ce6aa142-0820-4bcc-988c-a926cf03f0a5)
2
2
 
3
3
  # Nuxt MDC
4
4
 
@@ -9,8 +9,8 @@
9
9
 
10
10
  MDC supercharges regular Markdown to write documents interacting deeply with any Vue component. MDC stands for MarkDown Components.
11
11
 
12
- - [✨  Release Notes](https://github.com/nuxt-modules/mdc/releases)
13
- - [🏀  Online Playground](https://stackblitz.com/github/nuxt-modules/mdc?file=playground%2Fapp.vue)
12
+ - [✨  Release Notes](https://github.com/nuxt-content/mdc/releases)
13
+ - [🏀  Online Playground](https://stackblitz.com/github/nuxt-content/mdc?file=playground%2Fapp.vue)
14
14
  - [🧩  VS Code Extension](https://marketplace.visualstudio.com/items?itemName=Nuxt.mdc)
15
15
 
16
16
  ## Features
@@ -156,30 +156,30 @@ Here is the list of available prose components:
156
156
 
157
157
  | Tag | Component | Source | Description |
158
158
  | -- | -- | -- | -- |
159
- | `p` | `<ProseP>` | [ProseP.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseP.vue) | Paragraph |
160
- | `h1` | `<ProseH1>` | [ProseH1.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseH1.vue) | Heading 1 |
161
- | `h2` | `<ProseH2>` | [ProseH2.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseH2.vue) | Heading 2 |
162
- | `h3` | `<ProseH3>` | [ProseH3.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseH3.vue) | Heading 3 |
163
- | `h4` | `<ProseH4>` | [ProseH4.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseH4.vue) | Heading 4 |
164
- | `h5` | `<ProseH5>` | [ProseH5.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseH5.vue) | Heading 5 |
165
- | `h6` | `<ProseH6>` | [ProseH6.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseH6.vue) | Heading 6 |
166
- | `ul` | `<ProseUl>` | [ProseUl.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseUl.vue) | Unordered List |
167
- | `ol` | `<ProseOl>` | [ProseOl.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseOl.vue) | Ordered List |
168
- | `li` | `<ProseLi>` | [ProseLi.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseLi.vue) | List Item |
169
- | `blockquote` | `<ProseBlockquote>` | [ProseBlockquote.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseBlockquote.vue) | Blockquote |
170
- | `hr` | `<ProseHr>` | [ProseHr.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseHr.vue) | Horizontal Rule |
171
- | `pre` | `<ProsePre>` | [ProsePre.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProsePre.vue) | Preformatted Text |
172
- | `code` | `<ProseCode>` | [ProseCode.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseCode.vue) | Code Block |
173
- | `table` | `<ProseTable>` | [ProseTable.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseTable.vue) | Table |
174
- | `thead` | `<ProseThead>` | [ProseThead.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseThead.vue) | Table Head |
175
- | `tbody` | `<ProseTbody>` | [ProseTbody.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseTbody.vue) | Table Body |
176
- | `tr` | `<ProseTr>` | [ProseTr.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseTr.vue) | Table Row |
177
- | `th` | `<ProseTh>` | [ProseTh.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseTh.vue) | Table Header |
178
- | `td` | `<ProseTd>` | [ProseTd.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseTd.vue) | Table Data |
179
- | `a` | `<ProseA>` | [ProseA.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseA.vue) | Anchor Link |
180
- | `img` | `<ProseImg>` | [ProseImg.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseImg.vue) | Image |
181
- | `em` | `<ProseEm>` | [ProseEm.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseEm.vue) | Emphasis |
182
- | `strong` | `<ProseStrong>` | [ProseStrong.vue](https://github.com/nuxt-modules/mdc/blob/main/src/runtime/components/prose/ProseStrong.vue) | Strong |
159
+ | `p` | `<ProseP>` | [ProseP.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseP.vue) | Paragraph |
160
+ | `h1` | `<ProseH1>` | [ProseH1.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseH1.vue) | Heading 1 |
161
+ | `h2` | `<ProseH2>` | [ProseH2.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseH2.vue) | Heading 2 |
162
+ | `h3` | `<ProseH3>` | [ProseH3.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseH3.vue) | Heading 3 |
163
+ | `h4` | `<ProseH4>` | [ProseH4.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseH4.vue) | Heading 4 |
164
+ | `h5` | `<ProseH5>` | [ProseH5.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseH5.vue) | Heading 5 |
165
+ | `h6` | `<ProseH6>` | [ProseH6.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseH6.vue) | Heading 6 |
166
+ | `ul` | `<ProseUl>` | [ProseUl.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseUl.vue) | Unordered List |
167
+ | `ol` | `<ProseOl>` | [ProseOl.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseOl.vue) | Ordered List |
168
+ | `li` | `<ProseLi>` | [ProseLi.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseLi.vue) | List Item |
169
+ | `blockquote` | `<ProseBlockquote>` | [ProseBlockquote.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseBlockquote.vue) | Blockquote |
170
+ | `hr` | `<ProseHr>` | [ProseHr.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseHr.vue) | Horizontal Rule |
171
+ | `pre` | `<ProsePre>` | [ProsePre.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProsePre.vue) | Preformatted Text |
172
+ | `code` | `<ProseCode>` | [ProseCode.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseCode.vue) | Code Block |
173
+ | `table` | `<ProseTable>` | [ProseTable.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseTable.vue) | Table |
174
+ | `thead` | `<ProseThead>` | [ProseThead.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseThead.vue) | Table Head |
175
+ | `tbody` | `<ProseTbody>` | [ProseTbody.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseTbody.vue) | Table Body |
176
+ | `tr` | `<ProseTr>` | [ProseTr.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseTr.vue) | Table Row |
177
+ | `th` | `<ProseTh>` | [ProseTh.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseTh.vue) | Table Header |
178
+ | `td` | `<ProseTd>` | [ProseTd.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseTd.vue) | Table Data |
179
+ | `a` | `<ProseA>` | [ProseA.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseA.vue) | Anchor Link |
180
+ | `img` | `<ProseImg>` | [ProseImg.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseImg.vue) | Image |
181
+ | `em` | `<ProseEm>` | [ProseEm.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseEm.vue) | Emphasis |
182
+ | `strong` | `<ProseStrong>` | [ProseStrong.vue](https://github.com/nuxt-content/mdc/blob/main/src/runtime/components/prose/ProseStrong.vue) | Strong |
183
183
 
184
184
  ## Parsing Markdown
185
185
 
@@ -224,7 +224,7 @@ const { data: ast } = await useAsyncData('markdown', () => parseMarkdown('::aler
224
224
 
225
225
  ### Options
226
226
 
227
- The `parseMarkdown` helper also accepts options as the second argument to control the parser's behavior. (Checkout [`MDCParseOptions` interface↗︎](https://github.com/nuxt-modules/mdc/blob/main/src/types/parser.ts)).
227
+ The `parseMarkdown` helper also accepts options as the second argument to control the parser's behavior. (Checkout [`MDCParseOptions` interface↗︎](https://github.com/nuxt-content/mdc/blob/main/src/types/parser.ts)).
228
228
 
229
229
  | Name | Default | Description |
230
230
  | -- | -- | -- |
@@ -235,7 +235,7 @@ The `parseMarkdown` helper also accepts options as the second argument to contro
235
235
  | `toc.depth` | `2` | Maximum heading depth to include in the table of contents. |
236
236
  | `toc.searchDepth` | `2` | Maximum depth of nested tags to search for heading. |
237
237
 
238
- Checkout [`MDCParseOptions` types↗︎](https://github.com/nuxt-modules/mdc/blob/main/src/types/parser.ts).
238
+ Checkout [`MDCParseOptions` types↗︎](https://github.com/nuxt-content/mdc/blob/main/src/types/parser.ts).
239
239
 
240
240
  ## Configurations
241
241
 
@@ -248,17 +248,25 @@ export default defineNuxtConfig({
248
248
  modules: ['@nuxtjs/mdc'],
249
249
  mdc: {
250
250
  remarkPlugins: {
251
- plugins: {
252
- // Register/Configure remark plugin to extend the parser
253
- }
251
+ // Register/Configure remark plugin to extend the parser, e.g.
252
+ // 'remark-math': {
253
+ // src: 'remark-math',
254
+ // options: {
255
+ // singleDollarTextMath: true,
256
+ // },
257
+ // },
254
258
  },
255
259
  rehypePlugins: {
256
- options: {
257
- // Configure rehype options to extend the parser
258
- },
259
- plugins: {
260
- // Register/Configure rehype plugin to extend the parser
261
- }
260
+ // Register/Configure rehype plugin to extend the parser, e.g.
261
+ // 'rehype-mathjax': {
262
+ // src: 'rehype-mathjax',
263
+ // options: {
264
+ // tex: {
265
+ // inlineMath: [['$', '$'], ['\\(', '\\)']],
266
+ // displayMath: [['$$', '$$'], ['\\[', '\\]']],
267
+ // },
268
+ // },
269
+ // },
262
270
  },
263
271
  headings: {
264
272
  anchorLinks: {
@@ -276,7 +284,7 @@ export default defineNuxtConfig({
276
284
  })
277
285
  ```
278
286
 
279
- Checkout [`ModuleOptions` types↗︎](https://github.com/nuxt-modules/mdc/blob/main/src/module.ts).
287
+ Checkout [`ModuleOptions` types↗︎](https://github.com/nuxt-content/mdc/blob/main/src/module.ts).
280
288
 
281
289
  ---
282
290
 
@@ -476,7 +484,7 @@ onBeforeMount(async () => {
476
484
 
477
485
  You can dive into this module online using StackBlitz:
478
486
 
479
- [![Edit @nuxtjs/mdc](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/nuxt-modules/mdc?file=playground%2Fapp.vue)
487
+ [![Edit @nuxtjs/mdc](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/nuxt-content/mdc?file=playground%2Fapp.vue)
480
488
 
481
489
  Or locally:
482
490
 
@@ -486,7 +494,7 @@ Or locally:
486
494
 
487
495
  ## License
488
496
 
489
- [MIT License](https://github.com/nuxt-modules/mdc/blob/main/LICENSE)
497
+ [MIT License](https://github.com/nuxt-content/mdc/blob/main/LICENSE)
490
498
 
491
499
  Copyright (c) NuxtLabs
492
500
 
@@ -497,8 +505,8 @@ Copyright (c) NuxtLabs
497
505
  [npm-downloads-src]: https://img.shields.io/npm/dm/@nuxtjs/mdc.svg?style=flat&colorA=18181B&colorB=28CF8D
498
506
  [npm-downloads-href]: https://npmjs.com/package/@nuxtjs/mdc
499
507
 
500
- [license-src]: https://img.shields.io/github/license/nuxt-modules/mdc.svg?style=flat&colorA=18181B&colorB=28CF8D
501
- [license-href]: https://github.com/nuxt-modules/mdc/blob/main/LICENSE
508
+ [license-src]: https://img.shields.io/github/license/nuxt-content/mdc.svg?style=flat&colorA=18181B&colorB=28CF8D
509
+ [license-href]: https://github.com/nuxt-content/mdc/blob/main/LICENSE
502
510
 
503
511
 
504
512
  [nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js
package/dist/module.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@nuxtjs/mdc",
3
3
  "configKey": "mdc",
4
- "version": "0.17.2",
4
+ "version": "0.17.4",
5
5
  "builder": {
6
- "@nuxt/module-builder": "1.0.1",
7
- "unbuild": "3.5.0"
6
+ "@nuxt/module-builder": "1.0.2",
7
+ "unbuild": "3.6.1"
8
8
  }
9
9
  }
package/dist/module.mjs CHANGED
@@ -32,10 +32,12 @@ const registerMDCSlotTransformer = (resolver) => {
32
32
  }
33
33
  };
34
34
  }
35
- if (context.nodeTransforms[0].name !== "viteMDCSlot") {
35
+ if (context.nodeTransforms[0]?.name !== "viteMDCSlot") {
36
36
  const index = context.nodeTransforms.findIndex((f) => f.name === "viteMDCSlot");
37
- const nt = context.nodeTransforms.splice(index, 1);
38
- context.nodeTransforms.unshift(nt[0]);
37
+ if (index !== -1) {
38
+ const nt = context.nodeTransforms.splice(index, 1);
39
+ context.nodeTransforms.unshift(nt[0]);
40
+ }
39
41
  }
40
42
  }
41
43
  ];
@@ -5,7 +5,7 @@ declare var __VLS_1: {
5
5
  body: any;
6
6
  toc: any;
7
7
  excerpt: any;
8
- error: import("nuxt/app").NuxtError<unknown> | null;
8
+ error: import("nuxt/app").NuxtError<unknown> | undefined;
9
9
  };
10
10
  type __VLS_Slots = {} & {
11
11
  default?: (props: typeof __VLS_1) => any;
@@ -5,7 +5,7 @@ declare var __VLS_1: {
5
5
  body: any;
6
6
  toc: any;
7
7
  excerpt: any;
8
- error: import("nuxt/app").NuxtError<unknown> | null;
8
+ error: import("nuxt/app").NuxtError<unknown> | undefined;
9
9
  };
10
10
  type __VLS_Slots = {} & {
11
11
  default?: (props: typeof __VLS_1) => any;
@@ -11,7 +11,7 @@ export function createShikiHighlighter({
11
11
  let shiki;
12
12
  let configs;
13
13
  async function _getShiki() {
14
- const { createHighlighterCore, addClassToHast, isSpecialLang, isSpecialTheme } = await import("shiki/core");
14
+ const { createHighlighterCore, addClassToHast, isSpecialLang, isSpecialTheme } = await import("@shikijs/core");
15
15
  const { transformerNotationDiff, transformerNotationErrorLevel, transformerNotationFocus, transformerNotationHighlight } = await import("@shikijs/transformers");
16
16
  const shiki2 = await createHighlighterCore({
17
17
  langs,
@@ -76,7 +76,7 @@ export function compileHast(options = {}) {
76
76
  });
77
77
  if (excerpt.children.find((node) => node.type === "element" && node.tag === "pre")) {
78
78
  const lastChild = body.children[body.children.length - 1];
79
- if (lastChild.type === "element" && lastChild.tag === "style") {
79
+ if (lastChild && lastChild.type === "element" && lastChild.tag === "style") {
80
80
  excerpt.children.push(lastChild);
81
81
  }
82
82
  }
@@ -7,7 +7,7 @@ export default function list(state, node) {
7
7
  }
8
8
  while (++index < results.length) {
9
9
  const child = results[index];
10
- if (child.type === "element" && child.tagName === "li" && child.properties && Array.isArray(child.properties.className) && child.properties.className.includes("task-list-item")) {
10
+ if (child && child.type === "element" && child.tagName === "li" && child.properties && Array.isArray(child.properties.className) && child.properties.className.includes("task-list-item")) {
11
11
  properties.className = ["contains-task-list"];
12
12
  break;
13
13
  }
@@ -14,4 +14,4 @@ export declare function parseThematicBlock(lang: string): {
14
14
  filename: string | undefined;
15
15
  meta: string;
16
16
  };
17
- export declare function getTagName(value: string): string | null;
17
+ export declare function getTagName(value: string): string | null | undefined;
@@ -26,7 +26,7 @@ export function parseThematicBlock(lang) {
26
26
  function parseHighlightedLines(lines) {
27
27
  const lineArray = String(lines || "").split(",").filter(Boolean).flatMap((line) => {
28
28
  const [start, end] = line.trim().split("-").map((a) => Number(a.trim()));
29
- return Array.from({ length: (end || start) - start + 1 }).map((_, i) => start + i);
29
+ return Array.from({ length: (end || start || 0) - (start || 0) + 1 }).map((_, i) => (start || 0) + i);
30
30
  });
31
31
  return lineArray.length ? lineArray : void 0;
32
32
  }
@@ -47,10 +47,7 @@ export const createParseProcessor = async (inlineOptions = {}) => {
47
47
  if (inlineOptions.highlight === false) {
48
48
  delete options.rehype.plugins.highlight;
49
49
  } else {
50
- options.rehype.plugins.highlight.options = {
51
- ...options.rehype.plugins.highlight.options || {},
52
- ...options.highlight || {}
53
- };
50
+ options.rehype.plugins.highlight.options = defu({}, options.rehype.plugins.highlight.options, options.highlight || {});
54
51
  }
55
52
  }
56
53
  let processor = unified();
@@ -1,3 +1,5 @@
1
+ export declare const unsafeTags: string[];
2
+ export declare const unsafeAttributes: string[];
1
3
  export declare const unsafeLinkPrefix: string[];
2
4
  export declare const validateProp: (attribute: string, value: string) => boolean;
3
5
  export declare const validateProps: (type: string, props?: Record<string, any>) => Record<string, any>;
@@ -1,3 +1,10 @@
1
+ export const unsafeTags = [
2
+ "object"
3
+ ];
4
+ export const unsafeAttributes = [
5
+ "srcdoc",
6
+ "formaction"
7
+ ];
1
8
  export const unsafeLinkPrefix = [
2
9
  "javascript:",
3
10
  "data:text/html",
@@ -25,7 +32,8 @@ function isAnchorLinkAllowed(value) {
25
32
  return true;
26
33
  }
27
34
  export const validateProp = (attribute, value) => {
28
- if (attribute.startsWith("on")) {
35
+ attribute = attribute.toLowerCase();
36
+ if (attribute.startsWith("on") || unsafeAttributes.includes(attribute)) {
29
37
  return false;
30
38
  }
31
39
  if (attribute === "href" || attribute === "src") {
@@ -34,6 +42,9 @@ export const validateProp = (attribute, value) => {
34
42
  return true;
35
43
  };
36
44
  export const validateProps = (type, props) => {
45
+ if (unsafeTags.includes(type)) {
46
+ return {};
47
+ }
37
48
  if (!props) {
38
49
  return {};
39
50
  }
@@ -35,13 +35,13 @@ export function mdcRemark(options) {
35
35
  return;
36
36
  }
37
37
  if (index && parent && parent.children) {
38
- if (index > 0 && parent.children[index - 1].type === "text") {
38
+ if (index > 0 && parent.children[index - 1]?.type === "text") {
39
39
  const text = parent.children[index - 1];
40
40
  if (!["\n", " ", " "].includes(text.value.slice(-1))) {
41
41
  text.value += " ";
42
42
  }
43
43
  }
44
- if (index && index < parent.children.length - 1 && parent.children[index + 1].type === "text") {
44
+ if (index && index < parent.children.length - 1 && parent.children[index + 1]?.type === "text") {
45
45
  const text = parent.children[index + 1];
46
46
  if (!["\n", " ", " ", ",", "."].includes(text.value.slice(0, 1))) {
47
47
  text.value = " " + text.value;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@nuxtjs/mdc",
3
- "version": "0.17.2",
3
+ "version": "0.17.4",
4
4
  "description": "Nuxt MDC module",
5
- "repository": "nuxt-modules/mdc",
5
+ "repository": "nuxt-content/mdc",
6
6
  "license": "MIT",
7
7
  "type": "module",
8
8
  "exports": {
@@ -68,13 +68,14 @@
68
68
  "verify": "npm run dev:prepare && npm run lint && npm run test && npm run typecheck"
69
69
  },
70
70
  "dependencies": {
71
- "@nuxt/kit": "^3.17.7",
72
- "@shikijs/langs": "^3.8.0",
73
- "@shikijs/themes": "^3.8.0",
74
- "@shikijs/transformers": "^3.8.0",
71
+ "@nuxt/kit": "^4.1.1",
72
+ "@shikijs/core": "^3.12.2",
73
+ "@shikijs/langs": "^3.12.2",
74
+ "@shikijs/themes": "^3.12.2",
75
+ "@shikijs/transformers": "^3.12.2",
75
76
  "@types/hast": "^3.0.4",
76
77
  "@types/mdast": "^4.0.4",
77
- "@vue/compiler-core": "^3.5.17",
78
+ "@vue/compiler-core": "^3.5.21",
78
79
  "consola": "^3.4.2",
79
80
  "debug": "^4.4.1",
80
81
  "defu": "^6.1.4",
@@ -96,42 +97,42 @@
96
97
  "rehype-slug": "^6.0.0",
97
98
  "rehype-sort-attribute-values": "^5.0.1",
98
99
  "rehype-sort-attributes": "^5.0.1",
99
- "remark-emoji": "^5.0.1",
100
+ "remark-emoji": "^5.0.2",
100
101
  "remark-gfm": "^4.0.1",
101
102
  "remark-mdc": "v3.6.0",
102
103
  "remark-parse": "^11.0.0",
103
104
  "remark-rehype": "^11.1.2",
104
105
  "remark-stringify": "^11.0.0",
105
106
  "scule": "^1.3.0",
106
- "shiki": "^3.8.0",
107
+ "shiki": "^3.12.2",
107
108
  "ufo": "^1.6.1",
108
109
  "unified": "^11.0.5",
109
110
  "unist-builder": "^4.0.0",
110
111
  "unist-util-visit": "^5.0.0",
111
- "unwasm": "^0.3.9",
112
+ "unwasm": "^0.3.11",
112
113
  "vfile": "^6.0.3"
113
114
  },
114
115
  "devDependencies": {
115
- "@nuxt/devtools": "^2.6.2",
116
- "@nuxt/eslint-config": "^1.5.2",
117
- "@nuxt/module-builder": "^1.0.1",
118
- "@nuxt/schema": "^3.17.7",
116
+ "@nuxt/devtools": "^2.6.3",
117
+ "@nuxt/eslint-config": "^1.9.0",
118
+ "@nuxt/module-builder": "^1.0.2",
119
+ "@nuxt/schema": "^4.1.1",
119
120
  "@nuxt/test-utils": "^3.19.2",
120
- "@nuxt/ui": "^3.2.0",
121
+ "@nuxt/ui": "^3.3.3",
121
122
  "@nuxtjs/mdc": "link:.",
122
- "@types/node": "^24.0.13",
123
- "eslint": "^9.31.0",
124
- "nuxt": "^3.17.7",
123
+ "@types/node": "^24.3.1",
124
+ "eslint": "^9.35.0",
125
+ "nuxt": "^4.1.1",
125
126
  "rehype": "^13.0.2",
126
- "release-it": "^19.0.3",
127
- "typescript": "5.8.3",
127
+ "release-it": "^19.0.4",
128
+ "typescript": "5.9.2",
128
129
  "vitest": "^3.2.4",
129
- "vue-tsc": "^3.0.1"
130
+ "vue-tsc": "^3.0.6"
130
131
  },
131
132
  "resolutions": {
132
133
  "@nuxtjs/mdc": "workspace:*"
133
134
  },
134
- "packageManager": "pnpm@10.13.1",
135
+ "packageManager": "pnpm@10.15.1",
135
136
  "release-it": {
136
137
  "git": {
137
138
  "commitMessage": "chore(release): release v${version}"