From d3cc9eb377f35e2488480fe2d4902567e7a9c54a Mon Sep 17 00:00:00 2001
From: Tilman Vatteroth <git@tilmanvatteroth.de>
Date: Sun, 20 Apr 2025 20:26:41 +0200
Subject: [PATCH] deps: migrate to markdown-it 14

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
---
 backend/package.json                        |  4 ++--
 frontend/package.json                       |  4 ++--
 markdown-it-plugins/package.json            |  4 ++--
 markdown-it-plugins/src/image-size/index.ts | 10 +++++-----
 markdown-it-plugins/src/task-lists/index.ts |  6 +++---
 markdown-it-plugins/src/toc/plugin.ts       |  8 ++++----
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/backend/package.json b/backend/package.json
index cb12dcb28..e1d99f28f 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -53,7 +53,7 @@
     "file-type": "16.5.4",
     "htmlparser2": "9.1.0",
     "ldapauth-fork": "6.1.0",
-    "markdown-it": "13.0.2",
+    "markdown-it": "14.1.0",
     "minio": "8.0.4",
     "mysql": "2.18.1",
     "nestjs-zod": "4.3.1",
@@ -85,7 +85,7 @@
     "@types/express": "5.0.1",
     "@types/express-session": "1.18.1",
     "@types/jest": "29.5.14",
-    "@types/markdown-it": "13.0.9",
+    "@types/markdown-it": "14.1.2",
     "@types/mysql": "2.15.27",
     "@types/node": "20.16.15",
     "@types/node-fetch": "2.6.12",
diff --git a/frontend/package.json b/frontend/package.json
index 92ee955fa..717a7bfdc 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -77,7 +77,7 @@
     "i18next-resources-to-backend": "1.2.1",
     "katex": "0.16.21",
     "luxon": "3.5.0",
-    "markdown-it": "13.0.2",
+    "markdown-it": "14.1.0",
     "markdown-it-abbr": "2.0.0",
     "markdown-it-anchor": "9.2.0",
     "markdown-it-container": "4.0.0",
@@ -132,7 +132,7 @@
     "@types/jest": "29.5.14",
     "@types/katex": "0.16.7",
     "@types/luxon": "3.4.2",
-    "@types/markdown-it": "13.0.9",
+    "@types/markdown-it": "14.1.2",
     "@types/markdown-it-container": "2.0.10",
     "@types/markdown-it-plantuml": "1.4.5",
     "@types/node": "20.16.15",
diff --git a/markdown-it-plugins/package.json b/markdown-it-plugins/package.json
index d86ada349..429816b1f 100644
--- a/markdown-it-plugins/package.json
+++ b/markdown-it-plugins/package.json
@@ -109,7 +109,7 @@
   },
   "devDependencies": {
     "@jest/types": "29.6.3",
-    "@types/markdown-it": "13.0.9",
+    "@types/markdown-it": "14.1.2",
     "@typescript-eslint/eslint-plugin": "8.14.0",
     "@typescript-eslint/parser": "8.14.0",
     "eslint": "8.57.1",
@@ -117,7 +117,7 @@
     "eslint-plugin-jest": "28.9.0",
     "eslint-plugin-prettier": "5.2.3",
     "jest": "29.7.0",
-    "markdown-it": "13.0.2",
+    "markdown-it": "14.1.0",
     "prettier": "3.3.3",
     "ts-jest": "29.2.5",
     "typescript": "5.6.3"
diff --git a/markdown-it-plugins/src/image-size/index.ts b/markdown-it-plugins/src/image-size/index.ts
index 656cae29c..ba93a2406 100644
--- a/markdown-it-plugins/src/image-size/index.ts
+++ b/markdown-it-plugins/src/image-size/index.ts
@@ -4,9 +4,9 @@
  * SPDX-License-Identifier: MIT
  */
 
-import MarkdownIt from 'markdown-it'
-import ParserInline from 'markdown-it/lib/parser_inline.js'
-import StateInline from 'markdown-it/lib/rules_inline/state_inline.js'
+import MarkdownIt, { PluginSimple } from 'markdown-it'
+import { RuleInline } from 'markdown-it/lib/parser_inline.mjs'
+import StateInline from 'markdown-it/lib/rules_inline/state_inline.mjs'
 import { ParseImageSize, parseImageSize } from './parse-image-size.js'
 import { SpecialCharacters } from './specialCharacters.js'
 
@@ -121,7 +121,7 @@ function parseLink(state: StateInline, startPosition: number): ParseLinkResult |
   }
 }
 
-const imageWithSize: ParserInline.RuleInline = (state, silent) => {
+const imageWithSize: RuleInline = (state, silent) => {
   let position,
     title,
     start,
@@ -249,6 +249,6 @@ const imageWithSize: ParserInline.RuleInline = (state, silent) => {
   return true
 }
 
-export const imageSize: MarkdownIt.PluginSimple = (md: MarkdownIt) => {
+export const imageSize: PluginSimple = (md: MarkdownIt) => {
   md.inline.ruler.before('emphasis', 'image', imageWithSize)
 }
diff --git a/markdown-it-plugins/src/task-lists/index.ts b/markdown-it-plugins/src/task-lists/index.ts
index 0d8fd715e..17dec00cc 100644
--- a/markdown-it-plugins/src/task-lists/index.ts
+++ b/markdown-it-plugins/src/task-lists/index.ts
@@ -9,9 +9,9 @@
 // https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments
 // https://github.com/blog/1825-task-lists-in-all-markdown-documents
 
-import MarkdownIt from 'markdown-it/lib'
-import StateCore from 'markdown-it/lib/rules_core/state_core.js'
-import Token from 'markdown-it/lib/token.js'
+import MarkdownIt from 'markdown-it'
+import Token from 'markdown-it/lib/token.mjs'
+import StateCore from 'markdown-it/lib/rules_core/state_core.mjs'
 
 interface TaskListsOptions {
   enabled: boolean
diff --git a/markdown-it-plugins/src/toc/plugin.ts b/markdown-it-plugins/src/toc/plugin.ts
index cb455a743..2585af123 100644
--- a/markdown-it-plugins/src/toc/plugin.ts
+++ b/markdown-it-plugins/src/toc/plugin.ts
@@ -6,9 +6,9 @@
 
 import { Optional } from '@mrdrogdrog/optional'
 import { encode as htmlencode } from 'html-entities'
-import MarkdownIt from 'markdown-it'
-import StateBlock from 'markdown-it/lib/rules_block/state_block.js'
-import Token from 'markdown-it/lib/token.js'
+import MarkdownIt, { PluginWithOptions } from 'markdown-it'
+import StateBlock from 'markdown-it/lib/rules_block/state_block.mjs'
+import Token from 'markdown-it/lib/token.mjs'
 import { TocAst } from './toc-ast.js'
 import { renderAstToHtml } from './toc-body-renderer.js'
 import { defaultOptions, TocOptions } from './toc-options.js'
@@ -154,4 +154,4 @@ class Plugin {
  * @param md The markdown-it instance that should be configured
  * @param options The additional options that configure the plugin
  */
-export const toc: MarkdownIt.PluginWithOptions<Partial<TocOptions>> = (md, options) => new Plugin(md, options)
+export const toc: PluginWithOptions<Partial<TocOptions>> = (md, options) => new Plugin(md, options)