diff --git a/tools/lint-md/lint-md.mjs b/tools/lint-md/lint-md.mjs index b1a596d4368dfd..5bf5b693b1e570 100644 --- a/tools/lint-md/lint-md.mjs +++ b/tools/lint-md/lint-md.mjs @@ -1,14 +1,17 @@ import fs from 'fs'; import path$1 from 'path'; import { fileURLToPath, pathToFileURL, URL as URL$1 } from 'url'; +import process$2 from 'node:process'; +import os from 'node:os'; +import tty from 'node:tty'; import process$1 from 'process'; -import os from 'os'; -import tty from 'tty'; /** * Throw a given error. * - * @param {Error | null | undefined} [error] + * @param {Error|null|undefined} [error] + * Maybe error. + * @returns {asserts error is null|undefined} */ function bail(error) { if (error) { @@ -566,12 +569,13 @@ function isUrl(fileURLOrPath) { * @typedef {import('unist').Position} Position * @typedef {import('unist').Point} Point * @typedef {import('./minurl.shared.js').URL} URL + * @typedef {import('..').VFileData} VFileData * - * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'latin1'|'binary'|'hex'} BufferEncoding + * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding * Encodings supported by the buffer class. * This is a copy of the typing from Node, copied to prevent Node globals from * being needed. - * Copied from: + * Copied from: * * @typedef {string|Uint8Array} VFileValue * Contents of the file. @@ -593,7 +597,7 @@ function isUrl(fileURLOrPath) { * @property {string} [stem] * @property {string} [extname] * @property {string} [dirname] - * @property {Object.} [data] + * @property {VFileData} [data] * * @typedef {{[key: string]: unknown} & VFileCoreOptions} VFileOptions * Configuration: a bunch of keys that will be shallow copied over to the new @@ -645,7 +649,7 @@ class VFile { * Place to store custom information. * It’s OK to store custom data directly on the file, moving it to `data` * gives a little more privacy. - * @type {Object.} + * @type {VFileData} */ this.data = {}; @@ -2199,7 +2203,9 @@ function initializeDocument(effects) { // but we’d be interrupting it w/ a new container if there’s a current // construct. - self.interrupt = Boolean(childFlow.currentConstruct); + self.interrupt = Boolean( + childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack + ); } // Check if there is a new container. self.containerState = {}; @@ -2987,7 +2993,12 @@ function tokenizeCharacterEscape(effects, ok, nok) { } } -var characterEntities = { +/** + * Map of named character references. + * + * @type {Record} + */ +const characterEntities = { AEli: 'Æ', AElig: 'Æ', AM: '&', @@ -5212,16 +5223,22 @@ var characterEntities = { zwnj: '‌' }; -var own$6 = {}.hasOwnProperty; +const own$6 = {}.hasOwnProperty; /** - * @param {string} characters + * Decode a single character reference (without the `&` or `;`). + * You probably only need this when you’re building parsers yourself that follow + * different rules compared to HTML. + * This is optimized to be tiny in browsers. + * + * @param {string} value + * `notin` (named), `#123` (deci), `#x123` (hexa). * @returns {string|false} + * Decoded reference. */ -function decodeEntity(characters) { - return own$6.call(characterEntities, characters) - ? characterEntities[characters] - : false +function decodeEntity(value) { + // @ts-expect-error: to do: use `Record` for `character-entities`. + return own$6.call(characterEntities, value) ? characterEntities[value] : false } /** @@ -7517,6 +7534,11 @@ function tokenizeHtmlFlow(effects, ok, nok) { if (code === 62) { effects.consume(code); return continuationClose + } // More dashes. + + if (code === 45 && kind === 2) { + effects.consume(code); + return continuationDeclarationInside } return continuation(code) @@ -10199,7 +10221,7 @@ function decode($0, $1, $2) { * @typedef {import('mdast').Text} Text * @typedef {import('mdast').ThematicBreak} ThematicBreak * - * @typedef {UnistParent & {type: 'fragment', children: PhrasingContent[]}} Fragment + * @typedef {UnistParent & {type: 'fragment', children: Array}} Fragment */ const own$5 = {}.hasOwnProperty; /** @@ -10354,7 +10376,7 @@ function compiler(options = {}) { const data = {}; return compile /** - * @param {Array.} events + * @param {Array} events * @returns {Root} */ @@ -10370,7 +10392,7 @@ function compiler(options = {}) { /** @type {CompileContext['tokenStack']} */ const tokenStack = []; - /** @type {Array.} */ + /** @type {Array} */ const listStack = []; /** @type {Omit} */ @@ -10423,16 +10445,9 @@ function compiler(options = {}) { } if (tokenStack.length > 0) { - throw new Error( - 'Cannot close document, a token (`' + - tokenStack[tokenStack.length - 1].type + - '`, ' + - stringifyPosition({ - start: tokenStack[tokenStack.length - 1].start, - end: tokenStack[tokenStack.length - 1].end - }) + - ') is still open' - ) + const tail = tokenStack[tokenStack.length - 1]; + const handler = tail[1] || defaultOnError; + handler.call(context, undefined, tail[0]); } // Figure out `root` position. tree.position = { @@ -10464,7 +10479,7 @@ function compiler(options = {}) { return tree } /** - * @param {Array.} events + * @param {Array} events * @param {number} start * @param {number} length * @returns {number} @@ -10665,15 +10680,16 @@ function compiler(options = {}) { * @this {CompileContext} * @param {N} node * @param {Token} token + * @param {OnError} [errorHandler] * @returns {N} */ - function enter(node, token) { + function enter(node, token, errorHandler) { const parent = this.stack[this.stack.length - 1]; // @ts-expect-error: Assume `Node` can exist as a child of `parent`. parent.children.push(node); this.stack.push(node); - this.tokenStack.push(token); // @ts-expect-error: `end` will be patched later. + this.tokenStack.push([token, errorHandler]); // @ts-expect-error: `end` will be patched later. node.position = { start: point(token.start) @@ -10715,24 +10731,9 @@ function compiler(options = {}) { }) + '): it’s not open' ) - } else if (open.type !== token.type) { - throw new Error( - 'Cannot close `' + - token.type + - '` (' + - stringifyPosition({ - start: token.start, - end: token.end - }) + - '): a different token (`' + - open.type + - '`, ' + - stringifyPosition({ - start: open.start, - end: open.end - }) + - ') is open' - ) + } else if (open[0].type !== token.type) { + const handler = open[1] || defaultOnError; + handler.call(this, token, open[0]); } node.position.end = point(token.end); @@ -11275,7 +11276,7 @@ function compiler(options = {}) { } /** * @param {Extension} combined - * @param {Array.>} extensions + * @param {Array>} extensions * @returns {Extension} */ @@ -11324,6 +11325,40 @@ function extension(combined, extension) { } } } +/** @type {OnError} */ + +function defaultOnError(left, right) { + if (left) { + throw new Error( + 'Cannot close `' + + left.type + + '` (' + + stringifyPosition({ + start: left.start, + end: left.end + }) + + '): a different token (`' + + right.type + + '`, ' + + stringifyPosition({ + start: right.start, + end: right.end + }) + + ') is open' + ) + } else { + throw new Error( + 'Cannot close document, a token (`' + + right.type + + '`, ' + + stringifyPosition({ + start: right.start, + end: right.end + }) + + ') is still open' + ) + } +} /** * @typedef {import('mdast').Root} Root @@ -11658,16 +11693,19 @@ function hardBreak(_, _1, context, safe) { /** * Get the count of the longest repeating streak of `character` in `value`. * - * @param {string} value Content. - * @param {string} character Single character to look for - * @returns {number} Count of most frequent adjacent `character`s in `value` + * @param {string} value + * Content to search in. + * @param {string} character + * Single character to look for. + * @returns {number} + * Count of most frequent adjacent `character`s in `value`. */ function longestStreak(value, character) { - var source = String(value); - var index = source.indexOf(character); - var expected = index; - var count = 0; - var max = 0; + const source = String(value); + let index = source.indexOf(character); + let expected = index; + let count = 0; + let max = 0; if (typeof character !== 'string' || character.length !== 1) { throw new Error('Expected character') @@ -15059,10 +15097,6 @@ const gfmTable = { } } }; -const setextUnderlineMini = { - tokenize: tokenizeSetextUnderlineMini, - partial: true -}; const nextPrefixedOrBlank = { tokenize: tokenizeNextPrefixedOrBlank, partial: true @@ -15089,6 +15123,9 @@ function resolveTable(events, context) { /** @type {number|undefined} */ let cellStart; + /** @type {boolean|undefined} */ + + let seenCellInRow; while (++index < events.length) { const token = events[index][1]; @@ -15134,8 +15171,8 @@ function resolveTable(events, context) { if ( events[index][0] === 'exit' && - cellStart && - cellStart + 1 < index && + cellStart !== undefined && + cellStart + (seenCellInRow ? 0 : 1) < index && (token.type === 'tableCellDivider' || (token.type === 'tableRow' && (cellStart + 3 < index || @@ -15158,6 +15195,7 @@ function resolveTable(events, context) { events.splice(cellStart, 0, ['enter', cell, context]); index += 2; cellStart = index + 1; + seenCellInRow = true; } if (token.type === 'tableRow') { @@ -15165,6 +15203,7 @@ function resolveTable(events, context) { if (inRow) { cellStart = index + 1; + seenCellInRow = false; } } @@ -15173,6 +15212,7 @@ function resolveTable(events, context) { if (inDelimiterRow) { cellStart = index + 1; + seenCellInRow = false; } } @@ -15291,37 +15331,26 @@ function tokenizeTable(effects, ok, nok) { effects.exit('tableRow'); effects.exit('tableHead'); + const originalInterrupt = self.interrupt; + self.interrupt = true; return effects.attempt( { tokenize: tokenizeRowEnd, partial: true }, - atDelimiterLineStart, - nok - )(code) - } - /** @type {State} */ - - function atDelimiterLineStart(code) { - return effects.check( - setextUnderlineMini, - nok, // Support an indent before the delimiter row. - factorySpace(effects, rowStartDelimiter, 'linePrefix', 4) + function (code) { + self.interrupt = originalInterrupt; + effects.enter('tableDelimiterRow'); + return atDelimiterRowBreak(code) + }, + function (code) { + self.interrupt = originalInterrupt; + return nok(code) + } )(code) } /** @type {State} */ - function rowStartDelimiter(code) { - // If there’s another space, or we’re at the EOL/EOF, exit. - if (code === null || markdownLineEndingOrSpace(code)) { - return nok(code) - } - - effects.enter('tableDelimiterRow'); - return atDelimiterRowBreak(code) - } - /** @type {State} */ - function atDelimiterRowBreak(code) { if (code === null || markdownLineEnding(code)) { return rowEndDelimiter(code) @@ -15575,55 +15604,44 @@ function tokenizeTable(effects, ok, nok) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); - return lineStart + return factorySpace(effects, prefixed, 'linePrefix') } /** @type {State} */ - function lineStart(code) { - return self.parser.lazy[self.now().line] ? nok(code) : ok(code) - } - } -} // Based on micromark, but that won’t work as we’re in a table, and that expects -// content. -// - -/** @type {Tokenizer} */ - -function tokenizeSetextUnderlineMini(effects, ok, nok) { - return start - /** @type {State} */ - - function start(code) { - if (code !== 45) { - return nok(code) - } - - effects.enter('setextUnderline'); - return sequence(code) - } - /** @type {State} */ - - function sequence(code) { - if (code === 45) { - effects.consume(code); - return sequence - } + function prefixed(code) { + // Blank or interrupting line. + if ( + self.parser.lazy[self.now().line] || + code === null || + markdownLineEnding(code) + ) { + return nok(code) + } - return whitespace(code) - } - /** @type {State} */ + const tail = self.events[self.events.length - 1]; // Indented code can interrupt delimiter and body rows. - function whitespace(code) { - if (code === null || markdownLineEnding(code)) { - return ok(code) - } + if ( + !self.parser.constructs.disable.null.includes('codeIndented') && + tail && + tail[1].type === 'linePrefix' && + tail[2].sliceSerialize(tail[1], true).length >= 4 + ) { + return nok(code) + } - if (markdownSpace(code)) { - effects.consume(code); - return whitespace + 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) + } + )(code) } - - return nok(code) } } /** @type {Tokenizer} */ @@ -15779,22 +15797,24 @@ function gfm(options) { } /** - * Get the total count of `character` in `value`. + * Count how often a character (or substring) is used in a string. * - * @param {any} value Content, coerced to string - * @param {string} character Single character to look for - * @return {number} Number of times `character` occurred in `value`. + * @param {string} value + * Value to search in. + * @param {string} character + * Character (or substring) to look for. + * @return {number} + * Number of times `character` occurred in `value`. */ function ccount(value, character) { - var source = String(value); - var count = 0; - var index; + const source = String(value); if (typeof character !== 'string') { - throw new Error('Expected character') + throw new TypeError('Expected character') } - index = source.indexOf(character); + let count = 0; + let index = source.indexOf(character); while (index !== -1) { count++; @@ -17294,7 +17314,7 @@ function gfmToMarkdown(options) { */ /** - * Plugin to support GitHub Flavored Markdown (GFM). + * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists). * * @type {import('unified').Plugin<[Options?]|void[], Root>} */ @@ -28672,25 +28692,30 @@ toVFile.writeSync = writeSync; toVFile.read = read; toVFile.write = write; -function hasFlag(flag, argv = process$1.argv) { +// From: https://github.com/sindresorhus/has-flag/blob/main/index.js +function hasFlag(flag, argv = process$2.argv) { const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); const position = argv.indexOf(prefix + flag); const terminatorPosition = argv.indexOf('--'); return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); } -const {env} = process$1; +const {env} = process$2; let flagForceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false') || - hasFlag('color=never')) { +if ( + hasFlag('no-color') + || hasFlag('no-colors') + || hasFlag('color=false') + || hasFlag('color=never') +) { flagForceColor = 0; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { +} else if ( + hasFlag('color') + || hasFlag('colors') + || hasFlag('color=true') + || hasFlag('color=always') +) { flagForceColor = 1; } @@ -28717,7 +28742,7 @@ function translateLevel(level) { level, hasBasic: true, has256: level >= 2, - has16m: level >= 3 + has16m: level >= 3, }; } @@ -28734,9 +28759,9 @@ function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { } if (sniffFlags) { - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { + if (hasFlag('color=16m') + || hasFlag('color=full') + || hasFlag('color=truecolor')) { return 3; } @@ -28755,15 +28780,15 @@ function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { return min; } - if (process$1.platform === 'win32') { + if (process$2.platform === 'win32') { // Windows 10 build 10586 is the first Windows release that supports 256 colors. // Windows 10 build 14931 is the first release that supports 16m/TrueColor. const osRelease = os.release().split('.'); if ( - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 + Number(osRelease[0]) >= 10 + && Number(osRelease[2]) >= 10_586 ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; + return Number(osRelease[2]) >= 14_931 ? 3 : 2; } return 1; @@ -28815,7 +28840,7 @@ function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { function createSupportsColor(stream, options = {}) { const level = _supportsColor(stream, { streamIsTTY: stream && stream.isTTY, - ...options + ...options, }); return translateLevel(level); @@ -28823,7 +28848,7 @@ function createSupportsColor(stream, options = {}) { const supportsColor = { stdout: createSupportsColor({isTTY: tty.isatty(1)}), - stderr: createSupportsColor({isTTY: tty.isatty(2)}) + stderr: createSupportsColor({isTTY: tty.isatty(2)}), }; function ansiRegex({onlyFirst = false} = {}) { diff --git a/tools/lint-md/package-lock.json b/tools/lint-md/package-lock.json index 59eb027bd9d132..e01de556ee0a01 100644 --- a/tools/lint-md/package-lock.json +++ b/tools/lint-md/package-lock.json @@ -8,23 +8,23 @@ "name": "lint-md", "version": "1.0.0", "dependencies": { - "remark-parse": "^10.0.0", + "remark-parse": "^10.0.1", "remark-preset-lint-node": "^3.3.0", - "remark-stringify": "^10.0.1", + "remark-stringify": "^10.0.2", "to-vfile": "^7.2.2", - "unified": "^10.1.0", + "unified": "^10.1.1", "vfile-reporter": "^7.0.2" }, "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.0", - "@rollup/plugin-node-resolve": "^13.0.5", - "rollup": "^2.58.0" + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-node-resolve": "^13.0.6", + "rollup": "^2.60.0" } }, "node_modules/@rollup/plugin-commonjs": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.0.tgz", - "integrity": "sha512-XDQimjHl0kNotAV5lLo34XoygaI0teqiKGJ100B3iCU8+15YscJPeqk2KqkqD3NIe1H8ZTUo5lYjUFZyEgASTw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.1.tgz", + "integrity": "sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -43,9 +43,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.5.tgz", - "integrity": "sha512-mVaw6uxtvuGx/XCI4qBQXsDZJUfyx5vp39iE0J/7Hd6wDhEbjHr6aES7Nr9yWbuE0BY+oKp6N7Bq6jX5NCGNmQ==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz", + "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -120,9 +120,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "16.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", - "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==", + "version": "16.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz", + "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==", "dev": true }, "node_modules/@types/resolve": { @@ -161,9 +161,9 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -198,36 +198,36 @@ } }, "node_modules/ccount": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", - "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", - "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz", + "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-legacy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", - "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-reference-invalid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", - "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -376,17 +376,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-flag": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", - "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -404,18 +393,18 @@ "dev": true }, "node_modules/is-alphabetical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", - "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-alphanumerical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", - "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -448,9 +437,9 @@ } }, "node_modules/is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -460,9 +449,9 @@ } }, "node_modules/is-decimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", - "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -480,9 +469,9 @@ } }, "node_modules/is-hexadecimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", - "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -534,9 +523,9 @@ } }, "node_modules/longest-streak": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", - "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz", + "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -598,9 +587,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.4.tgz", - "integrity": "sha512-BlL42o885QO+6o43ceoc6KBdp/bi9oYyamj0hUbeu730yhP1WDC7m2XYSBfmQkOb0TdoHSAJ3de3SMqse69u+g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.1.0.tgz", + "integrity": "sha512-Mex7IIeIKRpGYNNywpxTfPhfFBTxBL5IVacPMU6GjYF+EkIvy++19cBgxVFyHVd2JpC/chG2IKGqZLffoo7Q1g==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -757,9 +746,9 @@ } }, "node_modules/micromark": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.7.tgz", - "integrity": "sha512-67ipZ2CzQVsDyH1kqNLh7dLwe5QMPJwjFBGppW7JCLByaSc6ZufV0ywPOxt13MIDAzzmj3wctDL6Ov5w0fOHXw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.8.tgz", + "integrity": "sha512-RXc/UmMhTW++rxDNbw045w1E2WS4u7Ixd4g8cp7vmMi8U+m8Ua2SZniz8nrWlNHFUJZJk/lW3m0n19z2RCauxA==", "funding": [ { "type": "GitHub Sponsors", @@ -791,9 +780,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.3.tgz", - "integrity": "sha512-0E8aE27v0DYHPk40IxzhCdXnZWQuvZ6rbflrx1u8ZZAUJEB48o0fgLXA5+yMab28yXT+mi1Q4LXdsI4oGS6Vng==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.4.tgz", + "integrity": "sha512-HAtoZisp1M/sQFuw2zoUKGo1pMKod7GSvdM6B2oBU0U2CEN5/C6Tmydmi1rmvEieEhGQsjMyiiSoYgxISNxGFA==", "funding": [ { "type": "GitHub Sponsors", @@ -894,9 +883,9 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.2.tgz", - "integrity": "sha512-mRtt0S/jVT8IRWqIw2Wnl8dr/9yHh+b3NgiDQ4zdgheiAtkFYalng5CUQooFfQeSxQjfV+QKXqtPpjdIHu3AqQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.4.tgz", + "integrity": "sha512-IK2yzl7ycXeFFvZ8qiH4j5am529ihjOFD7NMo8Nhyq+VGwgWe4+qeI925RRrJuEzX3KyQ+1vzY8BIIvqlgOJhw==", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -1278,9 +1267,9 @@ ] }, "node_modules/micromark-util-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", - "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", "funding": [ { "type": "GitHub Sponsors", @@ -1327,12 +1316,13 @@ } }, "node_modules/parse-entities": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", - "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.1.0.tgz", + "integrity": "sha512-xf2yeHbsfg1vJySsQelVwgtI/67eAndVU05skrr/XN6KFMoVVA95BYrW8y78OfW4jqcuHwB7tlMlLkvbq4WbHQ==", "dependencies": { + "@types/unist": "^2.0.0", "character-entities": "^2.0.0", - "character-entities-legacy": "^2.0.0", + "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", @@ -1379,9 +1369,9 @@ } }, "node_modules/remark-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.0.tgz", - "integrity": "sha512-CXJw5h1iwUW6czFwi4tveoOSlsEZU44hcdNzUxC5uiNi7r/OQySf46AoEihM8/NwBbW1LcsnyGIsHBnbURFw2g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-gfm": "^2.0.0", @@ -2104,9 +2094,9 @@ } }, "node_modules/remark-message-control": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.0.tgz", - "integrity": "sha512-PNVCm0JV5DikNyrvPYUDN97rL7r+ddy/4GMJpbIiQMS6qJxHJpGdppWOp5YfKHlkrfzddUzTQB/MoS9YCHyNNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz", + "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-comment-marker": "^2.0.0", @@ -2120,9 +2110,9 @@ } }, "node_modules/remark-parse": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", - "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -2207,9 +2197,9 @@ } }, "node_modules/remark-stringify": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.1.tgz", - "integrity": "sha512-380vOu9EHqRTDhI9RlPU2EKY1abUDEmxw9fW7pJ/8Jr1izk0UcdnZB30qiDDRYi6pGn5FnVf9Wd2iUeCWTqM7Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.0.0", @@ -2234,9 +2224,9 @@ } }, "node_modules/rollup": { - "version": "2.58.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz", - "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==", + "version": "2.60.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.0.tgz", + "integrity": "sha512-cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -2315,12 +2305,9 @@ } }, "node_modules/supports-color": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.0.2.tgz", - "integrity": "sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==", - "dependencies": { - "has-flag": "^5.0.0" - }, + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.1.0.tgz", + "integrity": "sha512-lOCGOTmBSN54zKAoPWhHkjoqVQ0MqgzPE5iirtoSixhr0ZieR/6l7WZ32V53cvy9+1qghFnIk7k52p991lKd6g==", "engines": { "node": ">=12" }, @@ -2359,9 +2346,9 @@ } }, "node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz", + "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==", "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -2520,9 +2507,9 @@ } }, "node_modules/vfile": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz", - "integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.2.0.tgz", + "integrity": "sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA==", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -2633,9 +2620,9 @@ }, "dependencies": { "@rollup/plugin-commonjs": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.0.tgz", - "integrity": "sha512-XDQimjHl0kNotAV5lLo34XoygaI0teqiKGJ100B3iCU8+15YscJPeqk2KqkqD3NIe1H8ZTUo5lYjUFZyEgASTw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.1.tgz", + "integrity": "sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -2648,9 +2635,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.5.tgz", - "integrity": "sha512-mVaw6uxtvuGx/XCI4qBQXsDZJUfyx5vp39iE0J/7Hd6wDhEbjHr6aES7Nr9yWbuE0BY+oKp6N7Bq6jX5NCGNmQ==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz", + "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -2715,9 +2702,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "16.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", - "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==", + "version": "16.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz", + "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==", "dev": true }, "@types/resolve": { @@ -2750,9 +2737,9 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" }, "balanced-match": { "version": "1.0.2", @@ -2777,24 +2764,24 @@ "dev": true }, "ccount": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", - "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" }, "character-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", - "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz", + "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==" }, "character-entities-legacy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", - "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" }, "character-reference-invalid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", - "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==" }, "co": { "version": "3.1.0", @@ -2900,11 +2887,6 @@ "function-bind": "^1.1.1" } }, - "has-flag": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", - "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2922,14 +2904,14 @@ "dev": true }, "is-alphabetical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", - "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==" }, "is-alphanumerical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", - "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "requires": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -2941,18 +2923,18 @@ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" }, "is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-decimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", - "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==" }, "is-fullwidth-code-point": { "version": "4.0.0", @@ -2960,9 +2942,9 @@ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==" }, "is-hexadecimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", - "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==" }, "is-module": { "version": "1.0.0", @@ -2998,9 +2980,9 @@ "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==" }, "longest-streak": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", - "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz", + "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==" }, "lru-cache": { "version": "6.0.0", @@ -3043,9 +3025,9 @@ } }, "mdast-util-from-markdown": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.4.tgz", - "integrity": "sha512-BlL42o885QO+6o43ceoc6KBdp/bi9oYyamj0hUbeu730yhP1WDC7m2XYSBfmQkOb0TdoHSAJ3de3SMqse69u+g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.1.0.tgz", + "integrity": "sha512-Mex7IIeIKRpGYNNywpxTfPhfFBTxBL5IVacPMU6GjYF+EkIvy++19cBgxVFyHVd2JpC/chG2IKGqZLffoo7Q1g==", "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -3158,9 +3140,9 @@ "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" }, "micromark": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.7.tgz", - "integrity": "sha512-67ipZ2CzQVsDyH1kqNLh7dLwe5QMPJwjFBGppW7JCLByaSc6ZufV0ywPOxt13MIDAzzmj3wctDL6Ov5w0fOHXw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.8.tgz", + "integrity": "sha512-RXc/UmMhTW++rxDNbw045w1E2WS4u7Ixd4g8cp7vmMi8U+m8Ua2SZniz8nrWlNHFUJZJk/lW3m0n19z2RCauxA==", "requires": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -3182,9 +3164,9 @@ } }, "micromark-core-commonmark": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.3.tgz", - "integrity": "sha512-0E8aE27v0DYHPk40IxzhCdXnZWQuvZ6rbflrx1u8ZZAUJEB48o0fgLXA5+yMab28yXT+mi1Q4LXdsI4oGS6Vng==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.4.tgz", + "integrity": "sha512-HAtoZisp1M/sQFuw2zoUKGo1pMKod7GSvdM6B2oBU0U2CEN5/C6Tmydmi1rmvEieEhGQsjMyiiSoYgxISNxGFA==", "requires": { "micromark-factory-destination": "^1.0.0", "micromark-factory-label": "^1.0.0", @@ -3259,9 +3241,9 @@ } }, "micromark-extension-gfm-table": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.2.tgz", - "integrity": "sha512-mRtt0S/jVT8IRWqIw2Wnl8dr/9yHh+b3NgiDQ4zdgheiAtkFYalng5CUQooFfQeSxQjfV+QKXqtPpjdIHu3AqQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.4.tgz", + "integrity": "sha512-IK2yzl7ycXeFFvZ8qiH4j5am529ihjOFD7NMo8Nhyq+VGwgWe4+qeI925RRrJuEzX3KyQ+1vzY8BIIvqlgOJhw==", "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -3451,9 +3433,9 @@ "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==" }, "micromark-util-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", - "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==" }, "minimatch": { "version": "3.0.4", @@ -3484,12 +3466,13 @@ } }, "parse-entities": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", - "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.1.0.tgz", + "integrity": "sha512-xf2yeHbsfg1vJySsQelVwgtI/67eAndVU05skrr/XN6KFMoVVA95BYrW8y78OfW4jqcuHwB7tlMlLkvbq4WbHQ==", "requires": { + "@types/unist": "^2.0.0", "character-entities": "^2.0.0", - "character-entities-legacy": "^2.0.0", + "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", @@ -3520,9 +3503,9 @@ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" }, "remark-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.0.tgz", - "integrity": "sha512-CXJw5h1iwUW6czFwi4tveoOSlsEZU44hcdNzUxC5uiNi7r/OQySf46AoEihM8/NwBbW1LcsnyGIsHBnbURFw2g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-gfm": "^2.0.0", @@ -4075,9 +4058,9 @@ } }, "remark-message-control": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.0.tgz", - "integrity": "sha512-PNVCm0JV5DikNyrvPYUDN97rL7r+ddy/4GMJpbIiQMS6qJxHJpGdppWOp5YfKHlkrfzddUzTQB/MoS9YCHyNNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz", + "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==", "requires": { "@types/mdast": "^3.0.0", "mdast-comment-marker": "^2.0.0", @@ -4087,9 +4070,9 @@ } }, "remark-parse": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", - "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -4163,9 +4146,9 @@ } }, "remark-stringify": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.1.tgz", - "integrity": "sha512-380vOu9EHqRTDhI9RlPU2EKY1abUDEmxw9fW7pJ/8Jr1izk0UcdnZB30qiDDRYi6pGn5FnVf9Wd2iUeCWTqM7Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.0.0", @@ -4183,9 +4166,9 @@ } }, "rollup": { - "version": "2.58.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz", - "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==", + "version": "2.60.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.0.tgz", + "integrity": "sha512-cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -4237,12 +4220,9 @@ } }, "supports-color": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.0.2.tgz", - "integrity": "sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==", - "requires": { - "has-flag": "^5.0.0" - } + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.1.0.tgz", + "integrity": "sha512-lOCGOTmBSN54zKAoPWhHkjoqVQ0MqgzPE5iirtoSixhr0ZieR/6l7WZ32V53cvy9+1qghFnIk7k52p991lKd6g==" }, "to-vfile": { "version": "7.2.2", @@ -4264,9 +4244,9 @@ "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==" }, "unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz", + "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==", "requires": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -4379,9 +4359,9 @@ } }, "vfile": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz", - "integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.2.0.tgz", + "integrity": "sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA==", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", diff --git a/tools/lint-md/package.json b/tools/lint-md/package.json index 6b3e48c4671817..1e0ec3fb5d9721 100644 --- a/tools/lint-md/package.json +++ b/tools/lint-md/package.json @@ -6,16 +6,16 @@ "build": "rollup -f es -p '@rollup/plugin-node-resolve={exportConditions: [\"node\"]}' -p @rollup/plugin-commonjs lint-md.src.mjs --file lint-md.mjs" }, "dependencies": { - "remark-parse": "^10.0.0", + "remark-parse": "^10.0.1", "remark-preset-lint-node": "^3.3.0", - "remark-stringify": "^10.0.1", + "remark-stringify": "^10.0.2", "to-vfile": "^7.2.2", - "unified": "^10.1.0", + "unified": "^10.1.1", "vfile-reporter": "^7.0.2" }, "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.0", - "@rollup/plugin-node-resolve": "^13.0.5", - "rollup": "^2.58.0" + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-node-resolve": "^13.0.6", + "rollup": "^2.60.0" } }