Skip to content

Commit 4d53eab

Browse files
Dedelweissckipp01
andauthored
deps(scaladoc): update flexmark from 0.42.12 to 0.62.2 (#17347)
This pr updates the flexmark dependencies used in Scaladoc from 0.42.12, which is from 2019, up to 0.62.2. This is mainly done to tackle a bunch of CVEs that are attached to the old versions of flexmark. fixes #16223 --------- Co-authored-by: Chris Kipp <[email protected]>
1 parent cc05574 commit 4d53eab

28 files changed

+69
-137
lines changed

dist/bin/scaladoc

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,31 @@ classpathArgs () {
6161
CLASS_PATH+="$(find_lib "*tasty-core*")$PSEP"
6262
CLASS_PATH+="$(find_lib "*scala3-tasty-inspector*")$PSEP"
6363
CLASS_PATH+="$(find_lib "*flexmark-0*")$PSEP"
64-
CLASS_PATH+="$(find_lib "*flexmark-html-parser*")$PSEP"
64+
CLASS_PATH+="$(find_lib "*flexmark*")$PSEP"
6565
CLASS_PATH+="$(find_lib "*flexmark-ext-anchorlink*")$PSEP"
6666
CLASS_PATH+="$(find_lib "*flexmark-ext-autolink*")$PSEP"
6767
CLASS_PATH+="$(find_lib "*flexmark-ext-emoji*")$PSEP"
6868
CLASS_PATH+="$(find_lib "*flexmark-ext-gfm-strikethrough*")$PSEP"
69-
CLASS_PATH+="$(find_lib "*flexmark-ext-gfm-tables*")$PSEP"
7069
CLASS_PATH+="$(find_lib "*flexmark-ext-gfm-tasklist*")$PSEP"
7170
CLASS_PATH+="$(find_lib "*flexmark-ext-wikilink*")$PSEP"
7271
CLASS_PATH+="$(find_lib "*flexmark-ext-yaml-front-matter*")$PSEP"
72+
CLASS_PATH+="$(find_lib "*flexmark-ext-tables*")$PSEP"
73+
CLASS_PATH+="$(find_lib "*flexmark-ext-ins*")$PSEP"
74+
CLASS_PATH+="$(find_lib "*flexmark-ext-superscript*")$PSEP"
75+
CLASS_PATH+="$(find_lib "*flexmark-util*")$PSEP"
76+
CLASS_PATH+="$(find_lib "*flexmark-util-ast*")$PSEP"
77+
CLASS_PATH+="$(find_lib "*flexmark-util-data*")$PSEP"
78+
CLASS_PATH+="$(find_lib "*flexmark-util-dependency*")$PSEP"
79+
CLASS_PATH+="$(find_lib "*flexmark-util-misc*")$PSEP"
80+
CLASS_PATH+="$(find_lib "*flexmark-util-format*")$PSEP"
81+
CLASS_PATH+="$(find_lib "*flexmark-util-sequence*")$PSEP"
82+
CLASS_PATH+="$(find_lib "*flexmark-util-builder*")$PSEP"
83+
CLASS_PATH+="$(find_lib "*flexmark-util-collection*")$PSEP"
84+
CLASS_PATH+="$(find_lib "*flexmark-util-visitor*")$PSEP"
85+
CLASS_PATH+="$(find_lib "*flexmark-util-options*")$PSEP"
86+
CLASS_PATH+="$(find_lib "*flexmark-util-html*")$PSEP"
87+
CLASS_PATH+="$(find_lib "*flexmark-formatter*")$PSEP"
88+
CLASS_PATH+="$(find_lib "*flexmark-ast*")$PSEP"
7389
CLASS_PATH+="$(find_lib "*liqp*")$PSEP"
7490
CLASS_PATH+="$(find_lib "*jsoup*")$PSEP"
7591
CLASS_PATH+="$(find_lib "*jackson-dataformat-yaml*")$PSEP"
@@ -80,7 +96,6 @@ classpathArgs () {
8096
CLASS_PATH+="$(find_lib "*jline-reader*")$PSEP"
8197
CLASS_PATH+="$(find_lib "*jline-terminal-3*")$PSEP"
8298
CLASS_PATH+="$(find_lib "*jline-terminal-jna*")$PSEP"
83-
CLASS_PATH+="$(find_lib "*flexmark-util*")$PSEP"
8499
CLASS_PATH+="$(find_lib "*flexmark-formatter*")$PSEP"
85100
CLASS_PATH+="$(find_lib "*autolink-0.6*")$PSEP"
86101
CLASS_PATH+="$(find_lib "*flexmark-jira-converter*")$PSEP"
@@ -93,9 +108,6 @@ classpathArgs () {
93108
CLASS_PATH+="$(find_lib "*protobuf-java*")$PSEP"
94109
CLASS_PATH+="$(find_lib "*util-interface*")$PSEP"
95110
CLASS_PATH+="$(find_lib "*jna-5*")$PSEP"
96-
CLASS_PATH+="$(find_lib "*flexmark-ext-tables*")$PSEP"
97-
CLASS_PATH+="$(find_lib "*flexmark-ext-ins*")$PSEP"
98-
CLASS_PATH+="$(find_lib "*flexmark-ext-superscript*")$PSEP"
99111
CLASS_PATH+="$(find_lib "*antlr4-runtime*")$PSEP"
100112

101113
jvm_cp_args="-classpath \"$CLASS_PATH\""

project/Dependencies.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,21 @@ object Dependencies {
1010
val `jackson-dataformat-yaml` =
1111
"com.fasterxml.jackson.dataformat" % "jackson-dataformat-yaml" % jacksonVersion
1212

13-
private val flexmarkVersion = "0.42.12"
13+
// Freeze on 0.62.x as 0.64.0 requires Java 11
14+
private val flexmarkVersion = "0.62.2"
1415

1516
val flexmarkDeps = Seq(
1617
"com.vladsch.flexmark" % "flexmark" % flexmarkVersion,
17-
"com.vladsch.flexmark" % "flexmark-html-parser" % flexmarkVersion,
18+
"com.vladsch.flexmark" % "flexmark-util-ast" % flexmarkVersion,
19+
"com.vladsch.flexmark" % "flexmark-util-data" % flexmarkVersion,
20+
"com.vladsch.flexmark" % "flexmark-util-html" % flexmarkVersion,
1821
"com.vladsch.flexmark" % "flexmark-ext-anchorlink" % flexmarkVersion,
1922
"com.vladsch.flexmark" % "flexmark-ext-autolink" % flexmarkVersion,
2023
"com.vladsch.flexmark" % "flexmark-ext-emoji" % flexmarkVersion,
2124
"com.vladsch.flexmark" % "flexmark-ext-gfm-strikethrough" % flexmarkVersion,
22-
"com.vladsch.flexmark" % "flexmark-ext-gfm-tables" % flexmarkVersion,
2325
"com.vladsch.flexmark" % "flexmark-ext-gfm-tasklist" % flexmarkVersion,
2426
"com.vladsch.flexmark" % "flexmark-ext-wikilink" % flexmarkVersion,
27+
"com.vladsch.flexmark" % "flexmark-ext-tables" % flexmarkVersion,
2528
"com.vladsch.flexmark" % "flexmark-ext-yaml-front-matter" % flexmarkVersion,
2629
)
2730

scaladoc/src/dotty/tools/scaladoc/DocContext.scala

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
package dotty.tools.scaladoc
22

33
import java.io.File
4-
import java.nio.file.Files
54
import java.nio.file.Path
65
import java.nio.file.Paths
76

8-
import scala.jdk.CollectionConverters._
97
import dotty.tools.scaladoc.site.StaticSiteContext
108
import dotty.tools.dotc.core.Contexts._
119
import dotty.tools.dotc.util.SourceFile
1210
import dotty.tools.dotc.util.SourcePosition
1311
import dotty.tools.dotc.util.Spans
1412
import java.io.ByteArrayOutputStream
1513
import java.io.PrintStream
16-
import scala.io.Codec
17-
import java.net.URL
18-
import scala.util.Try
1914
import scala.collection.mutable
2015
import dotty.tools.scaladoc.util.Check.checkJekyllIncompatPath
2116

scaladoc/src/dotty/tools/scaladoc/Main.scala

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
11
package dotty.tools.scaladoc
22

3-
import java.util.ServiceLoader
4-
import java.io.File
5-
import java.util.jar._
6-
import scala.jdk.CollectionConverters._
7-
import collection.immutable.ArraySeq
8-
9-
import java.nio.file.Files
10-
11-
import dotty.tools.dotc.config.Settings._
12-
import dotty.tools.dotc.config.CommonScalaSettings
13-
import dotty.tools.dotc.core.Contexts._
3+
import dotty.tools.dotc.core.Contexts.ContextBase
144

155
/** Main class for the doctool when used from cli. */
166
class Main:

scaladoc/src/dotty/tools/scaladoc/Scaladoc.scala

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
package dotty.tools.scaladoc
22

3-
import java.util.ServiceLoader
43
import java.io.File
54
import java.io.FileWriter
6-
import java.util.jar._
7-
import scala.jdk.CollectionConverters._
8-
import collection.immutable.ArraySeq
5+
import java.nio.file.Paths
96

10-
import java.nio.file.{ Files, Paths }
7+
import collection.immutable.ArraySeq
118

129
import dotty.tools.dotc.config.Settings._
1310
import dotty.tools.dotc.config.{ CommonScalaSettings, AllScalaSettings }
1411
import dotty.tools.dotc.reporting.Reporter
1512
import dotty.tools.dotc.core.Contexts._
16-
17-
import dotty.tools.scaladoc.Inkuire
1813
import dotty.tools.scaladoc.Inkuire._
1914

2015
object Scaladoc:

scaladoc/src/dotty/tools/scaladoc/ScaladocCommand.scala

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
11
package dotty.tools.scaladoc
22

3-
import java.util.ServiceLoader
4-
import java.io.File
5-
import java.util.jar._
6-
import scala.jdk.CollectionConverters._
7-
import collection.immutable.ArraySeq
8-
9-
import java.nio.file.Files
10-
113
import dotty.tools.dotc.config.Settings._
12-
import dotty.tools.dotc.config.CommonScalaSettings
13-
import dotty.tools.scaladoc.Scaladoc._
14-
import dotty.tools.dotc.config.Settings.Setting.value
154
import dotty.tools.dotc.config.Properties._
165
import dotty.tools.dotc.config.CliCommand
17-
import dotty.tools.dotc.core.Contexts._
6+
import dotty.tools.dotc.core.Contexts.Context
187

198
object ScaladocCommand extends CliCommand:
209
type ConcreteSettings = ScaladocSettings

scaladoc/src/dotty/tools/scaladoc/ScaladocSettings.scala

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,7 @@
11
package dotty.tools.scaladoc
22

3-
import java.util.ServiceLoader
4-
import java.io.File
5-
import java.util.jar._
6-
import scala.jdk.CollectionConverters._
7-
import collection.immutable.ArraySeq
8-
9-
import java.nio.file.Files
10-
113
import dotty.tools.dotc.config.Settings._
124
import dotty.tools.dotc.config.AllScalaSettings
13-
import dotty.tools.scaladoc.Scaladoc._
14-
import dotty.tools.dotc.config.Settings.Setting.value
15-
import dotty.tools.dotc.config.Properties._
16-
import dotty.tools.dotc.config.CliCommand
17-
import dotty.tools.dotc.core.Contexts._
185

196
class ScaladocSettings extends SettingGroup with AllScalaSettings:
207
val unsupportedSettings = Seq(

scaladoc/src/dotty/tools/scaladoc/SocialLinks.scala

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package dotty.tools.scaladoc
22

3-
import java.nio.file.Path
4-
import java.nio.file.Paths
5-
import dotty.tools.dotc.core.Contexts.Context
6-
73
enum SocialLinks(val url: String, val className: String):
84
case Github(ghUrl: String) extends SocialLinks(ghUrl, "gh")
95
case Twitter(tUrl: String) extends SocialLinks(tUrl, "twitter")

scaladoc/src/dotty/tools/scaladoc/SourceLinks.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package dotty.tools.scaladoc
22

33
import java.nio.file.Path
44
import java.nio.file.Paths
5-
import dotty.tools.dotc.core.Contexts.Context
65
import scala.util.matching.Regex
76

87
def pathToString(p: Path) =

scaladoc/src/dotty/tools/scaladoc/compat.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package dotty.tools.scaladoc
33
import java.util.stream.Stream // comment out - wrong error!
44
import java.util.stream.Collectors
55
import java.util.Collections
6-
import java.nio.file.Path
76
import com.vladsch.flexmark.util.ast.{Node => MdNode}
87
import dotty.tools.scaladoc.tasty.comments.wiki.WikiDocElement
98
import scala.jdk.CollectionConverters._
@@ -37,4 +36,4 @@ extension [V](jlist: JList[V])
3736

3837
extension [V](jset: JSet[V])
3938
def ++ (other: JSet[V]): JSet[V] =
40-
Stream.of(jset, other).flatMap(_.stream).collect(Collectors.toSet())
39+
Stream.of(jset, other).flatMap(_.stream).collect(Collectors.toSet())

scaladoc/src/dotty/tools/scaladoc/parsers/WikiCodeBlockParser.scala

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ import com.vladsch.flexmark.parser.core._
66
import com.vladsch.flexmark.parser.block._
77
import com.vladsch.flexmark.util.ast.Block
88
import com.vladsch.flexmark.util.ast.BlockContent
9-
import com.vladsch.flexmark.util.options.DataHolder
9+
import com.vladsch.flexmark.util.data.DataHolder
1010
import com.vladsch.flexmark.util.sequence.BasedSequence
1111
import com.vladsch.flexmark.util.sequence.SegmentedSequence
1212

1313
import java.{util => ju}
1414
import ju.regex.Matcher
1515
import ju.regex.Pattern
16+
import scala.jdk.CollectionConverters._
1617

1718

1819
/** Copied from FencedCodeBlockParser. */
@@ -21,8 +22,11 @@ object WikiCodeBlockParser {
2122
private val CLOSING_FENCE = Pattern.compile("^(\\}{3})(?=[ \t]*$)$")
2223

2324
class Factory extends CustomBlockParserFactory {
25+
override def apply(options: DataHolder): BlockParserFactory =
26+
new WikiCodeBlockParser.BlockFactory(options)
27+
2428
override def getAfterDependents =
25-
new ju.HashSet[Class[_ <: CustomBlockParserFactory]](ju.Arrays.asList(
29+
new ju.HashSet[Class[?]](ju.Arrays.asList(
2630
classOf[BlockQuoteParser.Factory],
2731
classOf[HeadingParser.Factory],
2832
//FencedCodeBlockParser.Factory.class,
@@ -33,7 +37,7 @@ object WikiCodeBlockParser {
3337
))
3438

3539
override def getBeforeDependents =
36-
new ju.HashSet[Class[_ <: CustomBlockParserFactory]](ju.Arrays.asList(
40+
new ju.HashSet[Class[?]](ju.Arrays.asList(
3741
//BlockQuoteParser.Factory.class,
3842
//HeadingParser.Factory.class,
3943
//FencedCodeBlockParser.Factory.class,
@@ -44,9 +48,6 @@ object WikiCodeBlockParser {
4448
))
4549

4650
override def affectsGlobalScope = false
47-
48-
override def create(options: DataHolder) =
49-
new WikiCodeBlockParser.BlockFactory(options)
5051
}
5152

5253
private[WikiCodeBlockParser] class BlockFactory (val options: DataHolder)
@@ -83,7 +84,7 @@ class WikiCodeBlockParser(
8384

8485
final private val block = new FencedCodeBlock()
8586
private var content = new BlockContent
86-
private val codeContentBlock = options.get(Parser.FENCED_CODE_CONTENT_BLOCK)
87+
private val codeContentBlock = Parser.FENCED_CODE_CONTENT_BLOCK.get(options)
8788

8889
def getBlock: Block = block
8990
def getFenceIndent: Int = fenceIndent
@@ -141,7 +142,7 @@ class WikiCodeBlockParser(
141142
codeBlock.setCharsFromContent
142143
block.appendChild(codeBlock)
143144
} else {
144-
val codeBlock = new Text(SegmentedSequence.of(segments))
145+
val codeBlock = new Text(SegmentedSequence.create(segments.asScala.toSeq:_*))
145146
block.appendChild(codeBlock)
146147
}
147148
}

scaladoc/src/dotty/tools/scaladoc/renderers/HtmlRenderer.scala

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,9 @@ package dotty.tools.scaladoc
22
package renderers
33

44
import util.HTML._
5-
import scala.jdk.CollectionConverters._
6-
import java.net.URI
7-
import java.net.URL
85
import dotty.tools.scaladoc.site._
9-
import scala.util.Try
106
import org.jsoup.Jsoup
11-
import java.nio.file.Paths
12-
import java.nio.file.Path
137
import java.nio.file.Files
14-
import java.nio.file.FileVisitOption
15-
import java.io.File
16-
import dotty.tools.scaladoc.staticFileSymbolUUID
178

189
class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: DocContext)
1910
extends Renderer(rootPackage, members, extension = "html"):

scaladoc/src/dotty/tools/scaladoc/renderers/Locations.scala

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
package dotty.tools.scaladoc
22
package renderers
33

4-
import util.HTML._
54
import scala.jdk.CollectionConverters._
65
import java.net.URI
7-
import java.net.URL
86
import dotty.tools.scaladoc.site._
9-
import scala.util.Try
10-
import org.jsoup.Jsoup
117
import java.nio.file.Paths
12-
import java.nio.file.Path
13-
import java.nio.file.Files
14-
import java.io.File
15-
import scala.util.matching._
168
import dotty.tools.scaladoc.util.Escape._
179

1810
val UnresolvedLocationLink = "#"

scaladoc/src/dotty/tools/scaladoc/renderers/MarkdownRenderer.scala

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,6 @@ package dotty.tools.scaladoc
22
package renderers
33

44
import util.HTML._
5-
import scala.jdk.CollectionConverters._
6-
import java.net.URI
7-
import java.net.URL
8-
import dotty.tools.scaladoc.site._
9-
import scala.util.Try
10-
import org.jsoup.Jsoup
11-
import java.nio.file.Paths
12-
import java.nio.file.Path
13-
import java.nio.file.Files
14-
import java.nio.file.FileVisitOption
15-
import java.io.File
165

176
class MarkdownRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: DocContext)
187
extends Renderer(rootPackage, members, extension = "md"):

scaladoc/src/dotty/tools/scaladoc/renderers/MemberRenderer.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ import util.HTML.{div, *}
77

88
import scala.jdk.CollectionConverters.*
99
import dotty.tools.scaladoc.translators.FilterAttributes
10-
import dotty.tools.scaladoc.tasty.comments.markdown.DocFlexmarkRenderer
11-
import com.vladsch.flexmark.util.ast.Node as MdNode
12-
import dotty.tools.scaladoc.tasty.comments.wiki.WikiDocElement
1310
import org.jsoup.Jsoup
1411
import translators.*
1512

scaladoc/src/dotty/tools/scaladoc/renderers/Renderer.scala

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,11 @@ package dotty.tools.scaladoc
22
package renderers
33

44
import util.HTML._
5-
import scala.jdk.CollectionConverters._
65
import collection.mutable.ListBuffer
7-
import java.net.URI
8-
import java.net.URL
96
import dotty.tools.scaladoc.site._
10-
import scala.util.Try
11-
import org.jsoup.Jsoup
127
import java.nio.file.Paths
138
import java.nio.file.Path
149
import java.nio.file.Files
15-
import java.nio.file.FileVisitOption
16-
import java.io.File
1710

1811
case class Page(link: Link, content: Member | ResolvedTemplate | String, children: Seq[Page], hidden: Boolean = false):
1912
def withNewChildren(newChildren: Seq[Page]) = copy(children = children ++ newChildren)

scaladoc/src/dotty/tools/scaladoc/renderers/Resources.scala

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,10 @@ package dotty.tools.scaladoc
22
package renderers
33

44
import util.HTML._
5-
import scala.jdk.CollectionConverters._
6-
import java.net.URI
75
import java.net.URL
8-
import dotty.tools.scaladoc.site._
9-
import scala.util.Try
10-
import org.jsoup.Jsoup
116
import java.nio.file.Paths
127
import java.nio.file.Path
138
import java.nio.file.Files
14-
import java.io.File
159
import dotty.tools.scaladoc.translators.FilterAttributes
1610
import util._
1711
import translators._
@@ -190,7 +184,6 @@ trait Resources(using ctx: DocContext) extends Locations, Writer:
190184

191185
def docPartRenderPlain(d: DocPart): String =
192186
import dotty.tools.scaladoc.tasty.comments.wiki._
193-
import com.vladsch.flexmark.util.ast.{Node => MdNode}
194187
def renderPlain(wd: WikiDocElement): String =
195188
wd match
196189
case Paragraph(text) => renderPlain(text)

scaladoc/src/dotty/tools/scaladoc/site/FlexmarkSectionWrapper.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package site
44
import com.vladsch.flexmark.util.{ast => mdu, sequence}
55
import com.vladsch.flexmark.{ast => mda}
66
import com.vladsch.flexmark.formatter.Formatter
7-
import com.vladsch.flexmark.util.options.MutableDataSet
87
import scala.jdk.CollectionConverters._
98

109
import dotty.tools.scaladoc.tasty.comments.markdown.Section

0 commit comments

Comments
 (0)