From 67741444043adae797021c14e309affb73e5ad56 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Wed, 17 May 2023 06:05:53 +0100 Subject: tools: update remark-preset-lint-node to 4.0.0 PR-URL: https://github.com/nodejs/node/pull/47995 Reviewed-By: Antoine du Hamel Reviewed-By: Darshan Sen --- tools/lint-md/lint-md.mjs | 1168 +++++++++++++++++++++------------------ tools/lint-md/package-lock.json | 302 +++++----- tools/lint-md/package.json | 6 +- 3 files changed, 775 insertions(+), 701 deletions(-) diff --git a/tools/lint-md/lint-md.mjs b/tools/lint-md/lint-md.mjs index 2c364ffbf1..d1f76da5b5 100644 --- a/tools/lint-md/lint-md.mjs +++ b/tools/lint-md/lint-md.mjs @@ -1,7 +1,6 @@ import fs from 'fs'; import path$1 from 'path'; import { fileURLToPath, pathToFileURL, URL as URL$1 } from 'url'; -import require$$5 from 'util'; import proc from 'process'; import process$1 from 'node:process'; import os from 'node:os'; @@ -10179,444 +10178,516 @@ function gfmStrikethrough(options) { } } -const gfmTable = { - flow: { - null: { - tokenize: tokenizeTable, - resolve: resolveTable - } +class EditMap { + constructor() { + this.map = []; } -}; -const nextPrefixedOrBlank = { - tokenize: tokenizeNextPrefixedOrBlank, - partial: true -}; -function resolveTable(events, context) { - let index = -1; - let inHead; - let inDelimiterRow; - let inRow; - let contentStart; - let contentEnd; - let cellStart; - let seenCellInRow; - while (++index < events.length) { - const token = events[index][1]; - if (inRow) { - if (token.type === 'temporaryTableCellContent') { - contentStart = contentStart || index; - contentEnd = index; - } - if ( - (token.type === 'tableCellDivider' || token.type === 'tableRow') && - contentEnd - ) { - const content = { - type: 'tableContent', - start: events[contentStart][1].start, - end: events[contentEnd][1].end - }; - const text = { - type: 'chunkText', - start: content.start, - end: content.end, - contentType: 'text' - }; - events.splice( - contentStart, - contentEnd - contentStart + 1, - ['enter', content, context], - ['enter', text, context], - ['exit', text, context], - ['exit', content, context] - ); - index -= contentEnd - contentStart - 3; - contentStart = undefined; - contentEnd = undefined; - } + add(index, remove, add) { + addImpl(this, index, remove, add); + } + consume(events) { + this.map.sort((a, b) => a[0] - b[0]); + if (this.map.length === 0) { + return } - if ( - events[index][0] === 'exit' && - cellStart !== undefined && - cellStart + (seenCellInRow ? 0 : 1) < index && - (token.type === 'tableCellDivider' || - (token.type === 'tableRow' && - (cellStart + 3 < index || - events[cellStart][1].type !== 'whitespace'))) - ) { - const cell = { - type: inDelimiterRow - ? 'tableDelimiter' - : inHead - ? 'tableHeader' - : 'tableData', - start: events[cellStart][1].start, - end: events[index][1].end - }; - events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [ - 'exit', - cell, - context - ]); - events.splice(cellStart, 0, ['enter', cell, context]); - index += 2; - cellStart = index + 1; - seenCellInRow = true; + let index = this.map.length; + const vecs = []; + while (index > 0) { + index -= 1; + vecs.push(events.slice(this.map[index][0] + this.map[index][1])); + vecs.push(this.map[index][2]); + events.length = this.map[index][0]; + } + vecs.push([...events]); + events.length = 0; + let slice = vecs.pop(); + while (slice) { + events.push(...slice); + slice = vecs.pop(); + } + this.map.length = 0; + } +} +function addImpl(editMap, at, remove, add) { + let index = 0; + if (remove === 0 && add.length === 0) { + return + } + while (index < editMap.map.length) { + if (editMap.map[index][0] === at) { + editMap.map[index][1] += remove; + editMap.map[index][2].push(...add); + return } - if (token.type === 'tableRow') { - inRow = events[index][0] === 'enter'; - if (inRow) { - cellStart = index + 1; - seenCellInRow = false; + index += 1; + } + editMap.map.push([at, remove, add]); +} + +function gfmTableAlign(events, index) { + let inDelimiterRow = false; + const align = []; + while (index < events.length) { + const event = events[index]; + if (inDelimiterRow) { + if (event[0] === 'enter') { + if (event[1].type === 'tableContent') { + align.push( + events[index + 1][1].type === 'tableDelimiterMarker' + ? 'left' + : 'none' + ); + } } - } - if (token.type === 'tableDelimiterRow') { - inDelimiterRow = events[index][0] === 'enter'; - if (inDelimiterRow) { - cellStart = index + 1; - seenCellInRow = false; + else if (event[1].type === 'tableContent') { + if (events[index - 1][1].type === 'tableDelimiterMarker') { + const alignIndex = align.length - 1; + align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'; + } } + else if (event[1].type === 'tableDelimiterRow') { + break + } + } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') { + inDelimiterRow = true; } - if (token.type === 'tableHead') { - inHead = events[index][0] === 'enter'; - } + index += 1; } - return events + return align } + +const gfmTable = { + flow: { + null: { + tokenize: tokenizeTable, + resolveAll: resolveTable + } + } +}; function tokenizeTable(effects, ok, nok) { const self = this; - const align = []; - let tableHeaderCount = 0; - let seenDelimiter; - let hasDash; + let size = 0; + let sizeB = 0; + let seen; return start function start(code) { - effects.enter('table')._align = align; + let index = self.events.length - 1; + while (index > -1) { + const type = self.events[index][1].type; + if ( + type === 'lineEnding' || + type === 'linePrefix' + ) + index--; + else break + } + const tail = index > -1 ? self.events[index][1].type : null; + const next = + tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore; + if (next === bodyRowStart && self.parser.lazy[self.now().line]) { + return nok(code) + } + return next(code) + } + function headRowBefore(code) { effects.enter('tableHead'); effects.enter('tableRow'); + return headRowStart(code) + } + function headRowStart(code) { if (code === 124) { - return cellDividerHead(code) + return headRowBreak(code) } - tableHeaderCount++; - effects.enter('temporaryTableCellContent'); - return inCellContentHead(code) - } - function cellDividerHead(code) { - effects.enter('tableCellDivider'); - effects.consume(code); - effects.exit('tableCellDivider'); - seenDelimiter = true; - return cellBreakHead + seen = true; + sizeB += 1; + return headRowBreak(code) } - function cellBreakHead(code) { - if (code === null || markdownLineEnding(code)) { - return atRowEndHead(code) + function headRowBreak(code) { + if (code === null) { + return nok(code) + } + if (markdownLineEnding(code)) { + if (sizeB > 1) { + sizeB = 0; + self.interrupt = true; + effects.exit('tableRow'); + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return headDelimiterStart + } + return nok(code) } if (markdownSpace(code)) { - effects.enter('whitespace'); - effects.consume(code); - return inWhitespaceHead + return factorySpace(effects, headRowBreak, 'whitespace')(code) } - if (seenDelimiter) { - seenDelimiter = undefined; - tableHeaderCount++; + sizeB += 1; + if (seen) { + seen = false; + size += 1; } if (code === 124) { - return cellDividerHead(code) - } - effects.enter('temporaryTableCellContent'); - return inCellContentHead(code) - } - function inWhitespaceHead(code) { - if (markdownSpace(code)) { + effects.enter('tableCellDivider'); effects.consume(code); - return inWhitespaceHead + effects.exit('tableCellDivider'); + seen = true; + return headRowBreak } - effects.exit('whitespace'); - return cellBreakHead(code) + effects.enter('data'); + return headRowData(code) } - function inCellContentHead(code) { + function headRowData(code) { if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { - effects.exit('temporaryTableCellContent'); - return cellBreakHead(code) + effects.exit('data'); + return headRowBreak(code) } effects.consume(code); - return code === 92 ? inCellContentEscapeHead : inCellContentHead + return code === 92 ? headRowEscape : headRowData } - function inCellContentEscapeHead(code) { + function headRowEscape(code) { if (code === 92 || code === 124) { effects.consume(code); - return inCellContentHead + return headRowData } - return inCellContentHead(code) + return headRowData(code) } - function atRowEndHead(code) { - if (code === null) { + function headDelimiterStart(code) { + self.interrupt = false; + if (self.parser.lazy[self.now().line]) { return nok(code) } - effects.exit('tableRow'); - effects.exit('tableHead'); - const originalInterrupt = self.interrupt; - self.interrupt = true; - return effects.attempt( - { - tokenize: tokenizeRowEnd, - partial: true - }, - function (code) { - self.interrupt = originalInterrupt; - effects.enter('tableDelimiterRow'); - return atDelimiterRowBreak(code) - }, - function (code) { - self.interrupt = originalInterrupt; - return nok(code) - } - )(code) - } - function atDelimiterRowBreak(code) { - if (code === null || markdownLineEnding(code)) { - return rowEndDelimiter(code) - } + effects.enter('tableDelimiterRow'); + seen = false; if (markdownSpace(code)) { - effects.enter('whitespace'); - effects.consume(code); - return inWhitespaceDelimiter - } - if (code === 45) { - effects.enter('tableDelimiterFiller'); - effects.consume(code); - hasDash = true; - align.push('none'); - return inFillerDelimiter + return factorySpace( + effects, + headDelimiterBefore, + 'linePrefix', + self.parser.constructs.disable.null.includes('codeIndented') + ? undefined + : 4 + )(code) } - if (code === 58) { - effects.enter('tableDelimiterAlignment'); - effects.consume(code); - effects.exit('tableDelimiterAlignment'); - align.push('left'); - return afterLeftAlignment + return headDelimiterBefore(code) + } + function headDelimiterBefore(code) { + if (code === 45 || code === 58) { + return headDelimiterValueBefore(code) } if (code === 124) { + seen = true; effects.enter('tableCellDivider'); effects.consume(code); effects.exit('tableCellDivider'); - return atDelimiterRowBreak + return headDelimiterCellBefore } - return nok(code) + return headDelimiterNok(code) } - function inWhitespaceDelimiter(code) { + function headDelimiterCellBefore(code) { if (markdownSpace(code)) { - effects.consume(code); - return inWhitespaceDelimiter + return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code) } - effects.exit('whitespace'); - return atDelimiterRowBreak(code) + return headDelimiterValueBefore(code) } - function inFillerDelimiter(code) { - if (code === 45) { - effects.consume(code); - return inFillerDelimiter - } - effects.exit('tableDelimiterFiller'); + function headDelimiterValueBefore(code) { if (code === 58) { - effects.enter('tableDelimiterAlignment'); + sizeB += 1; + seen = true; + effects.enter('tableDelimiterMarker'); effects.consume(code); - effects.exit('tableDelimiterAlignment'); - align[align.length - 1] = - align[align.length - 1] === 'left' ? 'center' : 'right'; - return afterRightAlignment + effects.exit('tableDelimiterMarker'); + return headDelimiterLeftAlignmentAfter + } + if (code === 45) { + sizeB += 1; + return headDelimiterLeftAlignmentAfter(code) + } + if (code === null || markdownLineEnding(code)) { + return headDelimiterCellAfter(code) } - return atDelimiterRowBreak(code) + return headDelimiterNok(code) } - function afterLeftAlignment(code) { + function headDelimiterLeftAlignmentAfter(code) { if (code === 45) { effects.enter('tableDelimiterFiller'); - effects.consume(code); - hasDash = true; - return inFillerDelimiter + return headDelimiterFiller(code) } - return nok(code) + return headDelimiterNok(code) } - function afterRightAlignment(code) { - if (code === null || markdownLineEnding(code)) { - return rowEndDelimiter(code) - } - if (markdownSpace(code)) { - effects.enter('whitespace'); + function headDelimiterFiller(code) { + if (code === 45) { effects.consume(code); - return inWhitespaceDelimiter + return headDelimiterFiller } - if (code === 124) { - effects.enter('tableCellDivider'); + if (code === 58) { + seen = true; + effects.exit('tableDelimiterFiller'); + effects.enter('tableDelimiterMarker'); effects.consume(code); - effects.exit('tableCellDivider'); - return atDelimiterRowBreak + effects.exit('tableDelimiterMarker'); + return headDelimiterRightAlignmentAfter } - return nok(code) + effects.exit('tableDelimiterFiller'); + return headDelimiterRightAlignmentAfter(code) } - function rowEndDelimiter(code) { - effects.exit('tableDelimiterRow'); - if (!hasDash || tableHeaderCount !== align.length) { - return nok(code) - } - if (code === null) { - return tableClose(code) + function headDelimiterRightAlignmentAfter(code) { + if (markdownSpace(code)) { + return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code) } - return effects.check( - nextPrefixedOrBlank, - tableClose, - effects.attempt( - { - tokenize: tokenizeRowEnd, - partial: true - }, - factorySpace(effects, bodyStart, 'linePrefix', 4), - tableClose - ) - )(code) - } - function tableClose(code) { - effects.exit('table'); - return ok(code) + return headDelimiterCellAfter(code) } - function bodyStart(code) { - effects.enter('tableBody'); - return rowStartBody(code) - } - function rowStartBody(code) { - effects.enter('tableRow'); + function headDelimiterCellAfter(code) { if (code === 124) { - return cellDividerBody(code) + return headDelimiterBefore(code) } - effects.enter('temporaryTableCellContent'); - return inCellContentBody(code) - } - function cellDividerBody(code) { - effects.enter('tableCellDivider'); - effects.consume(code); - effects.exit('tableCellDivider'); - return cellBreakBody - } - function cellBreakBody(code) { if (code === null || markdownLineEnding(code)) { - return atRowEndBody(code) + if (!seen || size !== sizeB) { + return headDelimiterNok(code) + } + effects.exit('tableDelimiterRow'); + effects.exit('tableHead'); + return ok(code) } - if (markdownSpace(code)) { - effects.enter('whitespace'); + return headDelimiterNok(code) + } + function headDelimiterNok(code) { + return nok(code) + } + function bodyRowStart(code) { + effects.enter('tableRow'); + return bodyRowBreak(code) + } + function bodyRowBreak(code) { + if (code === 124) { + effects.enter('tableCellDivider'); effects.consume(code); - return inWhitespaceBody + effects.exit('tableCellDivider'); + return bodyRowBreak } - if (code === 124) { - return cellDividerBody(code) + if (code === null || markdownLineEnding(code)) { + effects.exit('tableRow'); + return ok(code) } - effects.enter('temporaryTableCellContent'); - return inCellContentBody(code) - } - function inWhitespaceBody(code) { if (markdownSpace(code)) { - effects.consume(code); - return inWhitespaceBody + return factorySpace(effects, bodyRowBreak, 'whitespace')(code) } - effects.exit('whitespace'); - return cellBreakBody(code) + effects.enter('data'); + return bodyRowData(code) } - function inCellContentBody(code) { + function bodyRowData(code) { if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { - effects.exit('temporaryTableCellContent'); - return cellBreakBody(code) + effects.exit('data'); + return bodyRowBreak(code) } effects.consume(code); - return code === 92 ? inCellContentEscapeBody : inCellContentBody + return code === 92 ? bodyRowEscape : bodyRowData } - function inCellContentEscapeBody(code) { + function bodyRowEscape(code) { if (code === 92 || code === 124) { effects.consume(code); - return inCellContentBody + return bodyRowData } - return inCellContentBody(code) + return bodyRowData(code) } - function atRowEndBody(code) { - effects.exit('tableRow'); - if (code === null) { - return tableBodyClose(code) - } - return effects.check( - nextPrefixedOrBlank, - tableBodyClose, - effects.attempt( - { - tokenize: tokenizeRowEnd, - partial: true - }, - factorySpace(effects, rowStartBody, 'linePrefix', 4), - tableBodyClose - ) - )(code) - } - function tableBodyClose(code) { - effects.exit('tableBody'); - return tableClose(code) - } - function tokenizeRowEnd(effects, ok, nok) { - return start - function start(code) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, prefixed, 'linePrefix') - } - function prefixed(code) { - if ( - self.parser.lazy[self.now().line] || - code === null || - markdownLineEnding(code) +} +function resolveTable(events, context) { + let index = -1; + let inFirstCellAwaitingPipe = true; + let rowKind = 0; + let lastCell = [0, 0, 0, 0]; + let cell = [0, 0, 0, 0]; + let afterHeadAwaitingFirstBodyRow = false; + let lastTableEnd = 0; + let currentTable; + let currentBody; + let currentCell; + const map = new EditMap(); + while (++index < events.length) { + const event = events[index]; + const token = event[1]; + if (event[0] === 'enter') { + if (token.type === 'tableHead') { + afterHeadAwaitingFirstBodyRow = false; + if (lastTableEnd !== 0) { + flushTableEnd(map, context, lastTableEnd, currentTable, currentBody); + currentBody = undefined; + lastTableEnd = 0; + } + currentTable = { + type: 'table', + start: Object.assign({}, token.start), + end: Object.assign({}, token.end) + }; + map.add(index, 0, [['enter', currentTable, context]]); + } else if ( + token.type === 'tableRow' || + token.type === 'tableDelimiterRow' ) { - return nok(code) + inFirstCellAwaitingPipe = true; + currentCell = undefined; + lastCell = [0, 0, 0, 0]; + cell = [0, index + 1, 0, 0]; + if (afterHeadAwaitingFirstBodyRow) { + afterHeadAwaitingFirstBodyRow = false; + currentBody = { + type: 'tableBody', + start: Object.assign({}, token.start), + end: Object.assign({}, token.end) + }; + map.add(index, 0, [['enter', currentBody, context]]); + } + rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1; } - const tail = self.events[self.events.length - 1]; - if ( - !self.parser.constructs.disable.null.includes('codeIndented') && - tail && - tail[1].type === 'linePrefix' && - tail[2].sliceSerialize(tail[1], true).length >= 4 + else if ( + rowKind && + (token.type === 'data' || + token.type === 'tableDelimiterMarker' || + token.type === 'tableDelimiterFiller') ) { - return nok(code) - } - self._gfmTableDynamicInterruptHack = true; - return effects.check( - self.parser.constructs.flow, - function (code) { - self._gfmTableDynamicInterruptHack = false; - return nok(code) - }, - function (code) { - self._gfmTableDynamicInterruptHack = false; - return ok(code) + inFirstCellAwaitingPipe = false; + if (cell[2] === 0) { + if (lastCell[1] !== 0) { + cell[0] = cell[1]; + currentCell = flushCell( + map, + context, + lastCell, + rowKind, + undefined, + currentCell + ); + lastCell = [0, 0, 0, 0]; + } + cell[2] = index; } - )(code) + } else if (token.type === 'tableCellDivider') { + if (inFirstCellAwaitingPipe) { + inFirstCellAwaitingPipe = false; + } else { + if (lastCell[1] !== 0) { + cell[0] = cell[1]; + currentCell = flushCell( + map, + context, + lastCell, + rowKind, + undefined, + currentCell + ); + } + lastCell = cell; + cell = [lastCell[1], index, 0, 0]; + } + } + } + else if (token.type === 'tableHead') { + afterHeadAwaitingFirstBodyRow = true; + lastTableEnd = index; + } else if ( + token.type === 'tableRow' || + token.type === 'tableDelimiterRow' + ) { + lastTableEnd = index; + if (lastCell[1] !== 0) { + cell[0] = cell[1]; + currentCell = flushCell( + map, + context, + lastCell, + rowKind, + index, + currentCell + ); + } else if (cell[1] !== 0) { + currentCell = flushCell(map, context, cell, rowKind, index, currentCell); + } + rowKind = 0; + } else if ( + rowKind && + (token.type === 'data' || + token.type === 'tableDelimiterMarker' || + token.type === 'tableDelimiterFiller') + ) { + cell[3] = index; } } -} -function tokenizeNextPrefixedOrBlank(effects, ok, nok) { - let size = 0; - return start - function start(code) { - effects.enter('check'); - effects.consume(code); - return whitespace + if (lastTableEnd !== 0) { + flushTableEnd(map, context, lastTableEnd, currentTable, currentBody); } - function whitespace(code) { - if (code === -1 || code === 32) { - effects.consume(code); - size++; - return size === 4 ? ok : whitespace - } - if (code === null || markdownLineEndingOrSpace(code)) { - return ok(code) + map.consume(context.events); + index = -1; + while (++index < context.events.length) { + const event = context.events[index]; + if (event[0] === 'enter' && event[1].type === 'table') { + event[1]._align = gfmTableAlign(context.events, index); } - return nok(code) } + return events +} +function flushCell(map, context, range, rowKind, rowEnd, previousCell) { + const groupName = + rowKind === 1 + ? 'tableHeader' + : rowKind === 2 + ? 'tableDelimiter' + : 'tableData'; + const valueName = 'tableContent'; + if (range[0] !== 0) { + previousCell.end = Object.assign({}, getPoint(context.events, range[0])); + map.add(range[0], 0, [['exit', previousCell, context]]); + } + const now = getPoint(context.events, range[1]); + previousCell = { + type: groupName, + start: Object.assign({}, now), + end: Object.assign({}, now) + }; + map.add(range[1], 0, [['enter', previousCell, context]]); + if (range[2] !== 0) { + const relatedStart = getPoint(context.events, range[2]); + const relatedEnd = getPoint(context.events, range[3]); + const valueToken = { + type: valueName, + start: Object.assign({}, relatedStart), + end: Object.assign({}, relatedEnd) + }; + map.add(range[2], 0, [['enter', valueToken, context]]); + if (rowKind !== 2) { + const start = context.events[range[2]]; + const end = context.events[range[3]]; + start[1].end = Object.assign({}, end[1].end); + start[1].type = 'chunkText'; + start[1].contentType = 'text'; + if (range[3] > range[2] + 1) { + const a = range[2] + 1; + const b = range[3] - range[2] - 1; + map.add(a, b, []); + } + } + map.add(range[3] + 1, 0, [['exit', valueToken, context]]); + } + if (rowEnd !== undefined) { + previousCell.end = Object.assign({}, getPoint(context.events, rowEnd)); + map.add(rowEnd, 0, [['exit', previousCell, context]]); + previousCell = undefined; + } + return previousCell +} +function flushTableEnd(map, context, index, table, tableBody) { + const exits = []; + const related = getPoint(context.events, index); + if (tableBody) { + tableBody.end = Object.assign({}, related); + exits.push(['exit', tableBody, context]); + } + table.end = Object.assign({}, related); + exits.push(['exit', table, context]); + map.add(index + 1, 0, exits); +} +function getPoint(events, index) { + const event = events[index]; + const side = event[0] === 'enter' ? 'start' : 'end'; + return event[1][side] } const tasklistCheck = { @@ -12001,7 +12072,6 @@ function lintMessageControl() { return remarkMessageControl({name: 'lint', source: 'remark-lint'}) } -const primitives = new Set(['string', 'number', 'boolean']); function lintRule(meta, rule) { const id = typeof meta === 'string' ? meta : meta.origin; const url = typeof meta === 'string' ? undefined : meta.url; @@ -12010,8 +12080,8 @@ function lintRule(meta, rule) { const ruleId = parts[1]; Object.defineProperty(plugin, 'name', {value: id}); return plugin - function plugin(raw) { - const [severity, options] = coerce$1(ruleId, raw); + function plugin(config) { + const [severity, options] = coerce$1(ruleId, config); if (!severity) return const fatal = severity === 2; return (tree, file, next) => { @@ -12031,47 +12101,37 @@ function lintRule(meta, rule) { } } } -function coerce$1(name, value) { - let result; - if (typeof value === 'boolean') { - result = [value]; - } else if (value === null || value === undefined) { - result = [1]; - } else if ( - Array.isArray(value) && - primitives.has(typeof value[0]) - ) { - result = [...value]; - } else { - result = [1, value]; - } - let level = result[0]; - if (typeof level === 'boolean') { - level = level ? 1 : 0; - } else if (typeof level === 'string') { - if (level === 'off') { - level = 0; - } else if (level === 'on' || level === 'warn') { - level = 1; - } else if (level === 'error') { - level = 2; - } else { - level = 1; - result = [level, result]; +function coerce$1(name, config) { + if (!Array.isArray(config)) return [1, config] + const [severity, ...options] = config; + switch (severity) { + case false: + case 'off': + case 0: { + return [0, ...options] + } + case true: + case 'on': + case 'warn': + case 1: { + return [1, ...options] + } + case 'error': + case 2: { + return [2, ...options] + } + default: { + if (typeof severity !== 'number') return [1, config] + throw new Error( + 'Incorrect severity `' + + severity + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) } } - if (typeof level !== 'number' || level < 0 || level > 2) { - throw new Error( - 'Incorrect severity `' + - level + - '` for `' + - name + - '`, ' + - 'expected 0, 1, or 2' - ) - } - result[0] = level; - return result } /** @@ -12684,7 +12744,7 @@ function generated(node) { * ····item. * * @example - * {"name": "ok.md", "setting": "mixed"} + * {"name": "ok.md", "config": "mixed"} * * *·List item. * @@ -12701,7 +12761,7 @@ function generated(node) { * ····item. * * @example - * {"name": "ok.md", "setting": "space"} + * {"name": "ok.md", "config": "space"} * * *·List item. * @@ -12718,39 +12778,39 @@ function generated(node) { * ··item. * * @example - * {"name": "not-ok.md", "setting": "space", "label": "input"} + * {"name": "not-ok.md", "config": "space", "label": "input"} * * *···List * ····item. * * @example - * {"name": "not-ok.md", "setting": "space", "label": "output"} + * {"name": "not-ok.md", "config": "space", "label": "output"} * * 1:5: Incorrect list-item indent: remove 2 spaces * * @example - * {"name": "not-ok.md", "setting": "tab-size", "label": "input"} + * {"name": "not-ok.md", "config": "tab-size", "label": "input"} * * *·List * ··item. * * @example - * {"name": "not-ok.md", "setting": "tab-size", "label": "output"} + * {"name": "not-ok.md", "config": "tab-size", "label": "output"} * * 1:3: Incorrect list-item indent: add 2 spaces * * @example - * {"name": "not-ok.md", "setting": "mixed", "label": "input"} + * {"name": "not-ok.md", "config": "mixed", "label": "input"} * * *···List item. * * @example - * {"name": "not-ok.md", "setting": "mixed", "label": "output"} + * {"name": "not-ok.md", "config": "mixed", "label": "output"} * * 1:5: Incorrect list-item indent: remove 2 spaces * * @example - * {"name": "not-ok.md", "setting": "💩", "label": "output", "positionless": true} + * {"name": "not-ok.md", "config": "💩", "label": "output", "positionless": true} * * 1:1: Incorrect list-item indent style `💩`: use either `'tab-size'`, `'space'`, or `'mixed'` */ @@ -13014,14 +13074,14 @@ var remarkLintNoLiteralUrls$1 = remarkLintNoLiteralUrls; * * Foo * * @example - * {"name": "ok.md", "setting": "."} + * {"name": "ok.md", "config": "."} * * 1. Foo * * 2. Bar * * @example - * {"name": "ok.md", "setting": ")"} + * {"name": "ok.md", "config": ")"} * * 1) Foo * @@ -13040,7 +13100,7 @@ var remarkLintNoLiteralUrls$1 = remarkLintNoLiteralUrls; * 3:1-3:8: Marker style should be `.` * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} + * {"name": "not-ok.md", "label": "output", "config": "💩", "positionless": true} * * 1:1: Incorrect ordered list item marker style `💩`: use either `'.'` or `')'` */ @@ -13535,7 +13595,7 @@ var remarkLintNoShortcutReferenceLink$1 = remarkLintNoShortcutReferenceLink; * default: `[]`) * — text or regex that you want to be allowed between `[` and `]` * even though it’s undefined; regex is provided via a `RegExp` object - * or via a `{ source: string }` object where `source` is the source + * or via a `{source: string}` object where `source` is the source * text of a case-insensitive regex * * ## Recommendation @@ -13943,7 +14003,7 @@ var remarkPresetLintRecommended$1 = remarkPresetLintRecommended; * @copyright 2015 Titus Wormer * @license MIT * @example - * {"name": "ok.md", "setting": 4} + * {"name": "ok.md", "config": 4} * * > Hello * @@ -13951,7 +14011,7 @@ var remarkPresetLintRecommended$1 = remarkPresetLintRecommended; * * > World * @example - * {"name": "ok.md", "setting": 2} + * {"name": "ok.md", "config": 2} * * > Hello * @@ -14052,19 +14112,19 @@ function check$1(node) { * @copyright 2015 Titus Wormer * @license MIT * @example - * {"name": "ok.md", "setting": {"checked": "x"}, "gfm": true} + * {"name": "ok.md", "config": {"checked": "x"}, "gfm": true} * * - [x] List item * - [x] List item * * @example - * {"name": "ok.md", "setting": {"checked": "X"}, "gfm": true} + * {"name": "ok.md", "config": {"checked": "X"}, "gfm": true} * * - [X] List item * - [X] List item * * @example - * {"name": "ok.md", "setting": {"unchecked": " "}, "gfm": true} + * {"name": "ok.md", "config": {"unchecked": " "}, "gfm": true} * * - [ ] List item * - [ ] List item @@ -14072,7 +14132,7 @@ function check$1(node) { * - [ ] * * @example - * {"name": "ok.md", "setting": {"unchecked": "\t"}, "gfm": true} + * {"name": "ok.md", "config": {"unchecked": "\t"}, "gfm": true} * * - [»] List item * - [»] List item @@ -14092,12 +14152,12 @@ function check$1(node) { * 4:5: Unchecked checkboxes should use ` ` as a marker * * @example - * {"setting": {"unchecked": "💩"}, "name": "not-ok.md", "label": "output", "positionless": true, "gfm": true} + * {"config": {"unchecked": "💩"}, "name": "not-ok.md", "label": "output", "positionless": true, "gfm": true} * * 1:1: Incorrect unchecked checkbox marker `💩`: use either `'\t'`, or `' '` * * @example - * {"setting": {"checked": "💩"}, "name": "not-ok.md", "label": "output", "positionless": true, "gfm": true} + * {"config": {"checked": "💩"}, "name": "not-ok.md", "label": "output", "positionless": true, "gfm": true} * * 1:1: Incorrect checked checkbox marker `💩`: use either `'x'`, or `'X'` */ @@ -14264,32 +14324,57 @@ const remarkLintCheckboxContentIndent = lintRule( var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module code-block-style - * @fileoverview - * Warn when code blocks do not adhere to a given style. + * ## When should I use this? + * + * You can use this package to check that code blocks are consistent. * - * Options: `'consistent'`, `'fenced'`, or `'indented'`, default: `'consistent'`. + * ## API + * + * The following options (default: `'consistent'`) are accepted: * - * `'consistent'` detects the first used code block style and warns when - * subsequent code blocks uses different styles. + * * `'fenced'` + * — prefer fenced code blocks: + * ````markdown + * ```js + * code() + * ``` + * ```` + * * `'indented'` + * — prefer indented code blocks: + * ```markdown + * code() + * ``` + * * `'consistent'` + * — detect the first used style and warn when further code blocks differ * - * ## Fix + * ## Recommendation * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats code blocks using a fence if they have a language flag and - * indentation if not. - * Pass - * [`fences: true`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsfences) - * to always use fences for code blocks. + * Indentation in markdown is complex, especially because lists and indented + * code can interfere in unexpected ways. + * Fenced code has more features than indented code: importantly, specifying a + * programming language. + * Since CommonMark took the idea of fenced code from GFM, fenced code became + * widely supported. + * Due to this, it’s recommended to configure this rule with `'fenced'`. * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats code blocks as fenced code when they have a language flag and as + * indented code otherwise. + * Pass + * [`fences: true`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsfences) + * to always use fenced code. + * + * @module code-block-style + * @summary + * remark-lint rule to warn when code blocks violate a given style. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * * @example - * {"setting": "indented", "name": "ok.md"} + * {"config": "indented", "name": "ok.md"} * * alpha() * @@ -14298,7 +14383,7 @@ var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; * bravo() * * @example - * {"setting": "indented", "name": "not-ok.md", "label": "input"} + * {"config": "indented", "name": "not-ok.md", "label": "input"} * * ``` * alpha() @@ -14311,13 +14396,13 @@ var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; * ``` * * @example - * {"setting": "indented", "name": "not-ok.md", "label": "output"} + * {"config": "indented", "name": "not-ok.md", "label": "output"} * * 1:1-3:4: Code blocks should be indented * 7:1-9:4: Code blocks should be indented * * @example - * {"setting": "fenced", "name": "ok.md"} + * {"config": "fenced", "name": "ok.md"} * * ``` * alpha() @@ -14330,7 +14415,7 @@ var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; * ``` * * @example - * {"setting": "fenced", "name": "not-ok-fenced.md", "label": "input"} + * {"config": "fenced", "name": "not-ok-fenced.md", "label": "input"} * * alpha() * @@ -14339,7 +14424,7 @@ var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; * bravo() * * @example - * {"setting": "fenced", "name": "not-ok-fenced.md", "label": "output"} + * {"config": "fenced", "name": "not-ok-fenced.md", "label": "output"} * * 1:1-1:12: Code blocks should be fenced * 5:1-5:12: Code blocks should be fenced @@ -14361,7 +14446,7 @@ var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; * 5:1-7:4: Code blocks should be indented * * @example - * {"setting": "💩", "name": "not-ok-incorrect.md", "label": "output", "positionless": true} + * {"config": "💩", "name": "not-ok-incorrect.md", "label": "output", "positionless": true} * * 1:1: Incorrect code block style `💩`: use either `'consistent'`, `'fenced'`, or `'indented'` */ @@ -14522,47 +14607,47 @@ var remarkLintDefinitionSpacing$1 = remarkLintDefinitionSpacing; * 1:1-3:4: Missing code language flag * * @example - * {"name": "ok.md", "setting": {"allowEmpty": true}} + * {"name": "ok.md", "config": {"allowEmpty": true}} * * ``` * alpha() * ``` * * @example - * {"name": "not-ok.md", "setting": {"allowEmpty": false}, "label": "input"} + * {"name": "not-ok.md", "config": {"allowEmpty": false}, "label": "input"} * * ``` * alpha() * ``` * * @example - * {"name": "not-ok.md", "setting": {"allowEmpty": false}, "label": "output"} + * {"name": "not-ok.md", "config": {"allowEmpty": false}, "label": "output"} * * 1:1-3:4: Missing code language flag * * @example - * {"name": "ok.md", "setting": ["alpha"]} + * {"name": "ok.md", "config": ["alpha"]} * * ```alpha * bravo() * ``` * * @example - * {"name": "ok.md", "setting": {"flags":["alpha"]}} + * {"name": "ok.md", "config": {"flags":["alpha"]}} * * ```alpha * bravo() * ``` * * @example - * {"name": "not-ok.md", "setting": ["charlie"], "label": "input"} + * {"name": "not-ok.md", "config": ["charlie"], "label": "input"} * * ```alpha * bravo() * ``` * * @example - * {"name": "not-ok.md", "setting": ["charlie"], "label": "output"} + * {"name": "not-ok.md", "config": ["charlie"], "label": "output"} * * 1:1-3:4: Incorrect code language flag */ @@ -14650,7 +14735,7 @@ var remarkLintFencedCodeFlag$1 = remarkLintFencedCodeFlag; * bravo() * * @example - * {"name": "ok.md", "setting": "`"} + * {"name": "ok.md", "config": "`"} * * ```alpha * bravo() @@ -14661,7 +14746,7 @@ var remarkLintFencedCodeFlag$1 = remarkLintFencedCodeFlag; * ``` * * @example - * {"name": "ok.md", "setting": "~"} + * {"name": "ok.md", "config": "~"} * * ~~~alpha * bravo() @@ -14704,7 +14789,7 @@ var remarkLintFencedCodeFlag$1 = remarkLintFencedCodeFlag; * 5:1-7:4: Fenced code should use `~` as a marker * * @example - * {"name": "not-ok-incorrect.md", "setting": "💩", "label": "output", "positionless": true} + * {"name": "not-ok-incorrect.md", "config": "💩", "label": "output", "positionless": true} * * 1:1: Incorrect fenced code marker `💩`: use either `'consistent'`, `` '`' ``, or `'~'` */ @@ -14787,7 +14872,7 @@ var remarkLintFencedCodeMarker$1 = remarkLintFencedCodeMarker; * 1:1: Incorrect extension: use `md` * * @example - * {"name": "readme.mkd", "setting": "mkd"} + * {"name": "readme.mkd", "config": "mkd"} */ const remarkLintFileExtension = lintRule( { @@ -14965,40 +15050,40 @@ var remarkLintFinalDefinition$1 = remarkLintFinalDefinition; * 1:1-1:17: First heading level should be `1` * * @example - * {"name": "ok.md", "setting": 2} + * {"name": "ok.md", "config": 2} * * ## Delta * * Paragraph. * * @example - * {"name": "ok-html.md", "setting": 2} + * {"name": "ok-html.md", "config": 2} * *

Echo

* * Paragraph. * * @example - * {"name": "not-ok.md", "setting": 2, "label": "input"} + * {"name": "not-ok.md", "config": 2, "label": "input"} * * # Foxtrot * * Paragraph. * * @example - * {"name": "not-ok.md", "setting": 2, "label": "output"} + * {"name": "not-ok.md", "config": 2, "label": "output"} * * 1:1-1:10: First heading level should be `2` * * @example - * {"name": "not-ok-html.md", "setting": 2, "label": "input"} + * {"name": "not-ok-html.md", "config": 2, "label": "input"} * *

Golf

* * Paragraph. * * @example - * {"name": "not-ok-html.md", "setting": 2, "label": "output"} + * {"name": "not-ok-html.md", "config": 2, "label": "output"} * * 1:1-1:14: First heading level should be `2` */ @@ -15097,7 +15182,7 @@ function infer(node) { * @copyright 2015 Titus Wormer * @license MIT * @example - * {"name": "ok.md", "setting": "atx"} + * {"name": "ok.md", "config": "atx"} * * # Alpha * @@ -15106,7 +15191,7 @@ function infer(node) { * ### Charlie * * @example - * {"name": "ok.md", "setting": "atx-closed"} + * {"name": "ok.md", "config": "atx-closed"} * * # Delta ## * @@ -15115,7 +15200,7 @@ function infer(node) { * ### Foxtrot ### * * @example - * {"name": "ok.md", "setting": "setext"} + * {"name": "ok.md", "config": "setext"} * * Golf * ==== @@ -15142,7 +15227,7 @@ function infer(node) { * 6:1-6:13: Headings should use setext * * @example - * {"name": "not-ok.md", "setting": "💩", "label": "output", "positionless": true} + * {"name": "not-ok.md", "config": "💩", "label": "output", "positionless": true} * * 1:1: Incorrect heading style type `💩`: use either `'consistent'`, `'atx'`, `'atx-closed'`, or `'setext'` */ @@ -15237,7 +15322,7 @@ var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; * [foo]: * * @example - * {"name": "not-ok.md", "setting": 80, "label": "input", "positionless": true} + * {"name": "not-ok.md", "config": 80, "label": "input", "positionless": true} * * This line is simply not tooooooooooooooooooooooooooooooooooooooooooooooooooooooo * long. @@ -15253,7 +15338,7 @@ var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; * `alphaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJuliettKiloLimaMikeNovemberOscar.papa()` and such. * * @example - * {"name": "not-ok.md", "setting": 80, "label": "output", "positionless": true} + * {"name": "not-ok.md", "config": 80, "label": "output", "positionless": true} * * 4:86: Line must be at most 80 characters * 6:99: Line must be at most 80 characters @@ -15262,7 +15347,7 @@ var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; * 12:99: Line must be at most 80 characters * * @example - * {"name": "ok-mixed-line-endings.md", "setting": 10, "positionless": true} + * {"name": "ok-mixed-line-endings.md", "config": 10, "positionless": true} * * 0123456789␍␊ * 0123456789␊ @@ -15270,7 +15355,7 @@ var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; * 01234␊ * * @example - * {"name": "not-ok-mixed-line-endings.md", "setting": 10, "label": "input", "positionless": true} + * {"name": "not-ok-mixed-line-endings.md", "config": 10, "label": "input", "positionless": true} * * 012345678901␍␊ * 012345678901␊ @@ -15278,7 +15363,7 @@ var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; * 01234567890␊ * * @example - * {"name": "not-ok-mixed-line-endings.md", "setting": 10, "label": "output", "positionless": true} + * {"name": "not-ok-mixed-line-endings.md", "config": 10, "label": "output", "positionless": true} * * 1:13: Line must be at most 10 characters * 2:13: Line must be at most 10 characters @@ -15313,8 +15398,7 @@ const remarkLintMaximumLineLength = lintRule( allowList(pointStart(node).line - 1, pointEnd(node).line); } }); - visit$1(tree, (node, pos, parent_) => { - const parent = (parent_); + visit$1(tree, (node, pos, parent) => { if ( (node.type === 'link' || node.type === 'image' || @@ -15717,21 +15801,21 @@ var remarkLintNoHeadingIndent$1 = remarkLintNoHeadingIndent; * @copyright 2015 Titus Wormer * @license MIT * @example - * {"name": "ok.md", "setting": 1} + * {"name": "ok.md", "config": 1} * * # Foo * * ## Bar * * @example - * {"name": "not-ok.md", "setting": 1, "label": "input"} + * {"name": "not-ok.md", "config": 1, "label": "input"} * * # Foo * * # Bar * * @example - * {"name": "not-ok.md", "setting": 1, "label": "output"} + * {"name": "not-ok.md", "config": 1, "label": "output"} * * 3:1-3:6: Don’t use multiple top level headings (1:1) */ @@ -19475,7 +19559,7 @@ let SemVer$2 = class SemVer { version = version.version; } } else if (typeof version !== 'string') { - throw new TypeError(`Invalid Version: ${require$$5.inspect(version)}`) + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) } if (version.length > MAX_LENGTH) { throw new TypeError( @@ -20053,14 +20137,14 @@ function prohibitedStrings (ast, file, strings) { * @copyright 2015 Titus Wormer * @license MIT * @example - * {"name": "ok.md", "setting": "* * *"} + * {"name": "ok.md", "config": "* * *"} * * * * * * * * * * * * @example - * {"name": "ok.md", "setting": "_______"} + * {"name": "ok.md", "config": "_______"} * * _______ * @@ -20079,7 +20163,7 @@ function prohibitedStrings (ast, file, strings) { * 3:1-3:6: Rules should use `***` * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} + * {"name": "not-ok.md", "label": "output", "config": "💩", "positionless": true} * * 1:1: Incorrect preferred rule style: provide a correct markdown rule or `'consistent'` */ @@ -20163,12 +20247,12 @@ var remarkLintRuleStyle$1 = remarkLintRuleStyle; * __foo__ and __bar__. * * @example - * {"name": "ok.md", "setting": "*"} + * {"name": "ok.md", "config": "*"} * * **foo**. * * @example - * {"name": "ok.md", "setting": "_"} + * {"name": "ok.md", "config": "_"} * * __foo__. * @@ -20183,7 +20267,7 @@ var remarkLintRuleStyle$1 = remarkLintRuleStyle; * 1:13-1:20: Strong should use `*` as a marker * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} + * {"name": "not-ok.md", "label": "output", "config": "💩", "positionless": true} * * 1:1: Incorrect strong marker `💩`: use either `'consistent'`, `'*'`, or `'_'` */ @@ -20254,14 +20338,14 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * @copyright 2015 Titus Wormer * @license MIT * @example - * {"name": "ok.md", "setting": "padded", "gfm": true} + * {"name": "ok.md", "config": "padded", "gfm": true} * * | A | B | * | ----- | ----- | * | Alpha | Bravo | * * @example - * {"name": "not-ok.md", "label": "input", "setting": "padded", "gfm": true} + * {"name": "not-ok.md", "label": "input", "config": "padded", "gfm": true} * * | A | B | * | :----|----: | @@ -20278,27 +20362,27 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * | Echo | Foxtrot | Golf | Hotel | * * @example - * {"name": "not-ok.md", "label": "output", "setting": "padded", "gfm": true} + * {"name": "not-ok.md", "label": "output", "config": "padded", "gfm": true} * * 3:8: Cell should be padded * 3:9: Cell should be padded * 7:2: Cell should be padded * 7:17: Cell should be padded - * 13:9: Cell should be padded with 1 space, not 2 - * 13:20: Cell should be padded with 1 space, not 2 - * 13:21: Cell should be padded with 1 space, not 2 - * 13:29: Cell should be padded with 1 space, not 2 - * 13:30: Cell should be padded with 1 space, not 2 + * 13:7: Cell should be padded with 1 space, not 2 + * 13:18: Cell should be padded with 1 space, not 2 + * 13:23: Cell should be padded with 1 space, not 2 + * 13:27: Cell should be padded with 1 space, not 2 + * 13:32: Cell should be padded with 1 space, not 2 * * @example - * {"name": "ok.md", "setting": "compact", "gfm": true} + * {"name": "ok.md", "config": "compact", "gfm": true} * * |A |B | * |-----|-----| * |Alpha|Bravo| * * @example - * {"name": "not-ok.md", "label": "input", "setting": "compact", "gfm": true} + * {"name": "not-ok.md", "label": "input", "config": "compact", "gfm": true} * * | A | B | * | -----| -----| @@ -20309,14 +20393,14 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * |Charlie|Delta | * * @example - * {"name": "not-ok.md", "label": "output", "setting": "compact", "gfm": true} + * {"name": "not-ok.md", "label": "output", "config": "compact", "gfm": true} * - * 3:2: Cell should be compact - * 3:11: Cell should be compact - * 7:16: Cell should be compact + * 3:5: Cell should be compact + * 3:12: Cell should be compact + * 7:15: Cell should be compact * * @example - * {"name": "ok-padded.md", "setting": "consistent", "gfm": true} + * {"name": "ok-padded.md", "config": "consistent", "gfm": true} * * | A | B | * | ----- | ----- | @@ -20327,7 +20411,7 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * | Charlie | Delta | * * @example - * {"name": "not-ok-padded.md", "label": "input", "setting": "consistent", "gfm": true} + * {"name": "not-ok-padded.md", "label": "input", "config": "consistent", "gfm": true} * * | A | B | * | ----- | ----- | @@ -20338,12 +20422,12 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * |Charlie | Delta | * * @example - * {"name": "not-ok-padded.md", "label": "output", "setting": "consistent", "gfm": true} + * {"name": "not-ok-padded.md", "label": "output", "config": "consistent", "gfm": true} * * 7:2: Cell should be padded * * @example - * {"name": "ok-compact.md", "setting": "consistent", "gfm": true} + * {"name": "ok-compact.md", "config": "consistent", "gfm": true} * * |A |B | * |-----|-----| @@ -20354,7 +20438,7 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * |Charlie|Delta| * * @example - * {"name": "not-ok-compact.md", "label": "input", "setting": "consistent", "gfm": true} + * {"name": "not-ok-compact.md", "label": "input", "config": "consistent", "gfm": true} * * |A |B | * |-----|-----| @@ -20365,17 +20449,17 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * |Charlie|Delta | * * @example - * {"name": "not-ok-compact.md", "label": "output", "setting": "consistent", "gfm": true} + * {"name": "not-ok-compact.md", "label": "output", "config": "consistent", "gfm": true} * - * 7:16: Cell should be compact + * 7:15: Cell should be compact * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true, "gfm": true} + * {"name": "not-ok.md", "label": "output", "config": "💩", "positionless": true, "gfm": true} * * 1:1: Incorrect table cell padding style `💩`, expected `'padded'`, `'compact'`, or `'consistent'` * * @example - * {"name": "empty.md", "label": "input", "setting": "padded", "gfm": true} + * {"name": "empty.md", "label": "input", "config": "padded", "gfm": true} * * * @@ -20384,14 +20468,14 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * | Charlie| | Echo| * * @example - * {"name": "empty.md", "label": "output", "setting": "padded", "gfm": true} + * {"name": "empty.md", "label": "output", "config": "padded", "gfm": true} * * 3:25: Cell should be padded * 5:10: Cell should be padded * 5:25: Cell should be padded * * @example - * {"name": "missing-body.md", "setting": "padded", "gfm": true} + * {"name": "missing-body.md", "config": "padded", "gfm": true} * * * @@ -20433,32 +20517,33 @@ const remarkLintTableCellPadding = lintRule( let column = -1; while (++column < row.children.length) { const cell = row.children[column]; - if (cell.children.length > 0) { - const cellStart = pointStart(cell).offset; - const cellEnd = pointEnd(cell).offset; - const contentStart = pointStart(cell.children[0]).offset; - const contentEnd = pointEnd( - cell.children[cell.children.length - 1] - ).offset; - if ( - typeof cellStart !== 'number' || - typeof cellEnd !== 'number' || - typeof contentStart !== 'number' || - typeof contentEnd !== 'number' - ) { - continue - } - entries.push({ - node: cell, - start: contentStart - cellStart - (column ? 0 : 1), - end: cellEnd - contentEnd - 1, - column - }); - sizes[column] = Math.max( - sizes[column] || 0, - contentEnd - contentStart - ); + const cellStart = pointStart(cell).offset; + const cellEnd = pointEnd(cell).offset; + const contentStart = pointStart(cell.children[0]).offset; + const contentEnd = pointEnd( + cell.children[cell.children.length - 1] + ).offset; + if ( + typeof cellStart !== 'number' || + typeof cellEnd !== 'number' || + typeof contentStart !== 'number' || + typeof contentEnd !== 'number' + ) { + continue } + entries.push({ + node: cell, + start: contentStart - cellStart - 1, + end: + cellEnd - + contentEnd - + (column === row.children.length - 1 ? 1 : 0), + column + }); + sizes[column] = Math.max( + sizes[column] || 0, + contentEnd - contentStart + ); } } const style = @@ -20498,23 +20583,12 @@ const remarkLintTableCellPadding = lintRule( reason += ' with 1 space, not ' + spacing; } } - let point; - if (side === 'start') { - point = pointStart(cell); - if (!column) { - point.column++; - if (typeof point.offset === 'number') { - point.offset++; - } - } - } else { - point = pointEnd(cell); - point.column--; - if (typeof point.offset === 'number') { - point.offset--; - } - } - file.message(reason, point); + file.message( + reason, + side === 'start' + ? pointStart(cell.children[0]) + : pointEnd(cell.children[cell.children.length - 1]) + ); } } ); @@ -20665,17 +20739,17 @@ var remarkLintTablePipes$1 = remarkLintTablePipes; * 3. Baz * * @example - * {"name": "ok.md", "setting": "*"} + * {"name": "ok.md", "config": "*"} * * * Foo * * @example - * {"name": "ok.md", "setting": "-"} + * {"name": "ok.md", "config": "-"} * * - Foo * * @example - * {"name": "ok.md", "setting": "+"} + * {"name": "ok.md", "config": "+"} * * + Foo * @@ -20693,7 +20767,7 @@ var remarkLintTablePipes$1 = remarkLintTablePipes; * 3:1-3:6: Marker style should be `*` * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} + * {"name": "not-ok.md", "label": "output", "config": "💩", "positionless": true} * * 1:1: Incorrect unordered list item marker style `💩`: use either `'-'`, `'*'`, or `'+'` */ diff --git a/tools/lint-md/package-lock.json b/tools/lint-md/package-lock.json index be45f2dc9e..d1aa1eab23 100644 --- a/tools/lint-md/package-lock.json +++ b/tools/lint-md/package-lock.json @@ -9,16 +9,16 @@ "version": "1.0.0", "dependencies": { "remark-parse": "^10.0.1", - "remark-preset-lint-node": "^3.4.0", + "remark-preset-lint-node": "^4.0.0", "remark-stringify": "^10.0.2", "to-vfile": "^7.2.4", "unified": "^10.1.2", "vfile-reporter": "^7.0.5" }, "devDependencies": { - "@rollup/plugin-commonjs": "^24.1.0", + "@rollup/plugin-commonjs": "^25.0.0", "@rollup/plugin-node-resolve": "^15.0.2", - "rollup": "^3.21.5", + "rollup": "^3.21.7", "rollup-plugin-cleanup": "^3.2.1" } }, @@ -29,9 +29,9 @@ "dev": true }, "node_modules/@rollup/plugin-commonjs": { - "version": "24.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz", - "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==", + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.0.tgz", + "integrity": "sha512-hoho2Kay9TZrLu0bnDsTTCaj4Npa+THk9snajP/XDNb9a9mmjTjh52EQM9sKl3HD1LsnihX7js+eA2sd2uKAhw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -834,9 +834,9 @@ } }, "node_modules/micromark-extension-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", - "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", + "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", "dependencies": { "micromark-extension-gfm-autolink-literal": "^1.0.0", "micromark-extension-gfm-footnote": "^1.0.0", @@ -904,9 +904,9 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", - "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.6.tgz", + "integrity": "sha512-92pq7Q+T+4kXH4M6kL+pc8WU23Z9iuhcqmtYFWdFWjm73ZscFpH2xE28+XFpGWlvgq3LUwcN0XC0PGCicYFpgA==", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -1387,9 +1387,9 @@ } }, "node_modules/remark-lint": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.1.tgz", - "integrity": "sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.2.tgz", + "integrity": "sha512-m9e/aPlh7tsvfJfj8tPxrQzD6oEdb9Foko+Ya/6OwUP9EoGMfehv1Qtv26W1DoH58Wn8rT8CD+KuprTWscMmIA==", "dependencies": { "@types/mdast": "^3.0.0", "remark-message-control": "^7.0.0", @@ -1401,9 +1401,9 @@ } }, "node_modules/remark-lint-blockquote-indentation": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz", - "integrity": "sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.2.tgz", + "integrity": "sha512-5DOrFsZd5dXqA4p/VZvWSrqIWNFbBXjX7IV/FkVkxlNhNF/0FMf/4v8x1I2W3mzaZ7yDsWS/egpZnmligq1ckQ==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1419,9 +1419,9 @@ } }, "node_modules/remark-lint-checkbox-character-style": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz", - "integrity": "sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.2.tgz", + "integrity": "sha512-5ITz+1cCuJ3Jv/Q7rKgDEucCOnIgjWDnSHPJA1tb4TI/D316h+ALbDhZIpP8gyfAm6sBAh3Pwz9XZJN2uJB5UQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1435,9 +1435,9 @@ } }, "node_modules/remark-lint-checkbox-content-indent": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz", - "integrity": "sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.2.tgz", + "integrity": "sha512-8uaHAm4bSqB7XpnecLRObe00Lj9eoHiecV+44CfJeWyoo50cTPR/hIMfsMtDxsNt4LZP+6oCV9z+vACJqDv8Hg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1452,9 +1452,9 @@ } }, "node_modules/remark-lint-code-block-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz", - "integrity": "sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.2.tgz", + "integrity": "sha512-3wsWmzzdyEsB9sOzBOf46TSkwwVKXN2JpTEQb6feN0Tl6Vg75F7T9MHqMz7aqk/56bOXSxUzdpXDscGBhziLRA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1469,9 +1469,9 @@ } }, "node_modules/remark-lint-definition-spacing": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz", - "integrity": "sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.2.tgz", + "integrity": "sha512-l058jAKfZfCOmlbIzoTll+CrZm9Bh42ZVCHcODPSZC8Yx4terCKgIoks+RWJDEdUbEw0YQoYvPc59ZVmp3BIew==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1485,9 +1485,9 @@ } }, "node_modules/remark-lint-fenced-code-flag": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz", - "integrity": "sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.2.tgz", + "integrity": "sha512-yh4m3dlPmRsqM/BFhpqHYfrmBvFQ+D5dZZKDDYP2rf3YEoXlEVt8T8lWQueTTSxcq6yXAqL/XQL/iqqUHlLcHw==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1502,9 +1502,9 @@ } }, "node_modules/remark-lint-fenced-code-marker": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz", - "integrity": "sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.2.tgz", + "integrity": "sha512-6XNqjOuhT+0c7Q/22aCsMz61ne9g8HRpYF79EXQPdbzYa+PcfPXMiQKStONY3PfC8OE2/3WXI2zcs8w9x+8+VQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1518,9 +1518,9 @@ } }, "node_modules/remark-lint-file-extension": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz", - "integrity": "sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.2.tgz", + "integrity": "sha512-Nq54F5R7F1gyj/IMW6SvkAbVNrH+p38WK3//KCoZLDUYFrH0oXgXXFGHi9CT/O0VEopW+bWJfTn8YAJRs0qI5Q==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1532,9 +1532,9 @@ } }, "node_modules/remark-lint-final-definition": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz", - "integrity": "sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.2.tgz", + "integrity": "sha512-3O3JT6xqlrgq+UjhMPxshgMtwXn99w0BEO9JwbDls49N0XCu0n22Pq1n6X3tEVzskPLo3YYyVYfW2Z2C2rneKQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1549,9 +1549,9 @@ } }, "node_modules/remark-lint-final-newline": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz", - "integrity": "sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.2.tgz", + "integrity": "sha512-K0FdPGPyEB94PwNgopwVJFE8oRWi7IhY2ycXFVAMReI51el7EHB8F1gX14tB6p6zyGy6mUh69bCVU9mMTNeOUg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1563,9 +1563,9 @@ } }, "node_modules/remark-lint-first-heading-level": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.1.tgz", - "integrity": "sha512-Z2+gn9sLyI/sT2c1JMPf1dj9kQkFCpL1/wT5Skm5nMbjI8/dIiTF2bKr9XKsFZUFP7GTA57tfeZvzD1rjWbMwg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.2.tgz", + "integrity": "sha512-uSgDMAKOolDcxfJwQU+iJK2Vbz2ZIzBAjQiN0f+9O/7XwrAH5IuVQH60w7chuxVrauVHmd1rbjmvzXVq8R30VQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1579,9 +1579,9 @@ } }, "node_modules/remark-lint-hard-break-spaces": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz", - "integrity": "sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.2.tgz", + "integrity": "sha512-HaW0xsl3TI7VFAqGWWcZtPqyz0NWu19KKjSO7OGFTUJU4S9YiRnhIxmSFM0ZLSsVAynE+dhzVKa8U7dOpWDcOg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1596,9 +1596,9 @@ } }, "node_modules/remark-lint-heading-style": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz", - "integrity": "sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.2.tgz", + "integrity": "sha512-0RkcRPV/H2bPFgeInzBkK1cWUwtFTm83I+Db/Z5tDY02GzKOosHLvxtJyj/1391/opAH1LYbHtHWffir99IUgw==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-heading-style": "^2.0.0", @@ -1613,9 +1613,9 @@ } }, "node_modules/remark-lint-list-item-bullet-indent": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz", - "integrity": "sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.2.tgz", + "integrity": "sha512-WgU5nooqIEm6f35opcbHKBzWrdFJA3XcyTfB3nv/v0KX43/h6qFGmmMJ5kEiaFExuQp3dZSdatWuY0YZ9YRbUg==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1629,9 +1629,9 @@ } }, "node_modules/remark-lint-list-item-indent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz", - "integrity": "sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.2.tgz", + "integrity": "sha512-tkrra1pxZVE4OVJGfN435u/v0ljruXU+dHzWiKDYeifquD4aWhJxvSApu7+FbE098D/4usVXgMxwFkNhrpZcSQ==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1647,9 +1647,9 @@ } }, "node_modules/remark-lint-maximum-line-length": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz", - "integrity": "sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.3.tgz", + "integrity": "sha512-TA7IE+0c8agRm1k7JZr7ZZFiL44JMBAj1KlMxSTACBuebdPJe7IPaLIQga10bnz75jfWMzSiRURMFHo4lt3kdw==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1664,9 +1664,9 @@ } }, "node_modules/remark-lint-no-blockquote-without-marker": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz", - "integrity": "sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.2.tgz", + "integrity": "sha512-QPbqsrt7EfpSWqTkZJ9tepabPIhBDlNqZkuxxMQYD0OQ2N+tHDUq3zE1JxI5ts1V9o/mWApgySocqGd3jlcKmQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1682,9 +1682,9 @@ } }, "node_modules/remark-lint-no-consecutive-blank-lines": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz", - "integrity": "sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.3.tgz", + "integrity": "sha512-yU3jH6UMHvaxX3DPBen+7CoPiCcqJ4BeteyOKeKX+tKWCWKILpiz+TVToRbeLnWO4IvFNnSRFMSXmcWSDdbY4w==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -1701,9 +1701,9 @@ } }, "node_modules/remark-lint-no-duplicate-definitions": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz", - "integrity": "sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.2.tgz", + "integrity": "sha512-vi0nXA7p+pjQOorZOkr9E+QDhG74JAdbzqglWPrWWNI3z2rUYWYHTNSyWJbwEXaIIcev1ZAw8SCAOis5MNm+pA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1719,9 +1719,9 @@ } }, "node_modules/remark-lint-no-file-name-articles": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz", - "integrity": "sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.2.tgz", + "integrity": "sha512-kM4vwBkne7f9euDKsuyxTtrsiafjH+KOwu8ZmuSVWh5U+u0EMcPyN5fxfaQIW+5FkrJA1jwnRu7ciXJBJt74Og==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1733,9 +1733,9 @@ } }, "node_modules/remark-lint-no-file-name-consecutive-dashes": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz", - "integrity": "sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.2.tgz", + "integrity": "sha512-gw06jaaFwBR3s+3E2kJlv+E7rAzS7Nj+MFU7TViwbsYnR7PA96htLVDCjClyNUE7JHUNcv93HdLm8ykg8kRyNA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1747,9 +1747,9 @@ } }, "node_modules/remark-lint-no-file-name-outer-dashes": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz", - "integrity": "sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.2.tgz", + "integrity": "sha512-VrbHg25Oo9k/bNbS7ye1X7F6ER4uZSubO+t5DHJ4WZ6iVbNtBar/JwzVelY1YxUAutv42OvHfuveh4vKlcNgVA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1761,9 +1761,9 @@ } }, "node_modules/remark-lint-no-heading-content-indent": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz", - "integrity": "sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.2.tgz", + "integrity": "sha512-TTxFsm1f4ZHFxZQCuz7j0QK4RvP6oArTiwazKLr16yaZe1608ypogMek4A30j2xX8WuO9+2uBzLXCY5OBo5x5Q==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-heading-style": "^2.0.0", @@ -1780,9 +1780,9 @@ } }, "node_modules/remark-lint-no-heading-indent": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz", - "integrity": "sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.2.tgz", + "integrity": "sha512-XFoSebfsYV6EFYRCYkCzSw6xxgltN5l3aPH+UfCk/0geMnl3DrCQjbQt9qhxQzBSBa4gA91CGs2DRI5Xxbwzig==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1798,9 +1798,9 @@ } }, "node_modules/remark-lint-no-inline-padding": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz", - "integrity": "sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.2.tgz", + "integrity": "sha512-dGyhWsiqCZS3Slob0EVBUfsFBbdpMIBCvb56LlCgaHbnLsnNYx8PpF/wA5CgsN8BXIbXfRpyPB5cIJwIq5taYg==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^3.0.0", @@ -1815,9 +1815,9 @@ } }, "node_modules/remark-lint-no-literal-urls": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz", - "integrity": "sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.2.tgz", + "integrity": "sha512-4tV9JGLKxAMFSuWDMOqLozkFJ3HyRvhzgrPrxASoziaml23m7UXAozk5dkIrFny1cN2oG988Z8tORxX2FL1Ilw==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^3.0.0", @@ -1833,9 +1833,9 @@ } }, "node_modules/remark-lint-no-multiple-toplevel-headings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz", - "integrity": "sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.2.tgz", + "integrity": "sha512-9rJSsrwdzwKmtuloBjJobLzjGL7Lgtk3+vMNUyuH9z/nBfkUCN3qxn3Nt9AxL+wwSAsHV6e74W+W2S1ohBLt6A==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1851,9 +1851,9 @@ } }, "node_modules/remark-lint-no-shell-dollars": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz", - "integrity": "sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.2.tgz", + "integrity": "sha512-np2MDEhXHviXhbQFjnC1QYv5/fxCV1cIHfGMoJpqiW7Zcu/UGCOo5TE3XswZH4ukHZJ65c3X2A6qfLDW+ur3CQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1867,9 +1867,9 @@ } }, "node_modules/remark-lint-no-shortcut-reference-image": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz", - "integrity": "sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.2.tgz", + "integrity": "sha512-NX4XJFPyDeJJ77pmETxRj4oM/zayf7Lmn/O87HgExBkQIPz2NYbDeKD8QEyliLaV/oKA2rQufpzuFw55xa1Tww==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1883,9 +1883,9 @@ } }, "node_modules/remark-lint-no-shortcut-reference-link": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz", - "integrity": "sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.2.tgz", + "integrity": "sha512-/9iPN7FLKaaIzw4tLWKu7Rx0wAP7E2EuzIeentQlkY0rO/mMHipmT3IlgiebsAInKagzTY6TNFoG1rq2VnaCcA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1899,9 +1899,9 @@ } }, "node_modules/remark-lint-no-table-indentation": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz", - "integrity": "sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.2.tgz", + "integrity": "sha512-5lkO+Yrtni/CDMZi7mlwbB2zzRQLH94DesboXg51aO2UfZlSn5dZNhmN5wkyCU2AiApUhlFNbxfKMHOWFPLdog==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1916,9 +1916,9 @@ } }, "node_modules/remark-lint-no-tabs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz", - "integrity": "sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.2.tgz", + "integrity": "sha512-PQQmRpGHRW9tMnAXtlQbMke8byIJu9hlotCH6pJZPO4FodpXvD4JW5EMM3BmO0JQDZsQWrx3qfqxCEMxrj8Qbg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1951,9 +1951,9 @@ } }, "node_modules/remark-lint-no-undefined-references": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.2.0.tgz", - "integrity": "sha512-EDV9B1ZXMLcKVtMQFvfvtbag4AkLcu8aUNGXoez5GJLcCAQ8Q+sG74yOtIW4xNVlVubEjl0vdkFhaKYLxvn2Sw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.2.1.tgz", + "integrity": "sha512-HdNg5b2KiuNplcuVvRtsrUiROw557kAG1CiZYB7jQrrVWFgd86lKTa3bDiywe+87dGrGmHd3qQ28eZYTuHz2Nw==", "dependencies": { "@types/mdast": "^3.0.0", "micromark-util-normalize-identifier": "^1.0.0", @@ -1970,9 +1970,9 @@ } }, "node_modules/remark-lint-no-unused-definitions": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz", - "integrity": "sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.2.tgz", + "integrity": "sha512-bOcaJAnjKxT3kASFquUA3fO9xem9wZhVqt8TbqjA84+G4n40qjaLXDs/4vq73aMsSde73K0f3j1u0pMe7et8yQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1986,9 +1986,9 @@ } }, "node_modules/remark-lint-ordered-list-marker-style": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz", - "integrity": "sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.2.tgz", + "integrity": "sha512-62iVE/YQsA0Azaqt8yAJWPplWLS47kDLjXeC2PlRIAzCqbNt9qH3HId8vZ15QTSrp8rHmJwrCMdcqV6AZUi7gQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2015,9 +2015,9 @@ } }, "node_modules/remark-lint-rule-style": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz", - "integrity": "sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.2.tgz", + "integrity": "sha512-0CsX2XcX9pIhAP5N7Y8mhYXp3/Ld+NvxXY1p0LHAq0NZu17UsZLuegvx/s25uFbQs08DcmSqyKnepU9qGGqmTQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2031,9 +2031,9 @@ } }, "node_modules/remark-lint-strong-marker": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz", - "integrity": "sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.2.tgz", + "integrity": "sha512-U/g4wngmiI0Q6WBRQG6pZxnDS33Wt/0QYA3+KNFBDykoi1vXsDEorIqy3dEag9z6XHwcMvFDsff6VRUhaOJWQg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2047,9 +2047,9 @@ } }, "node_modules/remark-lint-table-cell-padding": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz", - "integrity": "sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.3.tgz", + "integrity": "sha512-N9xtnS6MG/H3srAMjqqaF26A7socr87pIgt64dr5rxoSbDRWRPChGQ8y7wKyV8VeyRNF37e3E5KB3bQVqjSYaQ==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -2064,9 +2064,9 @@ } }, "node_modules/remark-lint-table-pipes": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz", - "integrity": "sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.2.tgz", + "integrity": "sha512-Ex2cJDXA0hdD9CC5Nu0p3K5LP+AhzPvk4sIOSbevCTSRyCS/SkNk4CQ6pwWBxuPVuHQUkqXkT8lgu8wwr/9A3A==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2080,9 +2080,9 @@ } }, "node_modules/remark-lint-unordered-list-marker-style": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz", - "integrity": "sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.2.tgz", + "integrity": "sha512-JFiyB4ZprJGGndCaFB8FssXd48m4Kh+CUqzNgu3lBLEiW8dEAGRlD9M2AzyyA+Q29WJP/FntDCbP22DeON91UA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2127,9 +2127,9 @@ } }, "node_modules/remark-preset-lint-node": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-3.4.0.tgz", - "integrity": "sha512-8y2zZMwME1f7WGJSTAJGpAH6QRCQUV0Q3d8w3ecGoK/veRWX1gNpsRB3TH4JLDFF3v3zEOL7bs9Sexq47mT+MQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-4.0.0.tgz", + "integrity": "sha512-r1n+NkNnzAV/QawwfxngfNO7oTpgVwy2OXYp6X6ETDAO9JFBKog2R/goORGf5THgNQCpwhHs2FVxTWWcO4Z6kQ==", "dependencies": { "js-yaml": "^4.1.0", "remark-gfm": "^3.0.1", @@ -2165,16 +2165,16 @@ "remark-preset-lint-recommended": "^6.1.2", "semver": "^7.3.5", "unified-lint-rule": "^2.1.1", - "unist-util-visit": "^4.1.0" + "unist-util-visit": "^4.1.2" }, "engines": { "node": ">=12.0.0" } }, "node_modules/remark-preset-lint-recommended": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz", - "integrity": "sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.3.tgz", + "integrity": "sha512-DGjbeP2TsFmQeJflUiIvJWAOs1PxJt7SG3WQyMxOppkRr/up+mxWVkuv+6AUuaR0EsuaaFGz7WmZM5TrSSFWJw==", "dependencies": { "@types/mdast": "^3.0.0", "remark-lint": "^9.0.0", @@ -2231,9 +2231,9 @@ } }, "node_modules/rollup": { - "version": "3.21.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.5.tgz", - "integrity": "sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==", + "version": "3.21.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.7.tgz", + "integrity": "sha512-KXPaEuR8FfUoK2uHwNjxTmJ18ApyvD6zJpYv9FOJSqLStmt6xOY84l1IjK2dSolQmoXknrhEFRaPRgOPdqCT5w==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -2289,9 +2289,9 @@ } }, "node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2417,9 +2417,9 @@ } }, "node_modules/unified-lint-rule": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz", - "integrity": "sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.2.tgz", + "integrity": "sha512-JWudPtRN7TLFHVLEVZ+Rm8FUb6kCAtHxEXFgBGDxRSdNMnGyTU5zyYvduHSF/liExlFB3vdFvsAHnNVE/UjAwA==", "dependencies": { "@types/unist": "^2.0.0", "trough": "^2.0.0", diff --git a/tools/lint-md/package.json b/tools/lint-md/package.json index 7faf898edb..0f8e55408e 100644 --- a/tools/lint-md/package.json +++ b/tools/lint-md/package.json @@ -7,16 +7,16 @@ }, "dependencies": { "remark-parse": "^10.0.1", - "remark-preset-lint-node": "^3.4.0", + "remark-preset-lint-node": "^4.0.0", "remark-stringify": "^10.0.2", "to-vfile": "^7.2.4", "unified": "^10.1.2", "vfile-reporter": "^7.0.5" }, "devDependencies": { - "@rollup/plugin-commonjs": "^24.1.0", + "@rollup/plugin-commonjs": "^25.0.0", "@rollup/plugin-node-resolve": "^15.0.2", - "rollup": "^3.21.5", + "rollup": "^3.21.7", "rollup-plugin-cleanup": "^3.2.1" } } -- cgit v1.2.1